Implementation of a particle merging process in the PIC code Smilei

Maison de la Simulation has participated to the implementation of a particle merging process in the Particle-in-Cell (PIC) code Smilei. Smilei is an open-source and highly parallel code dedicated to laser-plasma simulation. It is developed by several labs (LLR, LULI) in France. It is nonetheless used in many other countries in Europe and in the World.

In PIC codes, dealing with macro-particles represents the major part of the code and is therefore the most time-consuming part in running simulations.  Basically, more particles means slower computation although the correlation is not linear with vectorization. Consequently, most optimization strategies today focus on managing particles the most efficient as possible. Some simulation scenario induce particle growth such as laser interaction with ionization, magnetic shower or electron-positron pair cascading. These simulation cases reveal very difficult to simulate with long simulation times. In extreme cases, when the growth is exponential, the only possible solution is merging particles. This enables to maintain the number of particles at a reasonable level to achieve the simulation.

Description of the particle merging process of M. Vranic.

The method of M. Vranic et al. has been implemented with different optimization choices in all dimensions. It is schematically described in the figure above. Furthermore, an advanced documentation of the adapted algorithms is available on the official Smilei website. Nonetheless, this first implementation is still considered as a beta and constitutes the first step toward the comparison of different future methods. Moreover, it can induce numerical artifacts in the momentum distributions. The method should hence be used with caution.

The following video illustrates the use of the merging. This is the simulation of the collision of 2 counter-propagating extremely intense laser plane wave that induce a pair cascading phenomenon at the middle of the simulation from a seed.

InKS, un modèle de programmation pour la séparation de l’algorithme et des optimisations dans les codes HPC

Dans le cadre de sa thèse à la Maison de la Simulation sous la direction de M. Mehrenberger et M. Bastoul et sous l'encadrement de Julien Bigot (Maison de la Simulation) et Olivier Aumage (INRIA), Ksander EJJAAOUANI a développé un nouveau modèle de programmation du nom de InKS.

Le modèle de programmation InKS vise à améliorer la lisibilité, la portabilité et la maintenabilité des codes de simulation tout en accroissant la productivité des développeurs de telles applications. Pour atteindre ces objectifs, InKS propose deux langages, chacun dédié à une partie de l’application. Le premier, InKSPIA, permet d’exprimer les aspects algorithmiques d’un code de simulation scientifique tout en laissant les choix d’optimisation de côté. Il s’agit de décrire les fondations de la simulation : son algorithme. Le second langage, InKSPSO, permet aux spécialistes de l’optimisation de réutiliser les informations contenues dans l’algorithme pour exprimer une large variété de choix d’optimisation.  Le modèle permet d’écrire de nombreuses versions des optimisations, typiquement une par architecture, à partir d’un unique algorithme. En basant les différentes versions d’un programme sur sa partie invariante, l’algorithme, le modèle InKS limite la réécriture du code, boostant la productivité des développeurs. Son fonctionnement est simplifié dans le schéma ci-dessous.

Présentation du modèle de programmation InKS

Suite à la proposition du modèle InKS et de son implémentation, nous avons évalué le modèle au travers de l'implémentation de simulations de plasma: le système Vlasov-Poisson 6D. Cette évaluation a permis de mettre en évidence certaines bonnes propriétés du modèle, notamment en matière de séparation des aspects, mais aussi à montrer sa généralité et ses performances. Pour ce faire, nous avons comparé l'efficacité de deux implémentations du système Vlasov-Poisson 6D, écrite sur InKS ou Fortran. Pour les optimisations les plus importantes, le nombre de lignes dans les deux cas est similaire. Cependant, la présence de l'algorithme permet d'ordonnancer automatiquement, en une simple ligne, un large ensemble de calcul, verbeux et potentiellement sujet aux erreurs. Ainsi, dans les parties non critiques du code, InKSPSO peut résumer une partie du programme de manière concise, permettant de se concentrer sur les parties de calcul intensif. Par ailleurs, en limitant la réécriture du code aux seules optimisations, InKS permet de tester plusieurs stratégies d'optimisations afin d'identifier la plus adaptée à une architecture donnée. En comparaison, dans ces situations, les applications traditionnelles requièrent la réécriture d'une plus grande partie du code, limitant le temps consacré à la recherche des meilleures stratégies d'optimisation.

Les résultats obtenus avec InKS ont fait l'objet de plusieurs publications:

Le projet est par ailleurs hébergé librement sur GitHub.

Ksander EJJAAOUANI présentera ses travaux de thèses le 25 octobre prochain et notamment ses développements au sein de InkS.

