L’essor de la simulation numérique est lié à l’ère de l’informatique. Certes, dans le passé, de grands scientifiques, tels Pythagore ou Blaise Pascal, ont simulé par la pensée et des calculs manuels certains phénomènes physiques. Mais ces simulations avaient une limite naturelle, celle de leur cerveau, et une limite temporelle : les calculs prenaient du temps. Ainsi, les premiers ordinateurs ont permis de multiplier les calculs tout en limitant leur durée. De fil en aiguille, les modèles physiques et numériques se sont précisés, permettant d’aller plus loin dans l’étude d’un phénomène ou d’un « objet ». Pour permettre cette expansion, les ordinateurs ont nécessité d’importants progrès tant en équipement informatique que logiciel.
Du processeur…
Le premier progrès concerne les
processeurs. Ceux-ci sont de deux sortes : scalaires et vectoriels.
Les processeurs scalaires exécutent des opérations élémentaires, comme l’addition de deux nombres. Les processeurs vectoriels effectuent des opérations d’ensembles de nombres, pour exemple l’addition deux à deux des nombres composant deux ensembles de 500 éléments. D’où leur intérêt pour la simulation numérique, car lors de l’exécution d’une telle opération un processeur vectoriel peut fonctionner à une vitesse proche de sa performance maximale (appelée « crête »). Ces deux types de processeurs sont complémentaires, car ils permettent de combiner des calculs de base et d’autres, plus complexes.
Pour permettre l’expansion de la simulation numérique, les ordinateurs ont nécessité d’importants progrès.
Avec deux cœurs, le processeur Montecito d’Intel héberge jusqu’à 1,7 milliard de transistors et contient une mémoire cache de 24 Mo. © Intel
Les processeurs actuels permettent de hautes performances, avec une fréquence de fonctionnement élevée et l’exécution d’opérations parallèles, appelée « parallélisme ». Toutefois, l’augmentation de la fréquence est limitée par l’évolution des technologies micro-informatiques (conformément à la loi de Moore - voir le dossier multimédia
La microélectronique). Bien qu’exécutées en parallèle, certaines instructions sont dépendantes du résultat d’autres en cours de traitement…, ce qui peut limiter le parallélisme. La mise en œuvre simultanée de plusieurs processeurs accompagnée d’une programmation adéquate permet de pallier cette difficulté. À la charge du programmeur, donc, de morceler le programme en différentes parties indépendantes qui seront ensuite en communication sous forme d’algorithmes. La contrainte de cette technique est d’équilibrer les charges entre processeurs et de limiter le coût et la durée des communications. Par ailleurs, l’augmentation de la puissance des ordinateurs a permis d’augmenter la finesse de discrétisation, passant ainsi de quelques dizaines de mailles dans les années 1960 à plusieurs dizaines de milliers de mailles dans les années 1980, à des millions dans les années 1990 et… à des milliards aujourd’hui.
…Au supercalculateur
Les ordinateurs de bureautique peuvent parfois suffire pour modéliser un phénomène simple ou élaborer une hypothèse.
Sa modélisation et sa simulation peuvent ensuite nécessiter une plus grande mémoire (comme dans les clusters de SMP –systèmes à mémoire partagée) pour affiner la programmation. Le recours à des supercalculateurs n’intervient qu’une fois le modèle établi et la programmation terminée. Non seulement les supercalculateurs préparent les calculs, en analysent les résultats, mais ils permettent à l’utilisateur d’accéder à des grandes puissances de calcul, à une visualisation partagée des résultats et à une capacité de stockage inégalée. L’ensemble de ces équipements est relié par des réseaux informatiques,
augmentant les informations et les débits compatibles avec les données produites de l’ordre d’un
téraoctet de données pour une seule simulation. Les supercalculateurs atteignent aujourd’hui des puissances qui se chiffrent en
pétaflops (un million de milliards d'opérations par seconde).
Architectures parallèles
Trois architectures permettent de mettre des processeurs en parallèle :
- les architectures vectorielles ;
- les grappes de processeurs scalaires à mémoire partagée. Ce système utilise comme principe des mini-ordinateurs – appelés « nœuds » – comportant plusieurs microprocesseurs qui partagent une mémoire commune. Ces mini-ordinateurs sont multiples et reliés entre eux par un réseau d’interconnexions hautes performances ;
- les grappes de PC. Elles sont peu adaptées à des environnements où de nombreux utilisateurs font beaucoup de calculs dits « implicites » qui couplent les processeurs entre eux et demandent des flux d’information d’un processeur à un autre en permanence. En revanche, des calculs lourds peuvent être faits sur ces grappes de PC (génomique ou calculs paramétriques, par exemple).
Dans ces trois cas, des salles entières sont remplies d’ordinateurs qui fonctionnent soit pour le traitement en parallèle d’une seule application en utilisant toutes les ressources, soit pour de multiples applications indépendantes, parallèles ou non, qui utilisent chacune une partie des ressources. Quant au stockage des données et à l’archivage, ils nécessitent une batterie de serveurs, d’armoires informatiques et de robots de stockage, qui doublent le volume des salles dédiées.
Les grilles de calculs et de données
Un autre moyen pour augmenter la puissance de calcul est de relier entre eux des ordinateurs répartis sur plusieurs sites. Ces équipements informatiques sont hétérogènes, de puissance inégale, avec des capacités de stockage variables. Il existe deux sortes de « grilles » :
- Les grilles de calculs, représentées par la mise en commun d’un ensemble de supercalculateurs ou un très grand nombre d’ordinateurs délocalisés, reliés par un réseau (Internet par exemple). L’objectif de cette architecture est de mieux utiliser les ressources en répartissant les calculs sur un très grand nombre d’ordinateurs, pour un ensemble d’applications indépendantes. La performance est optimale lorsque l’on attribue à chaque ordinateur un programme spécifique.
- Les grilles de données pour la mise en commun des capacités de stockage, c’est-à-dire la répartition des données sur un très grand nombre de serveurs.
Bien entendu, les transferts de données et les calculs doivent s’effectuer dans un univers sécurisé, ce qui semble acquis grâce aux protocoles en place sur Internet, mode de communication qui reste, pour l’instant, le plus performant.
Les deux grilles vont donc de pair, car il faut, dans un temps rapide, pouvoir accéder aux données et également exécuter des programmes plus ou moins complexes à partir de celles-ci avant d’en effectuer l’analyse.
Plus les calculs des grandeurs seront détaillés, plus la puissance de calcul nécessaire sera grande.
Le couplage de grilles des composantes océanique et atmosphérique permet de représenter les phénomènes tropicaux et d’étudier les différents types de surface (glaces, terre, mer). © CEA
Les logiciels
Afin d’optimiser les performances des supercalculateurs ou des grilles informatiques et permettre de modéliser et simuler correctement un phénomène, les logiciels de simulation doivent être spécifiques de l’architecture de l’ordinateur. Il faut donc dès le départ prendre en compte les paramètres suivants :
Dans un premier temps, le « modèle » est enregistré et un découpage des calculs est effectué, puis programmé en fonction des grandeurs à étudier indiquées par les chercheurs (physiciens, mathématiciens, biologistes, chimistes…). L’informaticien se charge ensuite de les traduire en valeurs informatiques exploitables par les processeurs. Plus le calcul de ces grandeurs sera détaillé, plus précis sera le résultat, mais aussi plus la puissance de calcul nécessaire sera grande. Toutefois, la tendance est de favoriser le transfert technologique et de développer des logiciels qui permettent d’étudier des phénomènes physiques proches, transposables d’une thématique à une autre moyennant l’enregistrement d’un modèle et de paramètres adaptés. Ces logiciels sont ensuite mis à la disposition des chercheurs et des industriels.