Domaines concernés par le HPC

Le calcul intensif agit directement sur divers domaines clefs connus par leur impact sur l’économie tels que l’industrie pétrolière, les biotechnologies et l’industrie pharmaceutique, l’imagerie médicale et la météorologie, etc. Dans ce qui suit, nous énumérons ces domaines et leurs besoins en puissance de calcul.

       Industrie pétrolière

cluster2L’industrie pétrolière est l’un des domaines ayant un besoin énorme en puissance de calcul. Dans cette industrie, des simulations, des techniques d’optimisation et d’aide à la décision, de plus en plus complexes et gourmandes en puissance de calcul,sont utilisées pour la production et la recherche de nouvelles réserves énergétiques. Parmi ces

techniques, nous citons les plus importantes :
la modélisation et la simulation de réservoir, le traitement d’images 3D et l’interprétation de données provenant  d’algorithmes sismiques.

La simulation de réservoir est une technique utilisée afin de déterminer le plan de développement d’un gisement pétrolier. Les ingénieurs ont besoin de simuler l’historique de production d’un gisement en fonction de divers scénarios d’implantation de puits. Ces simulations passent par la résolution d’équations complexes modélisant l’écoulement des fluides dans les réservoirs. De plus, afin d’obtenir un aperçu détaillé des sites de forage, les compagnies pétrolières ont recours à des techniques d’imagerie sismique en 3D.
Le recours aux infrastructures de calcul haute performance est donc un besoin primordial pour les acteurs de ce  domaine.

       Biotechnologies et Industrie pharmaceutique

Le domaine des biotechnologies est actuellement en plein développecluster3ment en Algérie, notamment à travers la création d’un nouveau centre de recherche en biotechnologies à Constantine en collaboration avec des sociétés américaines.
L’objectif de cette initiative est de créer un pôle de biotechnologie et d’industrie pharmaceutique dans la région  Afrique-Moyen Orient.
Ces domaines sont parmi les domaines demandeurs en puissance de calcul en Algérie.
Des techniques de simulation et de modélisation de molécules sont utilisées dans de nombreux procédés en industrie pharmaceutique : la prédiction de structures de protéines inconnues (protein folding), la modélisation des interactions intermoléculaires et la conception de nouvelles molécules pour la découverte de nouvelles molécules pour la découverte de nouveaux médicaments. La modélisation moléculaire se réfère à des modèles théoriques et techniques de calcul utilisés pour la représentation de structures de molécules et la simulation de leurs comportements et interactions.
Ces techniques nécessitent d’une part le traitement de grands volumes de données durant et après les  expérimentations, et d’autre part, l’utilisation d’une puissance de calcul considérable pour la modélisation des macromolécules complexes qui contiennent des milliers d’atomes constituant les protéines et les acides nucléiques
(exp. ADN).

       Imagerie médicale (Medical Imaging)

Grâce aux avancées technologiques et techniques, beaucoup de zones d’ombre du corps humain ont pu cluster4être éclairées, notamment, à travers l’utilisation de techniques d’imagerie médicale (radiologie, médecine nucléaire). Ces techniques permettent une reconstruction tridimensionnelle à très haute définition du corps humain permettant de le voir dans toutes ses dimensions et d’effectuer des coupes à divers endroits afin d’en détecter et d’analyser le moindre  dysfonctionnement.
D’un autre côté, le développement des techniques de visualisation informatique, d’analyse et des méthodes de  reconstruction tomographiques 2D et 3D a créé de nouvelles opportunités pour la médecine.
Ces techniques sont de plus en plus utilisées pour le planning d’opérations chirurgicales, la simulation de soins orthopédiques et orthodontiques, la simulation post-opératoire et l’aide au diagnostic des maladies telles que le cancer. Ces applications impliquent l’utilisation d’algorithmes de plus en plus complexes tels que les algorithmes de  segmentation d’images et de reconstruction d’objets 3D nécessitant la manipulation de grandes masses de données (data-intensive) et une grande puissance de calcul (CPU-time intensive) pour le traitement de ces données.

       La modélisation du climat et les prédictions météorologiques 

