Babel : Passage d'un compte de développement en compte de production

Pour pouvoir passer un compte de développement en un compte de production (qui est la modalité normale de fonctionnement de l'IDRIS), le chef de projet doit faire la demande via l' extranet.

Vous devez fournir le test d'extensibilité du code qui sera utilisé en mode production. Si plusieurs codes sont utilisés dans le cadre du même projet, une courbe d'extensibilité par code est demandée. L'objectif de ce test est d'obtenir la meilleure adaptation possible du code à la plate-forme de calcul.

Vos résultats doivent être déposés sur l' extranet au format PDF.

Quelques précisions sur les tests d'extensibilité :

  • Préciser si ce test d'extensibilité est de type weak scaling (i.e. charge de travail constante par coeur) ou de type strong scaling (i.e. taille de problème constante quelque soit le nombre de coeurs utilisés).
  • Préciser le mode d'exécution (SMP, DUAL ou VN) qui doit être une constante du test d'extensibilité.
  • Pour ce test, le nombre maximum de coeurs d'exécution nmax devra correspondre à la plus grosse configuration de production envisagée, alors que la valeur du nombre de coeurs de l'exécution de référence nref devra être au maximum quatre fois plus petite que celle de nmax. Par exemple, un projet visant des exécutions en mode production pouvant utiliser 16384 coeurs devra fournir une courbe d'extensibilité jusqu'à au moins 16384 coeurs avec une exécution de référence sur au plus 4096 coeurs.
  • Les caractéristiques du test d'extensibilité devront se rapprocher le plus possible de celles du run de production, en particulier en terme de volumétrie et de fréquence des entrées-sorties, de la taille des domaines de simulations, de la prise en compte de la phase d'initialisation du code, etc.
  • Les exécutables ainsi que les jeux de données permettant de reproduire les résultats devront être tenus à la disposition de l'IDRIS qui pourra être amené à valider ces courbes d'extensibilité.
  • Pour rappel, la courbe d'extensibilité correspond à la représentation de l'accélération en fonction du nombre de coeurs. Soit Tref le temps elapsed de référence sur nref coeurs.
    • Pour un test de type strong scaling, l'accélération et l'efficacité parallèle du code sur n > nref coeurs sont données par les formules suivantes : Acc(n) = Tref/Tn Eff(n) = Acc(n)/(n/nref)Tn est le temps elapsed d'exécution sur n coeurs.
    • Pour un test de type weak scaling, nous définirons l'accélération et l'efficacité parallèle du code sur n > nref coeurs de la manière suivante : Acc(n) = (n/nref) x (Tref/Tn) Eff(n) = Tref/Tn

Pour obtenir ces courbes, on fera varier le nombre n de coeurs de nref à nmax (une à trois valeurs intermédiaires suffisent). Les informations brutes à fournir pourront être synthétisées dans un tableau. En voici un exemple pour un test d'extensibilité de type Strong Scaling réalisé en mode VN :

Nombre de coeurs Temps elapsed (s) Accélération Efficacité
nref = 1024 100 1.00 1
2048 52 1.92 0.96
4096 29 3.45 0.86
8192 16 6.25 0.78
nmax = 16384 10 10.00 0.63

Dans la figure suivante, correspondant à un test d'extensibilité de type Strong Scaling en mode VN, la courbe pleine représente la variation de l'accélération en fonction du nombre de coeurs (la référence étant l'exécution sur 1024 coeurs), celle en pointillé représente l'accélération idéale.

acceleration

Dans la figure suivante, correspondant toujours à un test d'extensibilité de type Strong Scaling en mode VN, la courbe pleine représente la variation de l'efficacité en fonction du nombre de coeurs (la référence étant l'exécution sur 1024 coeurs), celle en pointillé représente l'efficacité idéale.

efficacite