Questa tesi presenta un'implementazione multi-GPU di un risolutore ai volumi finiti che approssima le Shallow Water Equations (SWE) 2D al fine di sumulare fenomeni alluvionali. In letteratura è generalmente riconosciuto il fatto che tali fenomeni stiano accadendo sempre più frequentemente a causa del riscaldamento globale. L'unico modo che abbiamo per rispondere a questi fenomeni è quello di incrementare la resilienza del territorio attraverso una modellazione veloce e accurata. Una versione precedente del risolutore (o solver), rappresenta il punto di partenza di questa tesi, risolvendo le SWE su una griglia multi-risoluzione e effettuando tutti i calcoli utilizzando una Graphic Processing Unit (GPU). Nonostante le numerose ottimizzazioni compiute nel corso degli anni, tale versione non è scalabile. In particolare, non è possibile incrementare le dimensioni delle griglie di input oltre un certo limite dato dalla memoria della singola GPU. Un altro problema è rappresentato dai tempi di simulazione, che per casi realistici, possono superare le 20 ore. L'obiettivo della tesi è quello di superare queste limitazioni servendosi di un insieme di GPU per effettuare i calcoli invece che di una sola. Questo obiettivo può essere raggiunto utilizzando le tecniche note nell'ambito dell'High Performance Computing (HPC), nelle quali la griglia di input viene partizionata in diverse parti, ciascuna associata ad una GPU differente. I bordi delle partizioni adiacenti vengono comunicati utilizzando lo standard Message Passing Interface (MPI), il quale viene utilizzato anche per la riduzione del delta t. Due algoritmi di partizionamento sono stati integrati nel solver: il primo effettua una suddivisione 1D del dominio, mentre il secondo, più sofisticato, è basato sulle Curve di Hilbert. Entrambi gli algoritmi hanno mostrato un alto livello di efficienza nel Weak Scaling Test (~90%), tuttavia nello Strong Scaling Test il secondo è risultato molto più efficiente del primo, ottenendo un livello di efficienza dell'~85%. Le comunicazioni dei bordi effettuate durante ogni time-step sono state mascherate dai calcoli della GPU, guadagnando il 10% di efficienza nello Strong Scaling eseguito su 32 GPU. Un'ottimizzazione effettuata dal solver consiste nell'escludere dai calcoli del time-step le celle asciutte che non possono diventare bagnate nel seguente passo di calcolo. Se da un lato questo approccio permette di eseguire meno calcoli, dall'atro si creano degli sbilanciamenti nel carico computazionale tra le diverse partizioni. In particolare, le GPU contenenti meno celle bagnate sono computazionalmente più leggere rispetto a quelle che ne contengono di più. Per questo motivo è stata progettata e implementata all'interno del risolutore, un'euristica in grado di catturare questi sbilanciamenti durante la simulazione ed equilibrare il carico tra le divrse GPU, convergendo ad una situazione bilanciata.

A general design for a scalable MPI-GPU Shallow Water Equations solver on a multi-resolution grid / Turchetto, M.. - (2020 Mar).

A general design for a scalable MPI-GPU Shallow Water Equations solver on a multi-resolution grid

TURCHETTO, MASSIMILIANO
2020-03-01

Abstract

Questa tesi presenta un'implementazione multi-GPU di un risolutore ai volumi finiti che approssima le Shallow Water Equations (SWE) 2D al fine di sumulare fenomeni alluvionali. In letteratura è generalmente riconosciuto il fatto che tali fenomeni stiano accadendo sempre più frequentemente a causa del riscaldamento globale. L'unico modo che abbiamo per rispondere a questi fenomeni è quello di incrementare la resilienza del territorio attraverso una modellazione veloce e accurata. Una versione precedente del risolutore (o solver), rappresenta il punto di partenza di questa tesi, risolvendo le SWE su una griglia multi-risoluzione e effettuando tutti i calcoli utilizzando una Graphic Processing Unit (GPU). Nonostante le numerose ottimizzazioni compiute nel corso degli anni, tale versione non è scalabile. In particolare, non è possibile incrementare le dimensioni delle griglie di input oltre un certo limite dato dalla memoria della singola GPU. Un altro problema è rappresentato dai tempi di simulazione, che per casi realistici, possono superare le 20 ore. L'obiettivo della tesi è quello di superare queste limitazioni servendosi di un insieme di GPU per effettuare i calcoli invece che di una sola. Questo obiettivo può essere raggiunto utilizzando le tecniche note nell'ambito dell'High Performance Computing (HPC), nelle quali la griglia di input viene partizionata in diverse parti, ciascuna associata ad una GPU differente. I bordi delle partizioni adiacenti vengono comunicati utilizzando lo standard Message Passing Interface (MPI), il quale viene utilizzato anche per la riduzione del delta t. Due algoritmi di partizionamento sono stati integrati nel solver: il primo effettua una suddivisione 1D del dominio, mentre il secondo, più sofisticato, è basato sulle Curve di Hilbert. Entrambi gli algoritmi hanno mostrato un alto livello di efficienza nel Weak Scaling Test (~90%), tuttavia nello Strong Scaling Test il secondo è risultato molto più efficiente del primo, ottenendo un livello di efficienza dell'~85%. Le comunicazioni dei bordi effettuate durante ogni time-step sono state mascherate dai calcoli della GPU, guadagnando il 10% di efficienza nello Strong Scaling eseguito su 32 GPU. Un'ottimizzazione effettuata dal solver consiste nell'escludere dai calcoli del time-step le celle asciutte che non possono diventare bagnate nel seguente passo di calcolo. Se da un lato questo approccio permette di eseguire meno calcoli, dall'atro si creano degli sbilanciamenti nel carico computazionale tra le diverse partizioni. In particolare, le GPU contenenti meno celle bagnate sono computazionalmente più leggere rispetto a quelle che ne contengono di più. Per questo motivo è stata progettata e implementata all'interno del risolutore, un'euristica in grado di catturare questi sbilanciamenti durante la simulazione ed equilibrare il carico tra le divrse GPU, convergendo ad una situazione bilanciata.
mar-2020
Ingegneria Civile
SWE, multi-GPU, multiresolution grid, CUDA, Dynamic Load Balancing, HPC
Vacondio, Renato
Dal Palù, Alessandro
File in questo prodotto:
File Dimensione Formato  
TurchettoPhdThesisPrintable.pdf

Open Access dal 02/04/2021

Licenza: Non specificato
Dimensione 2.06 MB
Formato Adobe PDF
2.06 MB Adobe PDF Visualizza/Apri
Relazione-Triennale-Turchetto.pdf

embargo fino al 01/01/2100

Licenza: Non specificato
Dimensione 1.23 MB
Formato Adobe PDF
1.23 MB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/1889/4014
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact