next up previous contents
Next: Itérations dynamiques Up: Aspects numériques et parallélisation Previous: Quelques tests de précision   Table des matières

Parallélisation

Nous venons de présenter plusieurs schémas itératifs pour calculer l'évolution temporelle des fonctions d'onde. Dans le cas tridimensionnel, l'énormité de la tâche numérique impose une limite modeste à la taille des systèmes qui peuvent être traités par ces méthodes, et surtout requiert un temps énorme pour leur simulation sur un intervalle de temps significatif, tout comme dans les travaux similaires de physique nucléaire[58]. Pour pouvoir simuler des situations physiques raisonnables, il a donc fallu adapter ces algorithmes à des calculateurs parallèles bien plus puissants et riches en mémoire disponible que des stations de travail. Nous allons donc discuter l'implantation parallèle simple mais efficace que nous avons faite des méthodes présentées depuis le début de ce chapitre.

Parmi les moyens de calcul modernes, les ordinateurs parallèles constituent en effet un moyen d'améliorer les vitesses de résolution des équations issues des divers domaines de la science. Pour certains problèmes, l'accélération peut s'avérer tout à fait spectaculaire.

Il existe deux grandes classes d'ordinateurs parallèles, que nous allons présenter très schématiquement. Citons tout d'abord les machines << vectorielles >>, du type CRAY C98 par exemple, où, pour accélérer le calcul, les opérations identiques portant sur les éléments d'un même tableau (<< vecteur >>) sont effectuées rigoureusement simultanément, un seul processeur pouvant traiter par exemple jusqu'à 256 éléments à la fois. Ces machines ont la particularité de disposer d'une mémoire unique, où tous les éléments peuvent être requis par n'importe quel processeur élémentaire. Une telle architecture peut présenter des accélérations considérables pour certains problèmes numériques, mais leur coût très élevé et la spécificité des processeurs nécessaires font que les machines parallèles << distribuées >> semblent actuellement devoir les remplacer.

Ces machines sont constituées d'un ensemble d'unités de traitement autonomes, en grand nombre ( 1024 dans certaines réalisations), reliées par un réseau de communication particulièrement efficace. Chaque unité de traitement est très semblable à une station de travail standard, dans le cas des machines CRAY T3D/T3E par exemple des processeurs DEC Alpha du commerce ont été utilisés. Ces unités peuvent exécuter des programmes identiques ou différents, et échanger des résultats intermédiaires au cours du calcul. À la différence des machines << vectorielles >>, rien ne garantit que la même opération est exécutée au même déclic d'horloge par les différents éléments, et les unités de traitements (les << PE >>) ne disposent que d'une petite quantité de la mémoire totale, et ne peuvent pas lire celle des autres PE sans passer par le réseau de communication inter-PE.

Les avantages de cette classe de machines résident dans leur facilité relative de construction par rapport aux machines << vectorielles >>, mais, contrairement à ces dernières qui disposent de nos jours de compilateurs vectorisant automatiquement les calculs, le programmeur doit y spécifier explicitement les échanges de message entre PE et penser son programme en fonction de l'architecture du réseau de communication de la machine s'il veut bénéficier de performances intéressantes. Nous avons cependant choisi les machines parallèles à échange de message et mémoire distribuée pour y réaliser nos calculs, car nous pensons que dans un futur proche seul ce type de machine bénéficiera d'améliorations importantes. Nous pourrons alors bénéficier immédiatement de l'augmentation de puissance de calcul.

La partie la plus coûteuse de nos calculs, et celle où un gain de vitesse permet de traiter des systèmes physiques intéressants, consiste en la propagation des fonctions d'onde. Les besoins numériques y sont en effet directement proportionnels au nombre de fonctions d'onde, puisqu'il y a une équation distincte par électron dans le cas TDLSD à trois dimensions. C'est donc sur ce point que les efforts de parallélisation doivent d'abord se focaliser, le reste de la parallélisation devant se plier aux choix faits pour ce premier point.




next up previous contents
Next: Itérations dynamiques Up: Aspects numériques et parallélisation Previous: Quelques tests de précision   Table des matières
Florent Calvayrac
1999-05-05