Le laboratoire LIP6 travaille depuis de nombreuses années sur le thème de la synchronisation en phase des horloges distribuées dans les nœuds de systèmes massivement distribués. L'originalité de ces travaux réside dans l'utilisation d'une analogie mathématique entre un système discret distribué sur un réseau maillé et une fonction différentielle continue dont le système distribué serait une discrétisation. L'utilisation d'une analogie entre l'écart de phase et la surface d'un liquide (analogie HydroPhase) permet d'affirmer que, sous certaines conditions, l'ensemble des horloges sera naturellement strictement en phase.
Comme pour la surface d'un liquide, toute perturbation produit un système de vagues pour revenir à l'équilibre.
Le but de ce stage est de visualiser ces vagues et d'étudier leurs caractéristiques dans le cadre de l'analogie proposée.
Pour cela un programme de simulation d'un réseau comportant un très grand nombre de nœuds sera écrit et exécuté sur un super-ordinateur accessible aux universitaires (via l'IDRIS).
Le programme sera écrit en C++ incorporant les primitives de synchronisation par message propres aux super-ordinateurs (Langage MPI). Il sera constitué par la description d'un nœud qui sera dupliqué sur les milliers de processeurs de la machine. Chaque processeur conserve l'historique de ses écarts de phase qui seront collectées et assemblées à la fin de l'essai, pour être affichées sur une machine standard (PC), par un programme d'affichage standard (Matlab ou autre).
- La première phase du stage sera consacrée à l'écriture du module de simulation d'un nœud à partir de ses descriptions en Matlab et en VHDL Ce module sera testé sur un PC muni d'un Scientific Linux.
- La seconde phase consistera à munir ce module de mécanismes de communication avec ses voisins. Pour cela, on représentera dans chaque nœud un petit historique de l'évolution de l'écart de phase de chaque voisin ainsi qu'un mécanisme de choix des valeurs à utiliser en tenant compte de ces écarts de phase. L'essai d'un petit assemblage de quelques nœuds sera étudié sur un PC.
- La troisième phase consistera à adapter le programme aux caractéristiques du super-ordinateur utilisé (langage MPI de synchronisation et de communication) et de l'essayer en configuration réduite, pour en extraire des mini-vidéos via un post-traitement en Matlab sur PC
- La quatrième phase consistera à simuler des configurations de plus en plus grandes (jusqu'à 720 x 720 ?) en disposant la simulation de plusieurs nœuds en série dans chaque processeur. Une extraction de vidéos HD (via le post-traitement Matlab) permettra d'étudier le comportement du système de vagues d'erreurs de phase.
Références:
[A14] François Anceau. Distribution d'horloges à grande échelle sur une puce. www.college-de-france.fr/site/gerard-berry/seminar-2014-03-12-17h00.htm, 2014.
[SAGZ14] Chuan Shan, François Anceau, Dimitri Galayko, Eldar Zianbetov. "Swimming pool"-like distributed architecture for clock generation in large many-core SoC. ISCAS, 2768-2771, 2014.
[SGAZ14] Chuan Shan, Dimitri Galayko, François Anceau, Eldar Zianbetov. A reconfigurable distributed architecture for clock generation in large many-core SoC. ReCoSoC, 1-8, 2014.