Présentation des applications BrainTwister et TiledViz sur le mur d’images

Objectifs scientifiques et technologiques visés par cette plateforme

Avec l'augmentation exponentielle de la puissance des calculateurs HPC, il est à présent raisonnable de lancer de nombreux scénarios de simulation simultanément pour analyser des variations paramétriques sur de gros modèles, comme les modèles climatiques globaux. L'analyse de ces modèles se fait la plupart du temps grâce à des réductions selon un certain nombres de dimensions, mais l'analyse 2D ou 3D ne peut se faire sans visualiser les résultats sur une trentaine (voir une centaine) de simulations, ce qui nécessite souvent de les imprimer.

Nous avons commencé à construire une application web qui permet de récupérer des ensembles de résultats de simulations sur un serveur de post-traitement et de les afficher suivant un ordre déterminé préalablement en analysant les métadonnées associées aux images. Cette application permet de trier les images pour les regrouper, de faire du tri sélectif en fonction des variables extraites lors de la phase de pré-traitement et d'annoter les vignettes. Des fonctions de zoom sélectif et de permutation de lignes ou de colonnes ajoutent de l'interactivité avec l'ensemble affiché. Enfin le tri final peut être sauvegardé et repris.

Nous souhaitons tirer parti de notre plateforme de visualisation à haute résolution Mandelbrot pour afficher un nombre beaucoup plus important de données et interagir de manière collaborative avec ces données. Pour cela, nous devons poursuivre le développement de cette application et l’intégrer au middleware WildOS développé par Michel Beaudouin-Lafon au LRI. L’application sera conçue en partenariat avec trois équipes de trois disciplines différentes, mais intéresse potentiellement de nombreux champs disciplinaires.

BrainTwister sur le mur d'image Mandelbrot

BrainTwister sur le mur d'images Mandelbrot

BrainTwister sur le mur d'images Mandelbrot

La morphologie des plissements du cortex cérébral est propre à chaque être humain, à l’instar des empreintes digitales. Ses motifs apparaissent in utero au moment où se met en place l’architecture du cortex. Une accumulation d’observations concernant des pathologies génétiques ou des épilepsies développementales ont montré des anomalies massives de ces motifs. Pour mettre en évidence des anomalies plus subtiles associées aux grands syndromes psychiatriques, il est nécessaire de modéliser la variabilité normale de ces motifs dans la population générale. Depuis 25 ans, c’est un des programmes de recherche du laboratoire d’analyse d’images de Neurospin. Ce programme est en passe de faire émerger un dictionnaire de tous les motifs observés fréquemment dans la population générale à partir de plusieurs dizaines de milliers de cerveaux. Une fois ce dictionnaire établi, il permettra une définition opérationnelle de l’anormalité des motifs pouvant être associée à une augmentation du risque des pathologies développementales et contribuant à leur diagnostic précoce.

Ce programme de recherche achoppe depuis de nombreuses années sur la difficulté de visualiser simultanément un grand nombre de cerveaux. Elle conduit à une sous-optimalité des bases d’apprentissage constituées par les experts humains en charge de nourrir les outils d’apprentissage par ordinateur au cœur de ce programme de recherche. C’est dans ce contexte qu’une étude de faisabilité a été réalisée ces dernières années en collaboration entre Neurospin et le LRI de DIGITEO Moulon, dans le cadre de l’equipex DIGISCOPE. Le prototype BrainTwister développé nous a convaincu que la technologie des murs d’écrans était le passage obligé de notre programme de recherche. Nous cherchons donc aujourd’hui à convertir ce prototype en une plateforme opérationnelle utilisée massivement pour la recherche de Neurospin et à terme par la plateforme nationale CATI en charge de valoriser les outils de Neurospin sur les grandes cohortes dédiées à la recherche clinique. Ce besoin s’est naturellement tourné vers la Maison de la Simulation dont la vocation est de mettre en production ce type d’outil. Il est rapidement apparu une généricité évidente avec d’autres cas d’utilisation du mur d’écran dans le cadre des recherches sur le climat et l’astrophysique.

  • Utilisation de TiledViz sur Mandelbrot
  • Séance de travail avec BrainTwister devant Wilder (Jean-François Mangin).
  • Utilisation de TiledViz sur Mandelbrot