La climatologie traite de la modélisation du climat et des océans afin d’en prédire et comprendre les cluster5bouleversements et les phénomènes naturels qui y sont liés. Elle permet de produire des prévisions météorologiques et de modéliser et simuler le déroulement des phénomènes et catastrophes naturelles telles que les inondations, les orages et les tempêtes de neige dans les pays à fort risque dont l’Algérie. Ces simulations permettent de prédire les quantités de pluies, épaisseur des neiges attendues et la vitesse des vents. De plus, les niveaux des crues des rivières et les niveaux d’eau dans les villes après de fortes précipitations peuvent être prédits en utilisant des modélisations mathématiques. Ces simulations et modélisations permettent de sauver des vies humaines en anticipant les aides, en déclenchant des alertes à temps et en évacuant la population, si nécessaire. Ces modélisations sont basées sur des modèles mathématiques et des systèmes numériques impliquant de nombreux paramètres.
Ces modèles sont de leur part basés sur des lois de la physique (équations de thermodynamique etcluster6 écoulement des fluides). La zone géographique à couvrir est représentée sous forme d’une grille dans laquelle sont disposés les paramètres initiaux de l’atmosphère récoltés à divers endroits par des stations météo spécialisées (température, pression, humidité et salinité des eaux de mers). Le modèle calcule alors l’évolution des paramètres à chaque nœud de la grille à des intervalles de temps bien déterminés. La précision des prévisions dépend de la granularité des mailles de la grille. Actuellement, les maillages utilisés sont généralement de l’ordre de 7 à 10 km selon les organisations.

Les modèles de prévision utilisés par les organisations météorologiques de chaque pays sont généralement adaptés  aux caractéristiques géographiques du pays en question. Par exemple, le relief montagneux peut générer des phénomènes météorologiques imprévisibles à faible résolution d’où la nécessité de passer à la haute résolution (maillage <=2km) dans certaines zones impliquant la nécessité d’utilisation d’une plus grande puissance de calcul.

       Infrastructures de calcul large échelle

Les utilisateurs potentiels du HPC décident de l’infrastructure à utiliser selon deux facteurs importants :
La nature du besoin en calcul qui diffère selon le volume de données à traiter, le volume des messages à échanger entre les différents noeuds de l’infrastructure et la puissance de calcul nécessaire pour le traitement des données de l’application.

Le rapport entre le coût et la puissance de calcul fournie par la machine. La puissance de calcul est mesurée par le nombre d’opérations flottantes par seconde flops (FLoating-point Operation Per Second). La machine la plus puissante actuellement dans le monde et qui apparaît dans la liste Top 500 1 est le supercalculateur Sequoia aux USA. Elle atteint 16.3 Pflops (16.3 x 10 15 flops) et contient 1,5 millions de coeurs mais avec des coût exorbitants pouvant atteindre plusieurs millions de dollars.

Dans ce qui suit, nous énumérons les différentes infrastructures utilisées pour le HPC selon leurs grandeurs en  puissance de calcul et le type d’applications adaptées à ces infrastructures.

       Super-calculateurs (Supercomputers)

cluster7Les supercalculateurs sont des machines massivement parallèles contenant un grand nombre de processeurs    (plusieurs milliers de processeurs) interconnectés avec un réseau à haut débit (dizaines de Go/s). Ces processeurs sont généralement organisés sous forme de nœuds de calcul d’architecture RISC ou vectorielle et ayant une mémoire commune ou partagée. La performance de ce type de machines réside dans l’exploitation de la puissance cumulée des processeurs quand le calcul est effectué en parallèle. Ce type d’architecture est adapté aux applications fortement couplées 2 . Les domaines les plus utilisateurs de ce type d’architecture sont la météorologie, l’industrie pétrolière et les simulations sismiques.

       Clusters

cluster8   Un cluster est composé d’un ensemble de stations de travail (noeuds) interconnectées avec un réseau local pour   former une seule machine logique. Contrairement aux super-calculateurs, les noeuds d’un même cluster sont moins couplés et utilisent chacun sa propre configuration. Un des avantages des clusters est leur faible coût de mise en oeuvre par rapport au coût exorbitant des supercalculateurs. Ce faible coût encourage les moyennes et petites entreprises à former leurs propres clusters en utilisant d’anciennes machines non exploitées.
Ce processus de recyclage d’anciennes machines permet aux entreprises d’atteindre une très grande puissance de calcul avec un très faible coût. Ce type d’infrastructure est adapté aux applications moyennement couplées avec des volumes moyens de données traitées.

       Grilles de Calcul (Computational Grids) 

