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 >