62
Workshop – Roma 24 ottobre 2014 Modellazione Idraulica 2D 100X più veloce con RiverFlow2D Plus GPU Reinaldo Garcia, PhD

RiverFlow2D GPU

Embed Size (px)

Citation preview

Workshop – Roma 24 ottobre 2014

Modellazione Idraulica 2D 100X più veloce con RiverFlow2D Plus GPU

Reinaldo Garcia, PhD

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

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)

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.

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

Evoluzione della velocità dei Processori

La parallelizzazione dei codici per utilizzo con PC a processori multipli é il metodo principale per

velocizzare i modelli

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

Problematiche per la parallelizzazione • Molti modelli esistenti sono virtualmente

impossibili da parallelizzare

• Sono stati programmati per vecchi processori

• Spaghetti code

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)

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 % )

RiverFlow2D Plus CPU

La parallelizzazione in multipli processori non è sufficiente

Numero di processori é limitato: 4, 6, 12…

Molte volte la parallelizzazione in Open MP non è scalabile

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

Ottimizzazione GPU

• Richiede hardware specifico

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)

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)

Il nostro obiettivo è quello di «accelerare» piccole e grandi

griglie

…garantendo una elevata precisione

Sia la versione CPU che quella GPU devono garantire gli stessi risultati

RiverFlow2D Plus GPU Casi di studio

NVIDIA GeForce GTX 780

• 2304 CUDA Cores

• 3 Gb Memory

• US$550

NVIDIA Tesla k20

• 2496 CUDA Cores

• 5 Gb Memory

• US$2500

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

11X

21X

39X

56X

65X

85X

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

39X

47X

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

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

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

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

Modeling Oil Spills

Simulazione di dispersione di idrocarburi in terra

• Terreni complessi

• Flusso viscoso

• Eventi istantanei

• Multipli scenari

• Migliaia di girate

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

Visualizzazione dinamica

• Google Earth

• Animazioni (avi)

Interfaccia rinnovata SMS di Aquaveo

Fuoriuscite istantanee

Grazie! Domande?

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

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

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

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

Modello di Trasporto di Contaminanti

• Avvezione-Dispersione-Reazione

• C: concentrazione del contaminante mediata nel tirante

• Dxx, Dyy : coefficienti di dispersione

𝜕

𝜕𝑡ℎ𝐶 +

𝜕

𝜕𝑥ℎ𝐶𝑈𝑥 +

𝜕

𝜕𝑦ℎ𝐶𝑈𝑦 −

𝜕

𝜕𝑥ℎ𝐷𝑥𝑥

𝜕𝐶

𝜕𝑥−

𝜕

𝜕𝑦ℎ𝐷𝑦𝑦

𝜕𝐶

𝜕𝑦= 𝑆

RiverFlow2D: Griglia raffinata

Scarico del depuratore

Idrogramma del fiume Trou-du-Nord

Concentrazione Totale N dal punto di scarico

Treatment Plant Discharge

Trou-du-Nord River Discharge

0

0.5

1

1.5

2

2.5

3

3.5

0 50 100 150 200 250 300 350

Tota

l N (

mg/

l)

Distance (m)

0 m3/s

1 m3/s

5 m3/s

20 m3/s

Trou-du-Nord River 0.m3/s