Fluidodinamica computazionale
su cluster Gigabit Ethernet:
il ruolo del software di comunicazione
Giuseppe Ciaccio
DISI -- Universita’ di Genova
Calcolatori Cluster +
CPU commodity
=
rivoluzione nel calcolo parallelo
www.top500.org, giugno 2007:
Organizzazione
%
Rmax tot.
NUMA + vector
21%
1970 TF
2438 TF
602 K
Cluster
75%
2802 TF
4488 TF
570 K
4%
175 TF
257 TF
47 K
Costellazione
Rpeak tot. CPU tot.
Calcolatori Cluster +
CPU commodity
=
rivoluzione nel calcolo parallelo
www.top500.org, giugno 2007:
CPU family
%
Rmax tot.
CPU tot.
Intel EM64T
46%
1793 TF
275 K
AMD x86_64
21%
941 TF
270 K
6%
410 TF
75 K
Intel IA64
Gigabit Ethernet:
grande successo
nei calcolatori paralleli
www.top500.org, giugno 2007:
Interconnect family
%
Rmax tot.
Rpeak tot.
CPU tot.
Gigabit Ethernet
41%
1205 TF
2205 TF
254 K
Infiniband
26%
1243 TF
1749 TF
223 K
9%
386 TF
581 TF
92 K
Myrinet
Gigabit Ethernet:
perche’ tanto successo?
Basso costo, ottimo rapporto prestazioni/costo
Prestazioni adeguate per molte applicazioni di calcolo parallelo
Facile da reperire e installare
Molto software gratuito disponibile
(Linux, TCP/IP, MPI...)
Prestazioni adeguate ma non esaltanti...
Prestazioni adeguate
ma non esaltanti
Hardware: latenza di comunicazione elevata
Latenza di uno switch Gigabit: piu’ di 3 usec,
equivalenti a migliaia di operazioni in virgola mobile
Ma soprattutto: software di comunicazione inefficiente
Latenza di MPICH-2/Nemesis/TCP/Linux: circa 50 usec
(NIC: Intel PRO/1000, switch incluso)
Conseguenza: cattive prestazioni per messaggi "corti"
Struttura tradizionale
sender
receiver
Applicazione utente
Applicazione utente
MPICH-2
MPICH-2
CH3
CH3
NEMESIS
NEMESIS
socket
socket
OS scheduler
TCP
TCP
IP
IP
driver
driver
Network Adapter
Network Adapter
Gigabit Ethernet
GAMMA:
Genoa Active Message MAchine
Applicazione utente
Applicazione utente
MPI/GAMMA
MPI/GAMMA
ADI
ADI
GAMMA
GAMMA
driver
driver
Network Adapter
Network Adapter
Gigabit Ethernet
MPI/GAMMA:
prestazioni interessanti...
Hardware: latenza di comunicazione invariata
Software di comunicazione piu’ efficiente:
Latenza di MPICH-2/Nemesis/TCP/IP: circa 50 usec
Latenza di MPI/GAMMA: circa 11 usec
(NIC: Intel PRO/1000, switch incluso)
Conseguenza: migliori prestazioni per messaggi "corti"
Quale impatto sulle applicazioni?
OpenFOAM
Una suite di strumenti per CFD
risolutori, modelli, pre/post-processing, mesh processing
C++, open source, progettato per UNIX e GNU/Linux
software libero, licenza GNU GPL v. 2
Elaborazione parallela: MPI
Gratuito!
http://www.opencfd.co.uk
http://www.opencfd.co.uk/openfoam/features.html
OpenCFD
Search
Go
Back to OpenFOAM Home
OpenFOAM FEATURES
Solvers
Creating solvers
Standard solvers
Pre-processing
The FoamX case manager
Other pre-processing utilities
Post-processing
The paraFoam post-processor
Third-party post-processing
Other post-processing utilities
Mesh processing
Mesh generation
Mesh converters
Mesh manipulation
Model libraries
Turbulence
Large-eddy simulation (LES)
Transport models
Thermophysical models
Lagrangian particle tracking
Chemical kinetics
Other features
Linear system solvers
ODE system solvers
Parallel computing
Mesh motion
Numerical method
© 2004-2007 OpenCFD Ltd
Solutions
Contact
OpenFOAM
Features of OpenFOAM
SOLVERS
UTILITIES
LIBRARIES
Creating solvers
Pre-processing
The FoamX case manager
Other pre-processing utilities
Model libraries
Turbulence
Large-eddy simulation (LES)
Transport models
Thermophysical models
Lagrangian particle tracking
Chemical kinetics
Standard solvers:
’Basic’ CFD
Incompressible flows
Compressible flows
Multiphase flows
DNS and LES
Combustion
Heat transfer
Electromagnetics
Solid dynamics
Finance
Post-processing
The paraFoam post-processor
Third-party post-processing
Other post-processing utilities
Mesh processing
Mesh generation
Mesh converters
Mesh manipulation
Other features
Linear system solvers
ODE system solvers
Parallel computing
Mesh motion
Numerical method
OpenFOAM come benchmark
Due diversi job di CFD
Tratti dal tutorial di OpenFOAM
"Motorbike": aerodinamica di una motocicletta in corsa
regime stazionario, incomprimibile, Spalart-Allmaras, 2.3 Mcelle
"PitzDaily3D": flussi in un impianto di combustione
regime transitorio, LES, incomprimibile, SGS Yoshizawa, 244 Kcelle
Confronto: MPICH-2, OpenMPI, LAM, MPI/GAMMA
Hardware: cluster di 18 dual-Xeon @2800MHz, Gigabit Ethernet
Scheda di rete: Intel PRO/1000. Altri dettagli agli atti
"Motorbike": prestazioni
Wall-clock time per 50 steps, in secondi
#cpu x #nodi
MPI/GAMMA
MPICH-2
OpenMPI
LAM
2 x 18
162
167
166
186
1 x 18
191
193
192
192
2x9
313
316
316
340
2x8
359
347
354
405
1x8
408
408
449
487
2x4
605
611
667
726
"PitzDaily3D": prestazioni
Wall-clock time per 400 timesteps, in secondi
#cpu x #nodi
MPI/GAMMA
MPICH-2
OpenMPI
LAM
2 x 18
436
608
600
692
1 x 18
332
509
510
495
2x9
521
682
691
808
2x8
527
674
686
812
1x8
709
858
853
845
2x4
1125
1275
1289
1415
Alcune osservazioni (banali)...
Risoluzione in regime stazionario: non sembra dipendere da latenza
Occorre provare con un numero di nodi assai piu’ grande...
Simulazione in transitorio: molto piu’ sensibile alla latenza
Lo e’ gia’ con pochi nodi, perche’ la mesh e’ "piccola"
Piu’ nodi = piu’ traffico in rete, e messaggi piu’ corti
Scenario sempre piu’ favorevole alle interconnessioni a bassa latenza
Un software di comunicazione efficiente diventa determinante.
GAMMA: Svantaggi
Richiede driver di rete "modificato"
Due driver disponibili al momento
(Intel PRO/1000 e Broadcom Tigon3)
Si appoggia ad alcune strutture "interne" di Linux
Difficile compilare come modulo di Linux
Non e’ semplice da installare
Occorre dimestichezza nell’installare un Linux kernel
MPI/GAMMA e’ standard MPI-1 ma non MPI-2
Pero’ molte applicazioni MPI in realta’ usano solo MPI-1
Riferimenti
OpenFOAM e’ prodotto da OpenCFD, Ltd (UK)
http://www.opencfd.co.uk
Henry Weller < h.weller @ opencfd.co.uk >
GAMMA e’ ormai solo un mio hobby (e il tempo libero scarseggia)
http://www.disi.unige.it/project/gamma/
Giuseppe Ciaccio < ciaccio @ disi.unige.it >
Scarica

il ruolo del software di comunicazione