Comme nous l’avons vu dans les sections précédentes, il est possible de réaliser
les simulations de gaz sur réseau avec des performances relativement élevées sur
des ordinateurs conventionnels. Nous n’avons personnellement utilisé que des ma
chines de la classe mini-ordinateurs qui atteignent des vitesses de l’ordre de 1 Mus
(1 million de nœuds mis à jour par seconde), mais d’autres équipes ont pu obtenir
jusqu’à 500 Mus sur un Cray-XMP quadriprocesseur et 800 Mus sur une Connection
Machine CM-2 (à 65536 processeurs) pour le modèle FHP le plus simple. Une opti
misation soignée de ses programmes a permis à Jean-Pierre Rivet d’obtenir jusqu’à
30 Mus sur un Cray-2 pour le modèle FCHC à 24 bits (qui ne peut utiliser que la
représentation par nœud) [Rivet 1988]. Ceci montre que les algorithmes de gaz sur
réseau s’adaptent particulièrement bien aux architectures parallèles ou vectorielles
des super-ordinateurs actuels. Les règles d’évolution sont parfaitement parallélisables
puisque tous les nœuds évoluent de manière exactement similaire : l’étape de colli
sion est purement locale et peut être effectuée indépendamment sur tous les nœuds
tandis que l’étape de propagation ne nécessite que des couplages locaux vers les pre
miers voisins. Tous les chercheurs n’ont cependant pas accès à une machine parallèle
comme un Cray multiprocesseur (et encore moins à une Connection Machine). La
nature parallèle des algorithmes et la simplicité des opérations d’évolution en chaque
nœud (quelques opérations logiques élémentaires) suggèrent très logiquement la pos
sibilité de réaliser un calculateur parallèle spécialisé pour les simulations de gaz sur
réseau. Une telle machine devrait être plus rapide qu’un ordinateur classique en
utihsant un grand nombre de processeurs (si possible, un processeur par nœud du
réseau) et devrait avoir un coup bien moindre étant donné la simplicité de chaque
processeur. Elle permettrait également une architecture évolutive, puisque de plus
7. Les machines spécialisées 121
grands réseaux pourraient être traités simplement en adaptant le nombre de pro
cesseurs à la taille du problème* *. La réalisation d’une machine parallèle, dont la
vitesse de calcul pourrait être indépendante de la taille des problèmes, constitue une
des perspectives les plus intéressantes offertes par les gaz sur réseau. Elle n’a pas
encore pu être menée à bien complètement, mais des progrès remarquables ont été
réalisés dans cette direction, et ce en un temps très court puisque les automates de
gaz sur réseau n’ont vu le jour qu’en 1972 et que la première machine spécialisée n’a
été rendue opérationnelle qu’en 1984.
Une machine complètement parallèle pouvant traiter des réseaux de taille physi
quement intéressante est actuellement irréalisable pour des raisons techniques au
tant qu’économiques. En effet, les calculs d’évolution du modèle FHP nécessitent
typiquement une centaine d’opérations logiques par nœud, soit environ trois cent
transistors en technologie TTL tandis que la mémorisation de l’état d’un lien ne de
mande qu’un seul transistor (en utilisant la technologie des mémoires dynamiques) ;
la plus grosse part du silicium des circuits serait donc utilisée pour le calcul plutôt
que pour le stockage. De plus, des modules parallèles auraient besoin d’un nombre
impressionnant (« {bm — D)L^~^) de connexions câblées entre eux si l’ensemble du
réseau occupe plus d’un module. Enfin, une structure de calcul réalisée au niveau
des masques des circuits serait nécessairement figée alors que les modèles sont tou
jours en plein développement. Toutes les machines réalisées jusqu’à présent utilisent
donc une architecture sérielle*, ce qui signifie que des éléments de retard ou des
mémoires temporaires doivent être introduits dans les circuits pour simuler une
évolution strictement parallèle. D faut en effet éviter d’utiliser dans un même pas
de temps à la fois l’ancienne et la nouvelle valeur d’un nœud, ce qui signifie que le
nouvel état d’un nœud ne peut être réécrit en mémoire que lorsque son.ancien état a
été utilisé par tous ses voisins. En contrepartie, nous pouvons utiliser comme unité
de calcul une simple table mémoire. Si la table est mise en mémoire vive (RAM en
anglais) au début de la simulation, les règles d’évolution peuvent être modifiées à
tout moment en réécrivant la table. Evidemment, l’utilisation d’une table présente
tous les avantages et les inconvénients qui ont été décrits dans la section 2.a, mais la
croissance exponentielle de la taille des tables avec le nombre de variables par nœud
est ici un point crucial car les RAMs rapides sont actuellement limitées à des taille
de l’ordre de 64 Kilobits. Nous sommes donc limités à des modèles où moins de 16
variables interviennent dans les règles d’évolution (noter qu’une parité de temps,
la présence d’un obstacle, un bit aléatoire, ..., doivent être considérés comme des
variables d’évolution, ce qui montre que l’on peut être rapidement limité par la taille
des tables). Le balayage séquentiel du réseau au cours du calcul présente l’avantage
que l’état de chaxjue nœud passe par l’unité d’évaluation à chaque pas de temps, ce
qui permet en principe un transfert continu des informations vers l’extérieur pour
*11 faut noter que la possibilité de réaliser des machines parallèles s’est déjà présentée dans d’autres domaines de la physique statistique, par exemple les réseaux de neurones ou le modèle d’ising, avec des arguments identiques.
*Ou semi-sérielle en utilisant plusieurs processeurs en parallèle qui traitent chacun une partie du réseau de manière sérielle.
traitement ou affichage. Pour obtenir une visualisation continue de l’état du réseau
sans devoir passer par un ordinateur hôte, le plus simple est de synchroniser les cal
culs avec le rafraîchissement d’un écran vidéo, l’état de chaque nœud définissant la
couleur instantanée d’un pixel (point) de l’écran, si possible au travers d’une autre
mémoire RAM modifiable, ce qui permet de changer à tout moment la relation entre
l’état d’un nœud et la couleur visualisée. Les systèmes de télévision standard trans
mettent une image en la divisant en lignes horizontales (312 lignes en Europe, 262
aux Etats-Unis) qui sont transmises successivement à raison de 64/xs par ligne pour
former une image complète en 1/50® s (1/60® s aux Etats-Unis)^. Des impulsions de
synchronisation de durées différentes permettent au moniteur de détecter le début
de chaque ligne et le début de chaque image. Le nombre maximum de nœuds est
donc limité verticalement à 256 (il est préférable de choisir des puissances de deux
pour simplifier les circuits internes qui travaillent en binaire) et des considérations de
bande passante limitent la résolution horizontale à 512 points (800 serait un grand
maximum), ce qui donne un temps de calcul maximum par pixel de 70 ns qui est
dans les possibilités de la technologie actuelle. Nous en arrivons ainsi au schéma bloc
de la figure 28. Presque tous les éléments d’une machine d’automates cellulaires sont
constitués de mémoires RAM qui peuvent être préchargées au début de la simula
tion par un ordinateur hôte. Les mesures macroscopiques doivent également être
effectuées par le processeur hôte qui doit donc à tout moment pouvoir interrompre
la simulation et relire l’état du réseau. Les circuits de délai sont en général constitué
d’une RAM auxiliaire ou de registres à décalage et les contrôleurs vidéo sont actuelle
ment des composants standards. Ceci pour expliquer qu’une machine d’automates
cellulaires peut être construite avec des moyens réduits et pour un prix relative
ment faible par rapport aux performances possibles (il faut cependant compter un
produit temps-homme-compétence a.ssez élevé pour développer et mettre au point
le(s) premier(s) prototype(s), ce qui explique qu’il n’existe actuellement que peu de
réalisations de ces machines).
La machine CAM (Cellular Automata Machine) construite aux Etats-Unis par
l’équipe de Tom Toffoli au M.I.T. a été la première réalisation d’une machine câblée
simulant des automates cellulaires basée sur l’architecture qui vient d’être décrite
[Toffoli 1984 B]. CAM a été réalisée pour simuler des règles d’automates cellulaires
basées sur la notion de voisinage : l’état futur d’un nœud est une fonction de son
état présent et de l’état actuel des nœuds voisins, le voisinage étant typiquement
l’ensemble des premiers voisins sur un réseau carré (voisinage de von Neumann) ou
les premiers et seconds voisins sur réseau carré (voisinage de Moore). L’archétype
de ces règles d’évolution est le Jeu de la Vie inventé par Conway. La version la plus
récente, CAM-6, est capable de simuler un réseau de 256 nœuds avec 4 bits/nœud
à une vitesse égale à la cadence vidéo américaine, soit 60 images/seconde (ou une *
*Les signaux de la télévision commerciale sont en réalité un peu plus complexes car on utilise une méthode d’entrelacement qui permet de réduire le papillotement de l’image en transmettant alternativement deux demi-images séparées verticalement d’une demi-ligne. Ceci permet d’obtenir (approximativement) une résolution verticale de 625 ou 525 lignes sans augmenter la durée d’une image ni augmenter la bande passante nécessaire à la transmission.
7. Les max:hines spécialisées
123ADORESS^
V RULE
ADORESS
^ TABLE
°OUT AOORESS
1UL
I/o PORT
"OUT
LAHICE
MEMORY
AOORESS
Figure 28: Schéma bloc d’une machine d’automates cellulaire typique. Tous les
signaux de synchronisation sont obtenus à partir d’un contrôleur vidéo dont les
sorties d’adressage balaient continuellement la mémoire de réseau. L’état de
chaque nœud est utihsé comme adresse dans une table d’évolution donnant le
nouvel état du nœud et des circuits de retard empêchent la modification d’un
nœud avant que son état ait été utilisé par tous ses voisins. L’état du nœud est
également transmis vers l’écran au travers d’une table de couleurs qui permet de
n’afBcher que les états intéressants dans la couleur désirée. Les règles d’évolution,
la table des couleurs et l’état initial du réseau sont chargés par un ordinateur hôte
au début de la simulation en utilisant un port d’entrée-sortie.
vitesse de w 4 Mus). Des restrictions assez sévères sont cependant imposées sur le
choix des bits du voisinage qui sont “visibles” puisque le voisinage de Moore contient
4
X9 = 36 bits et que la table de calcul de CAM n’a que 12 entrées. Quatre bits
par nœud sont insuffisants pour la plupart des modèles de gaz sur réseau et, de
plus, CAM utilise une fonction d’évolution qui est statique en ce sens qu’elle ne
contient pas d’opérateur de propagation. Pour obtenir un effet de propagation, il est
nécessaire d’utiliser un découpage du réseau et des règles d’évolution particulières
appelées “voisinage de Margolus” qui ont l’inconvénient de réduire la résolution
d’un facteur deux dans les deux directions de l’espace (donc le nombre de nœuds
d’un facteur quatre). La taille du réseau de CAM n’est donc pas suffisante pour
réaliser des simulations hydrodynamiques intéressantes car les valeurs possibles du
nombre de Reynolds sont trop faibles ; néanmoins, CAM permet d’observer et de
mesurer des propriétés d’équilibre pour les modèles HPP (et FHP en transformant
astucieusement le réseau) [Margolus et al. 1986, Toffoli 1987]. L’équipe de T. Toffoli
prévoit de réaliser une version CAM-8 bien plus performante que CAM-6, mais cette
nouvelle machine n’a pas encore dépassé le stade de projet.
Une réalisation plus récente est le “Réseau d’Automates Programmables” dont
la version RAP-1 a été développée en 1987 par A. Clouqueur et D. d’Humières
à l’E.N.S. à Paris [Clouqueur et d’Humières 1987]. L’architecture de RAP a été
optimisée en vue des simulations de gaz sur réseau et est donc légèrement différente
de la figure 28. La mémoire de RAP-1 peut être vue comme une superposition de
b plans de bits, chaque plan contenant LxL' nœuds. Comme pour les gaz sur réseau,
l’évolution est divisée entre une étape de collision et une étape de propagation.
Pendant l’étape de collision, les nœuds du réseau sont visités successivement et les
b bits d’une même position sont utilisés pour indexer une table et calculer le nouvel
état du nœud. Pour réaliser la propagation, chacun des plans de bits est déplacé
en bloc dans la direction c,. RAP ne contient donc aucune relation de voisinage,
ce qui permet d’éliminer les mémoires temporaires nécessaires dans les machines
de type CAM, mais doit en contrepartie pouvoir déplacer indépendamment chacun
des plans de bits*. Dans le cas de RAP, les déplacements horizontaux sont réalisés
physiquement pour chaque ligne du réseau en déplaçant les bits latéralement dans un
registre à décalage ; les propagations verticales sont effectuées de manière virtuelle en
ajoutant (ou en soustrayant) à chaque adresse mémoire un déplacement dépendant
du plan pour accéder à chacune des lignes du réseau. Ce déplacement est incrémenté
modulo L' après chaque balayage complet du réseau, ce qui crée implicitement des
conditions périodiques dans cette direction. La figure 29 présente un schéma bloc
des circuits de calcul de RAP-1. La mémoire de réseau est constituée de 32 circuits
de Video-RAM dynamique qui réalisent un réseau de 512 x 256 nœuds de 16 bits.
Les Video-RAM ont la particularité de disposer d’un registre à décalage interne qui
*Ces deux procédures sont essentiellement équivalentes, mais la division en deux étapes de calcul est beaucoup plus simple à réaliser de manière générale qu’une relation de voisinage. Elle a également l’avantage de faire ressortir la propriété de localité des collisions dans les gaz sur réseau qui se produisent avec une portée d’interaction nulle. Des relations de voisinage peuvent cependant être implémentées sur une machine de type RAP en dupliquant les états sur les différents plans.
7. Les machines spécialisées 125
S12 colamns
16 16 16