Code Saturne (thermohydraulique monophasique)
Transcription
Code Saturne (thermohydraulique monophasique)
Retours BlueGene/L S. Kortas & C. Domain EDF R&D Mai 2005 Machines testées IBM BlueGene/L : 1 rack, 2000 PowerPC 440, 0.77 GHz, 2.7 GF/s Cluster OPTERON (Tantale) : 552 proc OPTERON, 2.2 et 2.4 Ghz COMPAQ SC45 : 880 proc, EV68, 1.25 GHz (2.5 Gflops/s) 2 12/04/2006 Code Saturne (thermohydraulique monophasique) Code Saturne : a EDF general purpose CFD code for refined flow modelling Cas-test : modèle de turbulence k-ε standard, 2 millions cellules, 5 millions faces internes Calculateurs testés : IBM BG/L (mode Coproc et Virtuel), COMPAQ SC45 et Cluster Opteron. Compilation C qmaxmem=-1. 3 12/04/2006 (BG/L): -O3 -qarch=440 -qtune=440 - Code Saturne (thermohydraulique monophasique) Speedups: Chrome: 55 sur 128 Tantale: 110 sur 128 BG/L: 614 sur 1024 4 12/04/2006 Code Saturne (thermohydraulique monophasique) Conclusions < 512 processeurs : mode virtual est 5% moins bon que mode coproc Mesures de performances : • Un proc OPTERON 2,2Ghz = 2 proc BlueGene/L, • Un proc SC45 1,25 Ghz = 3 proc BlueGene/L • Efficacité (beaucoup IO, cas relativement petit) : • 76% à 512 procs, • 61% à 1000 proc 5 12/04/2006 Code Zephyr Caractéristiques des tests • Résolution des équations de Burgers visqueux 2D en Volumes finis d’ordre 2 • Partitionnement de domaine • Gradient conjugué BiCGSTAB avec de nombreuses communications et réductions • Problème 1024² et 512² résolu sur 1, 2 , 4, … 1024 proc Æ efficacité parallèle • Problème 256² x (nb processeurs) résolu sur 1, 4, 16, 64 procs Æ scalabilité • Machines : chrome, tantale, IBM BG/L • Performances rapportée au temps d’une itération Déroulement du portage : • Antécédent : code déjà porté sur IBM SP2 • Aucun problème de compilation ni d’exécution • Utilisation d’une routine de chronométrage spécifique à IBM BG/L 6 12/04/2006 Code Zephyr /Performance BG/L BGL 1024² / coproc vs virtual 1024² copro 1024² virtual lineaire BGL 1024² / comparaison scalabilité # proc # proc 1 10 100 1000 1 10000 1,00E+00 10 chrome tantale BG/L copro BG virtual 100 1000 1,2 1 1,00E-01 scall // time (s) 0,8 1,00E-02 0,6 Bon réseau sur BG/L 0,4 1,00E-03 Efficacité // > 90 % jusqu’à 128 proc en mode Copro Forte pénalisation des communications en virtual mode 0,2 1,00E-04 0 BG/L coproc vs virtual mode 512² # proc 1 10 BG/L scalabilité parallèle 1024² 100 1000 1 160,00% 10 scal virtual 100 1000 1,2 140,00% 1 120,00% 100,00% 80,00% 60,00% 40,00% 20,00% 0,00% 7 0,8 Pb estimation comm/calcul pour un cas donné 12/04/2006 // eff t(virtual)/t(copro scal copro # proc Différence de 2 à 38 % entre virtuel et copro comportement difficilement prévisible? 0,6 0,4 Scalabilité quasi-idéale en copro Scalabilité de 80 % en mode virtuel 0,2 0 Speedup super-linéaire! Code DYMOKA Caractéristiques des tests • Dynamique moléculaire classique dans les métaux – intégration de équation de Newton utilisant un potentiel de type EAM (potentiel local avec un rayon de coupure vers les 3ème ou 5ème voisins typiquement) – algorithme linéaire avec la taille du système – parallélisation : décomposition de domaine avec MPI • Dynamique moléculaire dans du Fer bcc • Performance mesurée en temps de calcul par atome et par pas de d’intégration (l ’algorithme étant linéaire) Déroulement du portage : • Antécédent : code déjà porté sur IBM SP2, ainsi que de nombreuses machines parallèles depuis 10 ans. • Aucun problème de compilation • les options de compilations améliorent peu les performances, de l ’ordre de 1% • Utilisation de la routine MPI_WTIME() 8 12/04/2006 Code DYMOKA /Performance BG/L •Pas de différence entre coproc et virtual mode •Le scaling est linéaire à au moins 98% jusqu’à 1024 processeurs, avec un système de plusieurs 10 millions d’atomes •Le temps de calcul est constant et est égal à 47 µs /atom /step •Le temps de calcul sur N procs est donc de (47 / N) µs /atom/step •Aucun effet de cache n’a été observé 9 12/04/2006 Code DYMOKA / Comparaison BG/L vs Chrome Nickel cas box 30x30x30 = 54000 atomes n procs temps/atom/step (µs) 1 2 4 8 16 32 17,945 9 4,7152 2,55 1,29 efficacite Machine 0,99694444 0,95144427 0,87965686 0,86942829 Sur le même problème, BG/L garde une efficacité > 98% 10 12/04/2006 Comparaison Nickel BGL temps/atome/step (µs) 36 47 Un processeur BGL est 30% plus lent qu’un Alpha EV 68 Code VASP (code ab initio DFT) Caractéristiques des tests : • Calcul Ab Initio – théorie de la fonctionnelle de la densité (DFT) – description des interaction électron-ion avec des pseudo-potentiels ultradoux de type Vanderbilt et utilisation d’une base d’ondes planes. • Cas Zr8H: supercellule avec 8 atomes de Zr structure hcp et 1 atome d’hydrogène • Cas GaN : maille de 8 atomes (4 de Ga et 4 de N) de structure zincblinde • Tel quel par défaut le code a besoin de plusieurs centaines de Mo de RAM par CPU et donc aucun gros calcul n ’a pu être lancé Déroulement du portage : • Antécédent : code déjà porté sur IBM SP2 • Aucun problème de compilation majeur • les indentations au niveau des #ifdef #else #endif ne sont pas supportées • option 440d ne fonctionne pas • Aucune optimisation n’a été faite sur la parallélisation par rapport aux spécificité de BGL 11 12/04/2006 Code VASP /Performance BG/L Cas Zr8H nproc VASP - BGL - Efficacité Temps CPU ( Efficacité 1 2 4 8 16 691,4 364,2 0,94920373 206,9 0,83542774 163,1 0,52988964 Speedup de 8,5 sur 16 Cas GaN 1 0,9 0,8 0,7 0,6 0,5 0,4 cas GaN 0,3 cas Zr8H 0,2 0,1 0 N proc 2 4 8 16 32 Temps CPU ( Efficacité 692,1 390 0,88730769 251,4 0,68824582 228,3 0,37894218 277,5 0,15587838 Speedup de 5 sur 32 12 12/04/2006 1 cas Zr8H 2 4 8 cas GaN 16 Mauvaise scalabilité pour Un grand nombre de processeurs Code VASP / Comparaison BG/L vs Chrome et Tantale VASP - cas "GaN" VASP - cas "Zr8H" 700 700 600 600 500 500 400 Alpha 400 Opteron 300 Opteron 300 Alpha 200 BGL 200 BGL 100 100 BGL Opteron 0 1 2 4 Alpha 8 BGL Alpha 0 1 2 4 16 VASP: performance 2 CPU BG/L ~ 1CPU Operon ~ 1 CPU Alpha 13 12/04/2006 Opteron 8 16