Presentation of the RiverFlow2D GPU by Reinaldo Garcia (Hydronia) at the "2D Hydraulic Modelling with RiverFlow2D Plus" Workshop held in Rome on October 24th 2014
1. Workshop – Roma 24 ottobre 2014
Modellazione Idraulica 2D 100X più veloce con RiverFlow2D Plus GPU
Reinaldo Garcia, PhD
2.
3. Modellazione Idraulica 2D 100X più veloce:
Una realtà tramite RiverFlow2D Plus GPU
Reinaldo Garcia, PhD Director or Model Development Hydronia, LLC
A.Lacasta Computational Hydraulics Group University of Zaragoza
(c) COPYRIGHT 2011-2014 Hydronia LLC.
ALL RIGHTS RESERVED. THIS PRESENTATION AND ITS CONTENT IS PROTECTED BY U. S. COPYRIGHT LAW.
Questa presentazione è stata tradotta in italiano ed adattata dalla IDRAN S.r.l. a partire dalla versione originale mantenendo tutti i diritti della Hydronia LLC riservati
4. Novità
Novità del 2014:
•febbraio: Modulo di Trasporto di Sedimenti
•aprile: Modulo Trasporto di Contaminanti
•maggio: Aggiornamento del modello GPU (10-15% più veloce della precedente versione)
•agosto: PONTI E PARATOIE
•RiverFLO-2D Plus RiverFlow2D
•OilFlow2D: dispersione di idrocarburi in terra
In fase di sviluppo:
•Dispersione di idrocarburi in acqua
•Modello Idrologico: pioggia spazialmente distribuita, infiltrazione: GA, CN, Horton
•Azione tangenziale del vento su superfici (FV)
•Modulo 1D/2D
•Modulo GPU più veloce
•RiverFlow2D nella «nuvola» (versione Cloud)
5. Red River of the North USA
Lavoro svolto nell’ambito di un accordo per attività di ricerca e sviluppo tra Hydronia-NOAA CRADA,
650 km
1,070,000 celle
Idrogramma di 40 giorni
RiverFlow2D GPU
2 ore di tempo computazionale.
6. Applicazioni 2D del Modello Idraulico
Tratti fluviali più lunghi
10-100 km
Griglie a maggiore risoluzione
Diversi milioni di celle
Tempi di simulazione più lunghi
Giorni, mesi, anni
Girate per scenari multipli
8. La parallelizzazione dei codici per utilizzo con PC a processori multipli é il metodo principale per velocizzare i modelli
9. Parallelizzazione del Codice
•Memoria condivisa: OpenMP
•Memoria distribuita: MPI
•Unità di processamento grafico: GPU CUDA, OpenCL
•La parallelizzazione è virtualmente impossibile per la maggior parte dei modelli esistenti
10. Problematiche per la parallelizzazione
•Molti modelli esistenti sono virtualmente impossibili da parallelizzare
•Sono stati programmati per vecchi processori
•Spaghetti code
11. RiverFLO-2D
•Modello 2D per acque poco profonde
•Strutture idrauliche, trasporto di sedimenti, ecc.
•Motore parallelizzato (OpenMP®) agli Elementi Finiti
•Griglia triangolare irregolare e flessibile
•Pre e Post-processori semplici: Argus ONE/SMS
RiverFLO-2D
(FE)
12.
13.
14. RiverFlow2D Plus
RiverFLO-2D
RiverFlow2D Plus
•Motore Parellelizzato (OpenMP®) ai Volumi Finiti
•Griglia triangolare irregolare e flessibile
•Stessi Pre e Post-processori
•Alta precisione (Errore di cons. volume << 10-12 % )
16. La parallelizzazione in multipli processori non è sufficiente
Numero di processori é limitato: 4, 6, 12…
Molte volte la parallelizzazione in Open MP non è scalabile
17. Unità di Processamento Grafico: GPU
• Progettate per accelerare la creazione di immagini da
mostrare in un display.
• La struttura altamente parallelizzata dei GPU moderni li
fa più efficaci rispetto ai CPU generici se si deve
processare algoritmi con una grande quantità di
informazioni.
• GPU è normalmente presente su schede grafiche.
• Al contrario di un CPU, il GPU esegue lentamente molti
thread simultaneamente piuttosto che eseguire un
singolo thread velocemente
21. RiverFlow2D Plus GPU
RiverFLO-2D
RiverFlow2D Plus
RiverFlow2D Plus GPU
•Motore ai Volumi Finiti GPU
•Griglia triangolare irregolare e flessibile
•Stessi Pre e Post-processori
•Alta precisione (Errore di cons. volume << 10-12 % )
•Calcoli più veloci (>100x accelerazione)
22. RiverFlow2D Plus GPU
RiverFLO-2D
RiverFlow2D Plus
RiverFlow2D Plus GPU
•Diversi prodotti commerciali basati su tecnologia GPU sono stati rilasciati
•GPU fornisce un processore multi-core (Permette di effettuare calcoli più veloci!)
•Molti implementano la tecnologia GPU unicamente per modelli molto grandi a celle rettangolari utilizzando tecniche numeriche molto semplici (utilizzando a volte Precisione Singola)
23. Il nostro obiettivo è quello di «accelerare» piccole e grandi griglie
…garantendo una elevata precisione
24. Sia la versione CPU che quella GPU devono garantire gli stessi risultati
28. Green River
•Griglia1 19,079 celle
•Griglia2 154,880 celle
•Griglia 3 1,878,607 celle
•Idrogramma di 2 ore
Idrogramma Q = 44,000 cfs
Flusso uniforme
32. River in California
•357,611 celle
•326,082 cfs
•Idrogramma di 7 giorni
Uscita libera
0
50000
100000
150000
200000
0
50
100
150
200
0
50000
100000
150000
200000
0
50
100
150
200
34. Incremento della Produttività
Assumendo che per un progetto si sviluppino in media 10 scenari/progetto, si risparmierebbe in termini di tempo:
1400 ore / 58 giorni
35. NVIDIA GTX Titan Black
•2880 CUDA Cores
•6 Gb Memory
•US$950
•Con le ultime ottimizzazioni dell’algoritmo utilizzando questa nuova scheda é stata raggiunta una soglia di «accelerazione» di 100X
36. GTX 780, 12.05
Tesla c2075, 21.48
Tesla k20, 20.58
Titan Black, 15.44
GTX 780, 44.30
Tesla c2075, 39.19
Tesla k20, 56.09
Titan Black, 58.22
GTX 780, 79.85
Tesla c2075, 50.26
Tesla k20, 84.93
Titan Black, [VALUE]
0.00
20.00
40.00
60.00
80.00
100.00
120.00
GTX 780
Tesla c2075
Tesla k20
Titan Black
RiverFlow2D GPU Speedup Tests
1,878,607
154,880
19,079
NVIDIA GPU CARD
Number of cells
37. RiverFlow2D Plus GPU
Attualmente disponibile
Motore idrodinamico base
Strutture idrauliche
Prossimamente: versione GPU per:
Trasporto di sedimenti
Colate detritiche e di fango
Trasporto di contaminanti
39. Simulazione di dispersione di idrocarburi in terra
•Terreni complessi
•Flusso viscoso
•Eventi istantanei
•Multipli scenari
•Migliaia di girate
40. OilFlow2D
•RiverFlow2D +
•Griglia flessibile
•Celle triangolari
•Flusso viscoso a pelo libero
•Viscosità e densità degli idrocarburi
•GIS-GUI
•Collaborazione Hydronia / Università di Zaragoza R&D
55. OilFlow2D/3D in «acqua»
•OilTrack: modello commerciale 1996-2001
•Simula traiettorie di fuoriuscite di idrocarburi e il comportamento in acque superficiali
•Il campo di flusso viene simulato con una griglia triangolare flessibile
•La dispersione viene concettualizzata come un insieme di molte «chiazze» che si muovono in uno spazio tridimensionale
•Ogni «chiazza» ha diverse proprietà: massa, viscosità, ecc. che possono variare nel tempo e nello spazio
56. Comportamento della dispersione
• Si prendono in considerazione diversi processi
fisico-chimici:
– Evaporazione
– Emulsificazione
– Dispersione
– Dissoluzione
– Sprofondamento
– Interazione con la costa
• Il modello calcola le variazioni delle proprietà
dell’idrocarburo (ecc. viscosità) nel tempo e nello
spazio
57. Base Dati
•Base dati su scala mondiale
•Proprietà fisiche di diversi tipi di idrocarburi
•Utilizzata per calcolare evaporazione, emulsificazione, ecc. durante la simulazione
•OilFlow2D (acqua) sarà rilasciato nella prima metà del 2015
58. RiverFlow2D: Modello di Trasporto di Contaminanti
•Trasporto di sostanze dissolte e analisi termico in corpi d’acqua
•Simulazione avanzata di avvezione- dispersione-reazione, incluso il decadimento
•Multipli contaminanti
•Multipli opzioni di visualizzazione e output
59. Modello di Trasporto di Contaminanti
•Avvezione-Dispersione-Reazione
•C: concentrazione del contaminante mediata nel tirante
•Dxx, Dyy : coefficienti di dispersione
휕 휕푡 ℎ퐶+ 휕 휕푥 ℎ퐶푈푥+ 휕 휕푦 ℎ퐶푈푦− 휕 휕푥 ℎ퐷푥푥 휕퐶 휕푥 − 휕 휕푦 ℎ퐷푦푦 휕퐶 휕푦 =푆