Calcul Intensif

Le HPC désigne l’utilisation de calculateurs puissants pour des applications scientifiques ou techniques. Ces nouveaux calculateurs ou ensembles de calculateurs (« clusters ») rendent possible un développement spectaculaire des performances des applications logicielles tout en ouvrant la voie à des applications inédites dans de nombreux domaines, industriels et de service, à forts enjeux économiques et sociétaux : aéronautique et spatial, transports, énergie, chimie, médecine et biologie, matériaux, environnement, multimédia ou finance…

Pour donner un point de repère, un processeur standard récent, qu’on peut avoir dans un ordinateur personnel (PC),  peut dépasser le 1 GFLOPS. Il a la même puissance que le supercalculateur le plus performant en 1983, le Cray Vector X-MP. La machine la plus puissante à l’heure actuelle débarquera très probablement chez vous dans 20 ans !

 

      Une machine atteignant 1 TFLOPS, serait donc 1000 fois plus rapide qu’un PC.

Un supercalculateur est caractérisé par :

      • Le nombre de nœuds : Un nœud correspond à une unité physique de calcul, composé de processeurs, où chaque processeur est composé de cores. Soit un cluster CL dont le nœud est à base d’un Intel Nehalem EX, à huit processeurs. Chaque processeur a huit cores, faisant 64 cores par noeud. Le nœud dispose d’une mémoire interne de 128 GigaByte.
      • Le nombre de cores : Le nombre de cores est simplement le nombre de nœuds multiplié par le nombre de cores par nœud. Supposons que le cluster  CL a 176 nœuds, il a donc 11 264 cores.
      • La taille de la mémoire vive : La taille est aussi le nombre de nœuds par la taille de la mémoire par nœud. Dans notre exemple CL, on aurait 176*128, faisant 22 528 GB.
      • La taille des disques : Mesure en TOctets de la taille des disques. Dans le cluster CL, les disques atteignent 61 TeraByte, ou encore 16 000 GigaByte.
      • Peak performance : C’est la mesure en FLOPS de la puissance max du supercalculateur. Sur le cluster CL qu’on vient de décrire, on devrait atteindre les 103 TFlops, car chaque core délivre 9.2 GFlops (2.3 GHz * 4 Flop = 9.2 GFlops), il y a 64 cores dans chacun des 176 nœuds, nous avons donc 9.2*64*176 = 103628 GFlops ≈ 103 TFlops.

 

   Cette architecture générale des supercalculateurs sert les programmes parallèles. Pour illustrer l’intérêt de la parallélisassion, soit le calcul du produit matriciel A.B, où A et B sont des matrices de rang n. On effectue la multiplication

comme à l’accoutumé :

Boucle1 : Pour i allant de 1 à n faire

Boucle2 : Pour j allant de 1 à n faire

Boucle3 : Multiplier la ligne i de A par la colonne j de B

Stocker le résultat dans la case (i, j) du résultat de la multiplication A.B

 

    Le calcul  A.B nécessite n3 multiplications. Ainsi, pour n=100, A.B consommerait 1000 000 opérations ! On constate que les n2 Boucle3 sont totalement indépendantes, on peut donc les mettre sur des processeurs/cores différents. Du coup, le nombre d’opérations chute à n opérations, 100 opérations dans notre exemple. Nous avons adopté dans ce calcul une hypothèse qui consiste à négliger la diminution des performances en raison de la mémoire partagée.

 

    Enfin, le lecteur doit retenir le fait suivant : calcul intensif est synonyme de calcul parallèle ; c’est-à-dire exploiter la disponibilité d’un nombre impressionnant d’unité de calcul (processeurs ou cores) pour accélérer un calcul séquentiel.

 

    Les supercalculateurs ne sont pas dédiés au calcul séquentiel (non parallélisé). Le calcul séquentiel doit se faire sur des stations de travail. Cependant la disponibilité de moyens impressionnants de stockage dans les supercalculateurs, pourrait aussi servir un calcul séquentiel qui se ferait sur un seul nœud, mais exploitant la disponibilité d’un espace de stockage important. C’est pour cette raison que nous définissons le calcul intensif comme étant tout calcul nécessitant :

 

 

    • En premier lieu, beaucoup de processeurs : c’est la première vocation d’un calcul intensif.
    • En deuxième lieu, beaucoup d’espace de stockage : Les capacités impressionnantes de stockage d’un supercalculateur peuvent intéresser des calculs séquentiels gourmands en stockage.
    •  En troisième lieu, beaucoup de temps : Vu le fait que le supercalculateur fonctionne en permanence, avec une alimentation garantie, il serait donc bien adapté à des calculs qui durent trop longtemps (des jours, des semaines, des mois, …), même s’ils sont séquentiels et consomment peu d’espace disque.