La plateforme BrainVisa est développée au laboratoire UNATI . Elle contient tous les outils d'analyse issus de la recherche du laboratoire, et en particulier les outils d'analyse de la morphologie des plissements corticaux. Elle contient également Anatomist, un logiciel de visualisation dédié aux données d'imagerie cérébrale. Anatomist permet d'afficher en 3D interactive différentes représentations des données IRM, maillages cérébraux, et sillons corticaux. Il représente les sillons extraits par les outils d'analyse, et montre les identifications des motifs corticaux par différentes couleurs. Un module interactif permet de changer ou corriger ces identifications manuellement. C'est cet outil qui permet de mettre au point et d'enrichir les bases d'apprentissage utilisées pour entraîner les systèmes d'identification automatiques. Anatomist est un logiciel modulaire et comporte des librairies de programmation en langages C++ et Python, il permet donc de fabriquer des applications de visualisation dédiées pour des usages précis, ce qui facilite son intégration dans TiledViz ou précédemment BrainTwister.

L'application BrainTwister a été développée dans le cadre d'une collaboration entre le laboratoire UNATI de Neurospin et le LRI de DIGITEO Moulon avec une l'équipe ex-situ de INRIA. Cette application permet de visualiser des paires d'hémisphères de cerveaux et leurs sillons avec anatomist sur le mur d'image DIGISCOPE wilder du LRI. L'interaction avec le mur d'image et les données utilisait le système infrarouge de la plateforme wilder. Cette interaction permettait la sélection d'un sous-ensemble des paires pour des rotations synchronisées, mais pas le tri des éléments affichés, caractéristique essentielle à l'équipe UNATI pour réaliser ses recherches. En effet la compréhension de l'anatomie des plissements corticaux et leur variabilité est limitée par l'impossibilité de visualiser l'ensemble des cerveaux à notre disposition et de les comparer visuellement. L'utilisation du mur d'images Mandelbrot de la MDLS permettra de présenter un assez grand nombre de cerveaux, de les comparer visuellement au cours de sessions de travail impliquant plusieurs chercheurs spécialistes qui peuvent en discuter devant la visualisation. Des regroupements de cerveaux ayant des conformations localement similaires pourront être faits et nous espérons que cela rendra possible l'identification de catégories fines de motifs chez des sous-populations. Ce travail d'abord manuel (ou visuel) sera à terme facilité par des outils de clustering automatique, qu'il faudra également valider visuellement. Pour ce travail, le tri des cerveaux et leur visualisation côte à côte, ainsi que la rotation synchronisée, sont essentiels.

Dans sa conception BrainTwister est une application de la plateforme node-webkit appelée WildOS, qui est développée par l'équipe de Michel Beaudouin-Lafon du LRI. Cette application lance une instance de Anatomist sur chaque serveur du cluster permettant l'affichage à très haute résolution sur le mur d'image de l'Université Paris-Sud Wilder qui affiche un total de cent million de pixels. Pour chacune de ses instances, on affiche plusieurs paires d'hémisphères selon la résolution totale des écrans connectés à la machine.

Cette implémentation permet de réduire les connections client/serveur pour manipuler les visualisations 3D à l'intérieur des instances Anatomist. Mais elle ne permet pas de déplacer une paire pour la comparer avec une ou plusieurs autres situés à distance du mur d'images (qui fait 6 mètres de large pour Wilder et 4,3 m pour Mandelbrot et ses 33 million de pixels).

TiledViz

Après avoir installé la plateforme WildOS et son application BrainTwister (qui n'est plus maintenue au LRI), sur la plateforme Mandelbrot de la Maison de la Simulation, située à DIGITEO Saclay, nous avons choisi de développer une application indépendante de WildOS qui serait générique pour différent ensemble de simulations ou d'expérimentations, permettrait les mêmes interactions que dans BrainTwister, mais qui lèverait ce verrou pour le tri des sorties sur notre mur d'image. Cette application TiledViz en développement existe maintenant et un démonstrateur embarque Anatomist et affiche les résultats interactifs sur le mur d'image Mandelbrot.

Il faut noter que notre mur n'est pas doté de la technologie ART (caméras infrarouge permettant le positionnement d'un utilisateur équipé de réfléchisseurs), ni multi-touch, comme le mur Wilder, mais que nous allons le doter d'une table interactive, en plus de tablettes et du PC de contrôle déjà présents. La conception de la salle Mandelbrot (voir http://www.maisondelasimulation.fr/Visualisation.php) est orientée vers le travail collaboratif dans un espace de vingt mètre carré devant le mur d'image. De notre point de vue, le côté immersif de certaines plateformes de visualisation impose un apprentissage important aux utilisateurs et leur équipements pour interagir avec le mur.

