
Prestazioni del software parallelo attraverso un caso di studio: il software ROMS
Informazioni sul documento
Autore | Simone Celestino |
Scuola | Università |
Anno di pubblicazione | 2018 |
Tipo di documento | tesi |
Lingua | Italian |
Numero di pagine | 123 |
Formato | |
Dimensione | 3.51 MB |
- Prestazioni del software parallelo
- Architetture di riferimento
- Valutazione delle prestazioni
Riassunto
I. Valutazione Delle Prestazioni
La valutazione delle prestazioni è un aspetto cruciale nello sviluppo di software parallelo. Essa implica l'analisi delle capacità di un sistema di calcolo nel gestire operazioni complesse in modo efficiente. La tesi esplora vari metodi e strumenti per misurare le prestazioni, evidenziando l'importanza di benchmark come Linpack e HPCG. Questi strumenti forniscono dati essenziali per comprendere come un software si comporta su diverse architetture. La valutazione non si limita a misurare le prestazioni di picco, ma considera anche le prestazioni sostenute, che sono fondamentali per applicazioni reali. La tesi sottolinea che un'analisi accurata delle prestazioni può rivelare colli di bottiglia e inefficienze nel codice sorgente, permettendo agli sviluppatori di ottimizzare le loro applicazioni. "Il sistema di calcolo a disposizione è adeguato all’esecuzione di questo software?" è una delle domande chiave che guida questa analisi.
1.1 Concetti Premiminari e Definizioni
In questa sezione, vengono introdotti i concetti fondamentali relativi alla prestazione dei calcolatori. Si fa riferimento al modello di Von Neumann, che ha influenzato profondamente l'architettura dei computer moderni. Le componenti principali, come ALU e FPU, sono descritte per chiarire il loro ruolo nel calcolo delle prestazioni. La sezione discute anche come le prestazioni possano variare a seconda delle operazioni eseguite. Un esempio pratico è fornito attraverso il confronto tra diversi aeroplani, illustrando come le prestazioni possano essere misurate in base a criteri specifici. La prestazione di un calcolatore è definita come la capacità di eseguire un compito in un tempo determinato, un concetto che è essenziale per la valutazione delle applicazioni software.
II. Strumenti Per Valutare Le Prestazioni Della Macchina
La sezione analizza vari strumenti utilizzati per la valutazione delle prestazioni delle macchine. I benchmark, come STREAM e TOP500, sono fondamentali per ottenere una misura oggettiva delle capacità di calcolo. Questi strumenti non solo forniscono dati sulle prestazioni, ma aiutano anche a identificare le aree di miglioramento. La tesi discute l'importanza di utilizzare più benchmark per avere una visione completa delle prestazioni di un sistema. I risultati ottenuti dai benchmark possono variare significativamente a seconda dell'architettura e della configurazione del sistema. "Quali prestazioni ha l'architettura in termini di FLOPS?" è una domanda centrale che guida l'analisi. La sezione conclude con una riflessione sull'importanza di un approccio sistematico nella valutazione delle prestazioni, che può portare a scoperte significative e miglioramenti nell'efficienza del software.
2.1 Benchmark
Questa sottosezione si concentra sui vari tipi di benchmark utilizzati per misurare le prestazioni delle macchine. I benchmark come Linpack e HPL sono discussi in dettaglio, evidenziando come ciascuno di essi fornisca informazioni uniche sulle capacità di calcolo. I risultati di questi benchmark sono cruciali per confrontare le prestazioni di diverse architetture. La tesi sottolinea che l'uso di benchmark diversificati è essenziale per ottenere una valutazione accurata. "Risultati di Linpack Benchmark su [ARK1]" è un esempio di come i dati possano essere utilizzati per analizzare le prestazioni in contesti specifici. La sezione enfatizza l'importanza di interpretare i risultati dei benchmark in modo critico, per garantire che le conclusioni siano valide e applicabili.
III. Applicazione Su Un Caso Reale ROMS
La sezione finale si concentra sull'applicazione pratica delle teorie e degli strumenti discussi, utilizzando il software ROMS come caso studio. ROMS è un modello di simulazione oceanografica che richiede prestazioni elevate per gestire grandi quantità di dati. L'analisi delle prestazioni di ROMS rivela come le tecniche di profiling e monitoraggio possano essere utilizzate per ottimizzare il software. La tesi esplora come l'organizzazione parallela del dominio, nota come ROMS tiling, possa migliorare l'efficienza del calcolo. "Analisi delle prestazioni di ROMS" è un tema centrale, poiché fornisce un esempio concreto di come le teorie di prestazione possano essere applicate nella pratica. La sezione conclude con una riflessione sull'importanza di monitorare continuamente le prestazioni del software per garantire che rimanga competitivo e efficace nel tempo.
3.1 Monitoraggio Delle Prestazioni Del Software
Questa sottosezione discute le tecniche di monitoraggio delle prestazioni utilizzate per analizzare ROMS. Strumenti come GPROF e PAPI sono presentati come metodi efficaci per raccogliere dati sulle prestazioni. L'analisi dei colli di bottiglia è un aspetto cruciale, poiché identifica le aree in cui il software non sfrutta appieno le capacità del sistema. La tesi sottolinea che il monitoraggio delle prestazioni non è un'attività una tantum, ma deve essere parte integrante del ciclo di vita del software. "Cosa limita la mia applicazione?" è una domanda chiave che guida il monitoraggio e l'ottimizzazione. La sezione evidenzia come un approccio proattivo al monitoraggio possa portare a miglioramenti significativi nell'efficienza e nelle prestazioni complessive del software.
Riferimento del documento
- Computer cluster - Mont-Blanc
- Desktop computer
- Linpack benchmark
- HPL
- HPCG