Depuis les années 90, les systèmes distribués ont vu une grande évolution à la foisgrille1 en termes de logiciel qu’en termes de matériel. En effet, le développement des réseaux à haut débit et la généralisation d’internet ont mené à l’émergence d’une nouvelle génération de systèmes distribués et une nouvelle interprétation du concept de partage de ressources traditionnellement connu dans les réseaux d’ordinateurs. Après l’apparition des grappes de calcul ou clusters, le concept de grille apparut au milieu des années 90. Le terme Grid a été donné par analogie aux réseaux électriques (power grid), l’idée étant d’assurer aux utilisateurs un accès transparent à la puissance de calcul d’une grille informatique tout comme c’est le cas pour l’acquisition de la puissance électrique à partir d’un réseau électrique.

Une grille est généralement définie comme une infrastructure virtuelle, autonome, dynamiquement reconfigurable, large échelle et agré geant un grand nombre de ressources de calcul et de stockage de données. Ces ressources sont hétérogènes (super-calculateurs, stations de travail, clusters, sources de données), géographiquement distribuées et appartiennent à des domaines d’administration différents.

Plus généralement, la technologie des grilles peut aussi inclure des outils logiciels et des services offerts par une grille afin de faciliter son utilisation par des utilisateurs finaux venant de diverses disciplines. Parmi ces outils, des intergiciels (middelwares) facilitant l’accès à l’ensemble des ressources de la grille en cachant son côté distribué et multi-domaines d’administration et des outils pour assurer la sécurité des données et la tolérance aux fautes. Ce type d’infrastructures est adapté aux applications faiblement couplées (qui nécessitent peu de communications sur le réseau) et impliquant de gros volumes de données. Dans le domaine médical notamment, les grilles sont très utilisées pour l’hébergement et le partage de données médicales tels que le dossier médical informatisé. Il existe actuellement de nombreuses infrastructures de type grille qui sont dédiées à la santé et aux sciences. Parmi elles, nous citons la grille européenne EGI (European Grid Infrastructure).

       Calcul volontaire (Volunteer Computing)

Le calcul volontaire (Volunteer Computing) ou calcul sur internet est un autre type de système distribué où les  utilisateurs participent avec leurs ressources de calcul personnelles (ordinateurs de bureau) au profit d’un ou plusieurs projets nécessitant de la puissance de calcul. L’idée est d’exploiter la puissance des processeurs oisifs des utilisateurs. Chaque utilisateur télécharge un fragment de code client faisant partie du projet en question sous-forme d’économiseur d’écran. Ce code s’exécutera sur son ordinateur lorsqu’il est oisif et renverra le résultat à un serveur central.

L’application de calcul volontaire la plus médiatisée et la plus réussie est SETI@home 3 développée à l’université de  Berckley en 1999. Elle a permis de rassembler environ 4 millions d’utilisateurs sur Internet. Cette architecture est  adaptée aux applications ne nécessitant pratiquement pas de communications.

Les difficultés de développement de telles applications sont principalement liées à l’hétérogénéité des ressources des différents utilisateurs, leur volatilité, la fiabilité des résultats et la confidentialité des données envoyées aux utilisateurs.

       Calcul sur Processeurs Graphiques (GPU)

Les GPUs (Graphics Processing Units) sont des processeurs massivement parallèles qui utilisent un environnement  multi-threadé basé sur le modèle SIMD (Single Instruction Multiple Data). Ils sont traditionnellement utilisés dans les jeux 3D sur ordinateurs. La technologie GPU a évolué de simples processeurs dédiées aux graphismes à de vrais processeurs programmables équipés d’APIs, de langages et d’environnements de programmation (exp. l’environnement CUDA de NVIDIA) pour un usage plus général. Cette nouvelle technologie, communément connue sous le nom GPGPU (General Purpose GPU computing), permet d’atteindre des puissances de calcul jamais atteintes auparavant par un seul processeur. Par exemple, un GPU de la gamme Tesla de NVIDIA peut atteindre des centaines de Gflops pour les opérations en double précision et un Tflops pour les opérations en simple précision. Les machines les plus puissantes sur Top 500 intègrent souvent des GPUs.

Le grand avantage des GPGPU, en plus de leur grande puissance de calcul, réside dans leur faible coût d’acquisition et de maintenance comparé aux super-calculateurs. De plus, la généralisation de l’usage des GPGPU dans des stations de travail ordinaires et non encombrantes rend leur adaptation très répandue dans divers domaines notamment pour les applications d’imagerie médicale, les simulations physiques pour l’industrie pétrolière et les biotechnologies. Cependant, le GPGPU convient moins aux applications impliquant le traitement sur GPU de gros volumes de données.