Nous utilisons régulièrement les serveurs VNC à la Maison de la Simulation pour interagir avec le mur d'image sur le réseau interne du cluster Mandelbrot. Nous utilisons aussi cette technologie via le réseau wifi du CEA à l'aide de tunnel ssh pour avoir des retours cryptés basse résolution du mur d'image sur notre tablette via le serveur de clé forticlient.

Pour résoudre le problème sérieux qui se posait à l'adaptation de cette application à la visualisation de sorties graphiques de multiple instances d'un outil comme anatomist sur le mur d'image, avec le déplacement de ces sorties d'un nœud de rendu à l'autre, nous avons choisi la technologie des conteneurs Docker exportant des flux VNC au travers de tunnels sécurisés.

Les conteneurs sont des machines virtuelles Linux légères qui ont un système différent de la machine hôte, mais partagent le noyau et donc les périphériques de ce dernier. Cela donne des avantages immédiats : très peu de perte d'efficacité dans le cadre du rendu 3D de grosses données à afficher, la duplication des conteneurs sur une même machine est partagée en mémoire, les communications sont encapsulées et donc sécurisées à l'intérieur de chaque conteneur et les ports de communication externes sont contrôlés. Ensuite les entrées sorties sur des répertoires définis (emplacement des bases de données) sont contrôlées car elles peuvent être montées en lecture seule dans le conteneur. Enfin cette solution est suffisamment générique pour être adaptée à de nombreuses autres situations et déportées sur des machines de calcul distantes, si les ingénieurs système ont activé la virtualisation.

Nous avons réalisé à la Maison de la Simulation une première maquette de visualisation tuilée de résultat de sortie du climat, en collaboration avec une équipe du LSCE et CLIMAF entre l'IPSL et Météo France pour l'affichage d'image fixe, mais avec l'utilisation de métadata pour le tri interactif de ces images. Cette application web est dédiée à des navigateurs de bureau et orientée pour être rajoutée en option pour des services web de postraitement de base de données climatologiques.

Cette application développée avec un stagiaire de l'école des Mines Saint Etiennes est un succès et plusieurs séances de travail ont eu lieu devant le mur Mandelbrot en utilisant la plateforme WildOS comme un navigateur à très haute résolution sur le mur d'image.

Cette implémentation de TiledViz avec des conteneurs nous permet de lancer une série de conteneurs (jusqu'à une centaine) sur un très gros serveur à mémoire partagée de notre cluster Mandelbrot et d'en visualiser les sorties via des flux VNC sur les clients de WildOS en pleine résolution de notre mur d'image. Voici une photo d'une première application de trie de série tuilée - appelée TiledViz - de sorties d'une application Anatomist sur une base de données de cerveaux de Neurospin.

Le lancement de l'application cliente n'est pas automatisé. De plus elle ne supporte pour l'instant pas le passage à l'échelle car les conteneurs sont tous placés sur un même nœud (ce qui est tout de même optimisé par la technologie Docker). Il faut donc les déporter sur des ressources dédiées. De plus les flux arrivent sur tous les clients. On doit donc mettre en place un mécanisme de clients-serveur facilement adaptable pour gérer les flux et déclencher le lancement de conteneurs distants selon les déplacements des éléments dans les clients.

Modèle d’enveloppe dans le code Smilei

Le code Particle-In-Cell opensource et collaboratif Smilei s'est récemment vu enrichir d'un nouveau modèle physique appelé modèle d'enveloppe. Francesco Massimo et Arnaud Beck (LLR) ont développé ce nouveau modèle sur la base de la littérature existante et les équipes de la Maison de la Simulation ont participé à l'optimisation de ce module. Ce modèle approxime la propagation d'un laser et son action sur le milieu ambiant afin de gagner en temps de calcul. Il permet de faire des simulations 3D pour un coût légèrement supérieur à celui du 2D. Ce modèle peut être utilisé dans une géométrie 3D cartésienne aussi bien que dans une géométrie cylindrique. Il se prête bien à la simulation de l'accélération d’électrons en onde  de sillage par exemple. C'est ici la raison de son développement.

Ce modèle d'enveloppe a été utilisé pendant le grand challenge sur le calculateur Irene Joliot-Curie. Il permettra notamment de simuler des expériences sur le laser multi-petawatt Apollon du plateau de Saclay. Il a fait l'objet d'une publication dans le journal Plasma Physics and Controlled Fusion en 2019 par F. Massimo et son équipe que vous pouvez retrouver sur ce lien.

Lien vers l'article publié dans le journal Plasma Physics and Controlled Fusion en 2019 par F. Massimo et al.
Lien vers l'article publié dans les proceedings de la 13ème conférence Computational Accelerator Physics en 2019 par F. Massimo et al.