Sviluppo di applicazioni OpenMP, MPI e CUDA per la didattica del calcolo parallelo

Girolomini, Alice (2023) Sviluppo di applicazioni OpenMP, MPI e CUDA per la didattica del calcolo parallelo. [Laurea], Università di Bologna, Corso di Studio in Ingegneria e scienze informatiche [L-DM270] - Cesena, Documento ad accesso riservato.
Documenti full-text disponibili:
[thumbnail of Thesis] Documento PDF (Thesis)
Full-text accessibile solo agli utenti istituzionali dell'Ateneo
Disponibile con Licenza: Salvo eventuali più ampie autorizzazioni dell'autore, la tesi può essere liberamente consultata e può essere effettuato il salvataggio e la stampa di una copia per fini strettamente personali di studio, di ricerca e di insegnamento, con espresso divieto di qualunque utilizzo direttamente o indirettamente commerciale. Ogni altro diritto sul materiale è riservato

Download (618kB) | Contatta l'autore

Abstract

Il seguente elaborato si pone come obiettivo la trasposizione di una parte degli esercizi presentati durante il corso di High Performance Computing, servendosi delle tecnologie che non sono state utilizzate per la soluzione delle esercitazioni di laboratorio. Gli algoritmi presi in considerazione per questa esposizione sono la somma dei numeri in un vettore di N elementi, la ricerca lineare, la schedulazione dinamica, il metodo di eliminazione di Gauss e il Simplesso Primale. Il progetto prevede, per ogni algoritmo, di trovare il modello di parallelizzazione più adatto al problema che si vuole risolvere e alla tecnologia utilizzata per la risoluzione. Sarà importante individuare la presenza di dipendenze tra i dati e, in caso sia possibile, eliminare queste dipendenze effettuando delle trasformazioni sulle istruzioni coinvolte; questa operazione permetterà di capire quali porzioni di codice possono essere eseguite simultaneamente da diversi processi. Le tecnologie che verranno utilizzate per lo sviluppo delle versioni parallele sono le direttive OpenMP, l'architettura CUDA e la libreria MPI. Le prime due presentano un'architettura a memoria condivisa ovvero dove tutte le unità di calcolo condividono una memoria globale; mentre MPI si basa su una strutturazione a memoria distribuita, dove la condivisione dei dati è possibile attraverso una comunicazione esplicita, grazie a una rete di interconnessione tra i nodi di calcolo. Si studierà quale versione parallela risulta più adatta al problema preso in considerazione e apporta miglioramenti significativi rispetto al programma originale seriale, e quale invece introduce un decadimento delle prestazioni. Per arrivare a questa valutazione verranno presi in considerazione un insieme di parametri riguardanti le prestazioni del programma finito; in particolare verranno utilizzate delle librerie specifiche per poter misurare il tempo d'esecuzione dei programmi, in modo da poter valutare speedup ed efficienza.

Abstract
Tipologia del documento
Tesi di laurea (Laurea)
Autore della tesi
Girolomini, Alice
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
High Performance Computing,OpenMP,MPI,CUDA,Prestazioni
Data di discussione della Tesi
30 Novembre 2023
URI

Altri metadati

Statistica sui download

Gestione del documento: Visualizza il documento

^