{"id":1230,"date":"2026-08-21T14:28:40","date_gmt":"2026-08-21T14:28:40","guid":{"rendered":"https:\/\/matforge.org\/?p=1230","raw":"https:\/\/matforge.org\/?p=1230"},"modified":"2026-08-21T14:28:40","modified_gmt":"2026-08-21T14:28:40","slug":"in-situ-visualization-integration-computation","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/","title":{"rendered":"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul","raw":"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 13<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><h2>tl;dr<\/h2>\n<p>La visualisation in situ traite et analyse les donn\u00e9es de simulation <strong>pendant que la simulation s&rsquo;ex\u00e9cute<\/strong>, directement en m\u00e9moire, au lieu d&rsquo;\u00e9crire des r\u00e9sultats bruts sur le disque pour un post-traitement ult\u00e9rieur. Cette approche est essentielle pour le calcul exascale o\u00f9 la bande passante d&rsquo;E\/S ne peut pas suivre la g\u00e9n\u00e9ration de donn\u00e9es. En int\u00e9grant la visualisation pendant le calcul, vous pouvez :<\/p>\n<ul>\n<li>\u00c9vitez les goulots d&rsquo;\u00e9tranglement d&rsquo;E\/S qui paralysent les flux de travail traditionnels<\/li>\n<li>Surveiller les simulations en temps r\u00e9el et diriger les param\u00e8tres \u00e0 la vol\u00e9e<\/li>\n<li>R\u00e9duire les besoins de stockage par ordre de grandeur<\/li>\n<li>Capturez des ph\u00e9nom\u00e8nes transitoires qui seraient manqu\u00e9s avec des instantan\u00e9s peu fr\u00e9quents<\/li>\n<\/ul>\n<p>Le compromis est une complexit\u00e9 suppl\u00e9mentaire et une contention des ressources. Vous devez d\u00e9cider quoi visualiser avant l&rsquo;ex\u00e9cution, et la visualisation est en concurrence avec la simulation pour les cycles CPU\/GPU.<\/p>\n<h2>Introduction : Pourquoi la visualisation in situ est importante<\/h2>\n<p>Les simulations scientifiques g\u00e9n\u00e8rent de grandes quantit\u00e9s de donn\u00e9es. Une seule ex\u00e9cution Exascale peut produire des p\u00e9taoctets de sortie, mais l&rsquo;\u00e9criture de ces donn\u00e9es sur le disque devient un goulot d&rsquo;\u00e9tranglement fondamental&nbsp;: les syst\u00e8mes de stockage ne peuvent pas suivre le rythme du d\u00e9bit de calcul. Le r\u00e9sultat est un \u00e9cart croissant entre la rapidit\u00e9 avec laquelle les simulations peuvent produire des donn\u00e9es et la rapidit\u00e9 avec laquelle ces donn\u00e9es peuvent \u00eatre sauvegard\u00e9es et analys\u00e9es.<\/p>\n<p>La visualisation in situ (latin pour \u00ab\u00a0en place\u00a0\u00bb) aborde ce probl\u00e8me en effectuant des t\u00e2ches de visualisation et d&rsquo;analyse <strong>en m\u00eame temps que la simulation<\/strong>, en acc\u00e9dant aux donn\u00e9es directement de la m\u00e9moire avant d&rsquo;\u00eatre \u00e9crites sur le disque. Ce paradigme d\u00e9place le flux de travail de&nbsp;:<\/p>\n<pre><code>Simulation \u2192 Storage \u2192 Visualization\n<\/code><\/pre>\n<p>\u00e0&nbsp;:<\/p>\n<pre><code>Simulation + Visualization \u2192 Storage of images\/reduced data\n<\/code><\/pre>\n<p>\u00c0 mesure que le calcul \u00e0 haute performance (HPC) s&rsquo;\u00e9tend vers l&rsquo;\u00e9chelle exascale, les techniques in situ ne sont plus facultatives &#8211; elles deviennent une n\u00e9cessit\u00e9 pour la d\u00e9couverte scientifique. Ce guide explique comment fonctionne la visualisation in situ, la compare aux outils traditionnels de post-traitement et fournit des conseils pratiques et fournit des conseils pratiques pour l&rsquo;adopter dans vos projets de recherche.<\/p>\n<h2>Comment fonctionne la visualisation in situ : le flux de travail de base<\/h2>\n<p>La visualisation in situ exploite les m\u00eames ressources de calcul qui ex\u00e9cutent la simulation pour effectuer une analyse visuelle. Il existe deux principales strat\u00e9gies de couplage :<\/p>\n<h3>Visualisation in situ \u00e9troitement coupl\u00e9e (en ligne)<\/h3>\n<p>Le code de visualisation partage le m\u00eame espace m\u00e9moire et ex\u00e9cutable que la simulation. \u00c0 des intervalles sp\u00e9cifi\u00e9s (par exemple, \u00e0 chaque pas de temps ou lorsque certains crit\u00e8res sont remplis), la simulation interrompt, les donn\u00e9es sont transmises \u00e0 des algorithmes de visualisation et des images ou des donn\u00e9es d\u00e9riv\u00e9es sont produites.<\/p>\n<p><strong>Pros&nbsp;:<\/strong><\/p>\n<ul>\n<li>Latence la plus faible Acc\u00e8s aux donn\u00e9es de simulation<\/li>\n<li>Pas de surcharge de communication r\u00e9seau<\/li>\n<li>Mappage de donn\u00e9es le plus simple (m\u00eame disposition de m\u00e9moire)<\/li>\n<\/ul>\n<p><strong>Contre&nbsp;:<\/strong><\/p>\n<ul>\n<li>La visualisation est en concurrence directe pour les cycles CPU\/GPU, ralentissant la simulation<\/li>\n<li>Augmentation de l&#8217;empreinte m\u00e9moire par n\u0153ud<\/li>\n<li>Un plantage dans le code de visualisation peut planter toute la simulation<\/li>\n<\/ul>\n<p><strong>Exemple d&rsquo;outils&nbsp;:<\/strong>&nbsp;Paraview&nbsp;Catalyst int\u00e9gr\u00e9 directement dans le binaire de simulation.<\/p>\n<h3>Visualisation in situ (en transit) faiblement coupl\u00e9e (en transit)<\/h3>\n<p>La simulation s&rsquo;ex\u00e9cute sur un ensemble de n\u0153uds de calcul, tandis que la visualisation s&rsquo;ex\u00e9cute sur un ensemble de n\u0153uds distinct et co-allou\u00e9. Les donn\u00e9es sont transf\u00e9r\u00e9es sur le r\u00e9seau (souvent via MPI) vers les processus de visualisation.<\/p>\n<p><strong>Pros&nbsp;:<\/strong><\/p>\n<ul>\n<li>La visualisation n&rsquo;interf\u00e8re pas directement avec le calcul de la simulation<\/li>\n<li>Peut mettre \u00e0 l&rsquo;\u00e9chelle la visualisation de mani\u00e8re ind\u00e9pendante<\/li>\n<li>Meilleure isolation des pannes<\/li>\n<\/ul>\n<p><strong>Contre&nbsp;:<\/strong><\/p>\n<ul>\n<li>Frais de transfert r\u00e9seau<\/li>\n<li>N\u00e9cessite plus de ressources totales (noeuds s\u00e9par\u00e9s)<\/li>\n<li>Les donn\u00e9es peuvent \u00eatre reparties pour la visualisation<\/li>\n<\/ul>\n<p><strong>Exemple de frameworks&nbsp;:<\/strong> Damaris, qui utilise des c\u0153urs d\u00e9di\u00e9s pour l&rsquo;analyse asynchrone.<\/p>\n<h3>Approches hybrides<\/h3>\n<p>De nombreux d\u00e9ploiements dans le monde r\u00e9el utilisent une strat\u00e9gie hybride&nbsp;: \u00e9troitement coupl\u00e9e au sein d&rsquo;un n\u0153ud (en utilisant le m\u00eame CPU\/GPU) mais vaguement coupl\u00e9e entre les n\u0153uds, ou en utilisant des pipelines asynchrones o\u00f9 la visualisation s&rsquo;ex\u00e9cute avant la simulation sur les m\u00eames ressources.<\/p>\n<h2>In-situ vs post-traitement : une analyse comparative<\/h2>\n<table>\n<thead>\n<tr>\n<th>Fonctionnalit\u00e9<\/th>\n<th>Visualisation in situ<\/th>\n<th>Visualisation post-traitement<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Temps<\/strong><\/td>\n<td>En temps r\u00e9el, lors de la simulation<\/td>\n<td>Retard\u00e9 (apr\u00e8s simulation)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flux de donn\u00e9es<\/strong><\/td>\n<td>Traiter les donn\u00e9es en m\u00e9moire<\/td>\n<td>\u00c9crit les donn\u00e9es sur le disque, puis les lit<\/td>\n<\/tr>\n<tr>\n<td><strong>Frais g\u00e9n\u00e9raux d&rsquo;E\/S<\/strong><\/td>\n<td>Tr\u00e8s faible (r\u00e9duit les \u00e9critures sur disque)<\/td>\n<td>Tr\u00e8s \u00e9lev\u00e9 (goulot d&rsquo;\u00e9tranglement du disque)<\/td>\n<\/tr>\n<tr>\n<td><strong>Besoins de stockage<\/strong><\/td>\n<td>Faible (seulement les images\/r\u00e9sum\u00e9s enregistr\u00e9s)<\/td>\n<td>Extr\u00eamement \u00e9lev\u00e9 (donn\u00e9es brutes compl\u00e8tes)<\/td>\n<\/tr>\n<tr>\n<td><strong>R\u00e9solution temporelle<\/strong><\/td>\n<td>\u00c9lev\u00e9 (\u00e0 chaque pas de temps possible)<\/td>\n<td>Faible (limit\u00e9 par la capacit\u00e9 de stockage)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flexibilit\u00e9<\/strong><\/td>\n<td>Faible (d\u00e9cisions fix\u00e9es avant l&rsquo;ex\u00e9cution)<\/td>\n<td>\u00c9lev\u00e9 (peut r\u00e9analyser les donn\u00e9es enregistr\u00e9es)<\/td>\n<\/tr>\n<tr>\n<td><strong>Impact de calcul<\/strong><\/td>\n<td>Partage des ressources avec la simulation<\/td>\n<td>Aucun impact sur l&rsquo;ex\u00e9cution de la simulation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Quand utiliser la visualisation in situ<\/h3>\n<ul>\n<li><strong>Simulations Exascale<\/strong> o\u00f9 la bande passante d&rsquo;E\/S est le facteur limitant<\/li>\n<li><strong>Ph\u00e9nom\u00e8nes transitoires<\/strong> n\u00e9cessitant une fid\u00e9lit\u00e9 temporelle \u00e9lev\u00e9e (p. ex., fronts \u00e0 mouvement rapide, turbulence)<\/li>\n<li><strong>D\u00e9bogage<\/strong> : vous devez intercepter les erreurs avant de perdre des millions d&rsquo;heures de base<\/li>\n<li><strong>Simulation direction<\/strong> : vous souhaitez ajuster les param\u00e8tres \u00e0 la vol\u00e9e en fonction des r\u00e9sultats interm\u00e9diaires<\/li>\n<li><strong>R\u00e9duction des donn\u00e9es<\/strong> : vous devez extraire des fonctionnalit\u00e9s, des statistiques ou des images et supprimer les donn\u00e9es brutes<\/li>\n<\/ul>\n<h3>Quand le post-traitement a toujours du sens<\/h3>\n<ul>\n<li><strong>Ensembles de donn\u00e9es petits \u00e0 mod\u00e9r\u00e9s<\/strong> qui peuvent \u00eatre stock\u00e9s \u00e0 un prix abordable<\/li>\n<li><strong>Analyse exploratoire<\/strong> o\u00f9 vous devez essayer de nombreuses techniques de visualisation diff\u00e9rentes apr\u00e8s coup<\/li>\n<li><strong>Rendu haute fid\u00e9lit\u00e9<\/strong> qui n\u00e9cessite le jeu de donn\u00e9es complet et ne peut pas \u00eatre fait avec des repr\u00e9sentations r\u00e9duites<\/li>\n<li><strong>Objectifs d&rsquo;archives<\/strong>\u2014Pr\u00e9servation des donn\u00e9es brutes pour la reproductibilit\u00e9 future<\/li>\n<\/ul>\n<p>En pratique, de nombreuses \u00e9quipes adoptent une <strong>strat\u00e9gie hybride<\/strong>&nbsp;: utilisez in situ pour produire des ensembles de donn\u00e9es r\u00e9duits (par exemple, bases de donn\u00e9es de cin\u00e9ma, statistiques, isosurfaces) et conserver juste assez de donn\u00e9es brutes pour certaines \u00e9tapes de temps, puis effectuer un post-traitement d\u00e9taill\u00e9 sur l&rsquo;ensemble r\u00e9duit.<\/p>\n<h2>Outils et frameworks populaires pour la visualisation in situ<\/h2>\n<p>Plusieurs cadres open-source matures prennent en charge l&rsquo;int\u00e9gration in situ :<\/p>\n<h3>Catalyseur Paraview<\/h3>\n<p>Paraview Catalyst est une biblioth\u00e8que l\u00e9g\u00e8re qui permet une analyse in situ \u00e0 l&rsquo;aide du pipeline VTK. Il fournit une petite API que les simulations en C++, C, Fortran ou Python peuvent appeler pour transmettre des donn\u00e9es aux algorithmes de visualisation de Paraview. Catalyst peut g\u00e9n\u00e9rer des images, extraire des fonctionnalit\u00e9s ou produire des bases de donn\u00e9es cin\u00e9ma pour une exploration ult\u00e9rieure.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Exploit la pleine puissance de VTK et Paraview<\/li>\n<li>Prend en charge les modes \u00e9troitement et l\u00e2chement coupl\u00e9s<\/li>\n<li>D\u00e9veloppement actif et documentation compl\u00e8te<\/li>\n<\/ul>\n<p><strong>Ressources&nbsp;:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paraview.org\/en\/latest\/Catalyst\/index.html\">Documentation de Paraview Catalyst<\/a><\/li>\n<li><a href=\"https:\/\/petrvalenta.eu\/posts\/introduction_to_in_situ_visualization_and_paraview_catalyst\/\">Introduction \u00e0 la visualisation in situ et au catalyseur Paraview<\/a><\/li>\n<\/ul>\n<h3>Visitez Libsim<\/h3>\n<p>Visit propose libsim, un ensemble de biblioth\u00e8ques qui permettent aux simulations de se connecter au moteur de visualisation de Visit. Comme Catalyst, il prend en charge les modes en ligne et en transit. La visite est particuli\u00e8rement forte pour la visualisation parall\u00e8le \u00e0 grande \u00e9chelle et a \u00e9t\u00e9 utilis\u00e9e sur de nombreux syst\u00e8mes de classe de leadership.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Tr\u00e8s \u00e9volutif pour des centaines de milliers de c\u0153urs<\/li>\n<li>Un riche ensemble d&rsquo;op\u00e9rateurs de visualisation<\/li>\n<li>Forte prise en charge des donn\u00e9es de raffinement de maillage adaptatif (AMR)<\/li>\n<\/ul>\n<p><strong>Ressources&nbsp;:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/groupe-calcul.cnrs.fr\/attachments\/spip\/Documents\/Manifestations\/CIRA2011\/JFavre.pdf\">Visualisation in situ avec visite<\/a><\/li>\n<\/ul>\n<h3>Ascension<\/h3>\n<p>Ascent est une biblioth\u00e8que in situ l\u00e9g\u00e8re et multic\u0153ur con\u00e7ue pour les environnements \u00e0 ressources limit\u00e9es. Il est particuli\u00e8rement efficace pour les applications acc\u00e9l\u00e9r\u00e9es par GPU et peut fonctionner efficacement sur un petit sous-ensemble de n\u0153uds.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Frais g\u00e9n\u00e9raux minimes<\/li>\n<li>Bonne prise en charge du GPU<\/li>\n<li>Une partie du projet informatique am\u00e9ricain Exascale<\/li>\n<\/ul>\n<h3>damaris<\/h3>\n<p>Damaris se concentre sur l&rsquo;utilisation de c\u0153urs d\u00e9di\u00e9s pour l&rsquo;analyse in situ asynchrone, isolant la visualisation de la simulation principale afin de minimiser l&rsquo;impact sur les performances. Il prend en charge les backends Visit et Paraview.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>L&rsquo;ex\u00e9cution asynchrone r\u00e9duit les interf\u00e9rences de simulation<\/li>\n<li>G\u00e8re le mouvement et la r\u00e9partition des donn\u00e9es<\/li>\n<li>Convient pour les simulations \u00e0 long terme en r\u00e9gime permanent<\/li>\n<\/ul>\n<h3>Sensei et conduit<\/h3>\n<p>Sensei fournit une interface g\u00e9n\u00e9rique qui d\u00e9coupe les simulations \u00e0 partir d&rsquo;outils in situ sp\u00e9cifiques. Conduit g\u00e8re la description et l&rsquo;\u00e9change de donn\u00e9es. Cette abstraction permet au m\u00eame code de simulation de fonctionner avec Catalyst, Ascent ou d&rsquo;autres backends sans changement de code.<\/p>\n<p><strong>Quand choisir&nbsp;:<\/strong> si vous souhaitez \u00e9viter le verrouillage des fournisseurs et prendre en charge plusieurs frameworks in situ.<\/p>\n<h2>D\u00e9fis de mise en \u0153uvre&nbsp;: ce qui peut mal tourner<\/h2>\n<p>L&rsquo;int\u00e9gration de la visualisation in situ dans une base de code de simulation existante n&rsquo;est pas triviale. Pr\u00e9parez-vous \u00e0 ces d\u00e9fis communs :<\/p>\n<h3>Contention des ressources et overhead de performances<\/h3>\n<p>La visualisation consomme des cycles de CPU, du temps du GPU et de la m\u00e9moire qui seraient autrement disponibles pour la simulation. Des \u00e9tudes ont montr\u00e9 que les pipelines in situ mal optimis\u00e9s peuvent ralentir les simulations de 20 \u00e0 50 % ou plus. La cl\u00e9 est de <strong>mesure<\/strong> et de <strong>liant<\/strong> les frais g\u00e9n\u00e9raux.<\/p>\n<p><strong>Strat\u00e9gies d&rsquo;att\u00e9nuation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des modes asynchrones ou en transit pour s\u00e9parer les ressources<\/li>\n<li>Limiter la fr\u00e9quence de visualisation (par exemple, tous les 10e pas de temps)<\/li>\n<li>Utiliser des algorithmes de r\u00e9duction des donn\u00e9es pour r\u00e9duire le volume de traitement<\/li>\n<li>D\u00e9dier un sous-ensemble de c\u0153urs\/GPU exclusivement \u00e0 la visualisation<\/li>\n<\/ul>\n<h3>Empreinte m\u00e9moire<\/h3>\n<p>Le chargement des biblioth\u00e8ques de visualisation \u00e0 c\u00f4t\u00e9 de la simulation augmente l&rsquo;utilisation de la m\u00e9moire par n\u0153ud. Sur les syst\u00e8mes li\u00e9s \u00e0 la m\u00e9moire, cela peut forcer une r\u00e9duction de la taille du probl\u00e8me par n\u0153ud.<\/p>\n<p><strong>Att\u00e9nuation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Choisissez des cadres l\u00e9gers (Ascent est con\u00e7u pour cela)<\/li>\n<li>Lib\u00e9rez la m\u00e9moire de visualisation rapidement apr\u00e8s utilisation<\/li>\n<li>Consid\u00e9rez les modes de transit o\u00f9 la visualisation s&rsquo;ex\u00e9cute sur des n\u0153uds distincts<\/li>\n<\/ul>\n<h3>Conversion et interop\u00e9rabilit\u00e9 des donn\u00e9es<\/h3>\n<p>Les codes de simulation utilisent souvent des structures de donn\u00e9es personnalis\u00e9es optimis\u00e9es pour les solveurs PDE. Des outils in situ comme VTK attendent des donn\u00e9es dans des formats sp\u00e9cifiques (par exemple, grilles structur\u00e9es, maillages non structur\u00e9s). L&rsquo;\u00e9criture d&rsquo;adaptateurs pour traduire entre ces repr\u00e9sentations peut \u00eatre complexe et peut impliquer des copies approfondies co\u00fbteuses.<\/p>\n<p><strong>Solution&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des couches d&rsquo;abstraction comme Sensei\/Conduit pour d\u00e9finir un mod\u00e8le de donn\u00e9es commun<\/li>\n<li>Explorez les interfaces z\u00e9ro copie si votre simulation et votre visualisation partagent la m\u00eame disposition sous-jacente<\/li>\n<li>Facteur Adapter le code dans un module distinct pour isoler la complexit\u00e9<\/li>\n<\/ul>\n<h3>\u00c9volutivit\u00e9 parall\u00e8le<\/h3>\n<p>Les algorithmes de visualisation doivent \u00e9voluer \u00e0 la m\u00eame taille que la simulation (potentiellement des millions de rangs MPI). Des op\u00e9rations globales telles que le rendu volumique ou l&rsquo;extraction d&rsquo;isossurface dans toutes les donn\u00e9es peuvent devenir des goulots de communication.<\/p>\n<p><strong>Solution&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des algorithmes de visualisation distribu\u00e9e qui minimisent la communication entre les n\u0153uds<\/li>\n<li>Utiliser la r\u00e9duction des donn\u00e9es ou l&rsquo;\u00e9chantillonnage pour r\u00e9duire le volume de donn\u00e9es effectif<\/li>\n<li>Envisager des approches hi\u00e9rarchiques : analyse locale d&rsquo;abord, puis r\u00e9sultats agr\u00e9g\u00e9s<\/li>\n<\/ul>\n<h3>Le probl\u00e8me \u00ab\u00a0a priori\u00a0\u00bb<\/h3>\n<p>La visualisation in situ vous oblige \u00e0 d\u00e9cider <strong>avant la course<\/strong> ce qu&rsquo;il faut visualiser. Si vous r\u00e9alisez plus tard que vous deviez examiner une variable diff\u00e9rente ou appliquer un filtre diff\u00e9rent, les donn\u00e9es brutes ont disparu. Il s&rsquo;agit de la rigidit\u00e9 fondamentale de l&rsquo;In-Situ.<\/p>\n<p><strong>Contournement&nbsp;:<\/strong><\/p>\n<ul>\n<li>Enregistrer un ensemble de donn\u00e9es r\u00e9duit mais flexible (par exemple, une base de donn\u00e9es cin\u00e9matographique) qui prend en charge le r\u00e9tablissement ult\u00e9rieur \u00e0 partir de diff\u00e9rents points de vue<\/li>\n<li>Enregistrez p\u00e9riodiquement de petits instantan\u00e9s de donn\u00e9es brutes \u00e0 des pas de temps cl\u00e9s<\/li>\n<li>Utilisez la direction de la simulation pour ajuster dynamiquement les param\u00e8tres de visualisation au fur et \u00e0 mesure de l&rsquo;ex\u00e9cution<\/li>\n<\/ul>\n<h3>Complexit\u00e9 et fragilit\u00e9 du code<\/h3>\n<p>Un couplage serr\u00e9 signifie que la biblioth\u00e8que de visualisation devient une partie de l&rsquo;ex\u00e9cutable de simulation. Un bogue dans le code de visualisation peut planter toute la simulation. L&rsquo;int\u00e9gration augmente \u00e9galement la complexit\u00e9 du code et la charge de maintenance.<\/p>\n<p><strong>Meilleures pratiques&nbsp;:<\/strong><\/p>\n<ul>\n<li>Encapsuler tous les appels in situ derri\u00e8re une interface propre<\/li>\n<li>Gardez le code de visualisation s\u00e9par\u00e9 des principaux solveurs<\/li>\n<li>Fournir une configuration d&rsquo;ex\u00e9cution pour activer\/d\u00e9sactiver facilement<\/li>\n<li>Test avec la visualisation d\u00e9sactiv\u00e9e pour assurer la stabilit\u00e9 de la simulation<\/li>\n<\/ul>\n<h2>Meilleures pratiques pour une adoption in situ r\u00e9ussie<\/h2>\n<p>Sur la base de l&rsquo;exp\u00e9rience de la communaut\u00e9 HPC, suivez ces directives pour maximiser le succ\u00e8s&nbsp;:<\/p>\n<h3>1. Commencez par un prototype<\/h3>\n<p>Avant de s&rsquo;engager dans une int\u00e9gration compl\u00e8te, cr\u00e9ez un petit prototype qui exerce le pipeline de base : Simulation \u2192 Outil in situ \u2192 Image de sortie. Cela valide la cha\u00eene d&rsquo;outils et r\u00e9v\u00e8le les obstacles d&rsquo;int\u00e9gration au d\u00e9but.<\/p>\n<h3>2. Adoptez des architectures asynchrones ou hybrides<\/h3>\n<p>\u00c9vitez les modes \u00e9troitement coupl\u00e9s \u00e0 moins que vous n&rsquo;ayez des preuves solides que les frais g\u00e9n\u00e9raux seront acceptables. Pr\u00e9f\u00e9rez les approches en transit ou asynchrones o\u00f9 la visualisation s&rsquo;ex\u00e9cute sur des c\u0153urs ou des n\u0153uds d\u00e9di\u00e9s. Cela isole les interf\u00e9rences de performances.<\/p>\n<h3>3. D\u00e9finir des objectifs clairs de r\u00e9duction des donn\u00e9es<\/h3>\n<p>In-situ est plus efficace lorsque vous r\u00e9duisez les donn\u00e9es <em>avant<\/em> de les sauvegarder. D\u00e9cidez d&rsquo;avance&nbsp;:<\/p>\n<ul>\n<li>De quelles images ou films avez-vous besoin&nbsp;?<\/li>\n<li>Quelles quantit\u00e9s d\u00e9riv\u00e9es (par exemple, flux int\u00e9gr\u00e9s, valeurs maximales) sont essentielles&nbsp;?<\/li>\n<li>Pouvez-vous utiliser des bases de donn\u00e9es de cin\u00e9ma pour une exploration post-hoc flexible&nbsp;?<\/li>\n<\/ul>\n<h3>4. Mesurez tout<\/h3>\n<p>Instruisez votre code pour mesurer&nbsp;:<\/p>\n<ul>\n<li>Temps de simulation avec et sans activ\u00e9 in situ<\/li>\n<li>Utilisation de la m\u00e9moire par n\u0153ud<\/li>\n<li>Fr\u00e9quence et dur\u00e9e des pauses de visualisation<\/li>\n<li>Qualit\u00e9 et utilit\u00e9 des produits produits<\/li>\n<\/ul>\n<p>Sans mesures, vous ne pouvez pas dire si in situ aide ou fait mal.<\/p>\n<h3>5. Tirer parti de l&rsquo;infrastructure existante<\/h3>\n<p>Ne r\u00e9inventez pas la roue. Utilisez des cadres \u00e9tablis (Catalyst, Ascent, Damaris) plut\u00f4t que d&rsquo;\u00e9crire du code in situ personnalis\u00e9 \u00e0 partir de z\u00e9ro. Ils g\u00e8rent de nombreux d\u00e9tails de bas niveau (communication MPI, r\u00e9partition des donn\u00e9es, cellules fant\u00f4mes) susceptibles d&rsquo;\u00eatre impl\u00e9ment\u00e9es.<\/p>\n<h3>6. Plan de pilotage de simulation<\/h3>\n<p>Si vous souhaitez diriger des simulations de mani\u00e8re interactive, concevez votre pipeline in situ pour accepter les messages de contr\u00f4le externes. Des outils comme Icarus (pour Paraview) offrent des capacit\u00e9s de pilotage avec des changements de code minimes.<\/p>\n<h3>7. Utilisez des cellules fant\u00f4mes pour des limites parall\u00e8les<\/h3>\n<p>Lorsque votre domaine de simulation est d\u00e9compos\u00e9 entre les rangs MPI, les algorithmes de visualisation qui n\u00e9cessitent des donn\u00e9es de voisinage (par exemple, des gradients, des isosurfaces) doivent communiquer au-del\u00e0 des fronti\u00e8res du sous-domaine. Pr\u00e9calculer et stocker des \u00ab\u00a0cellules fant\u00f4mes\u00a0\u00bb pour \u00e9viter les communications r\u00e9p\u00e9t\u00e9es lors de la visualisation.<\/p>\n<h3>8. Gardez la visualisation facultative<\/h3>\n<p>Enveloppez tous les appels in situ derri\u00e8re un indicateur d&rsquo;ex\u00e9cution. La simulation doit fonctionner normalement avec in situ d\u00e9sactiv\u00e9. Ceci est essentiel pour le d\u00e9bogage et pour les sc\u00e9narios o\u00f9 vous souhaitez ex\u00e9cuter sans les frais g\u00e9n\u00e9raux.<\/p>\n<h2>Applications du monde r\u00e9el&nbsp;: o\u00f9 brille in situ<\/h2>\n<p>La visualisation in situ est devenue indispensable dans plusieurs domaines scientifiques :<\/p>\n<h3>Dynamique des fluides computationnelle (CFD)<\/h3>\n<p>Les simulations d&rsquo;\u00e9coulement turbulent g\u00e9n\u00e8rent des champs 3D massifs de vitesse et de pression. La visualisation in situ peut extraire des tranches 2D, des lignes de courant ou des c\u0153urs Vortex en temps r\u00e9el, permettant aux ing\u00e9nieurs de surveiller la s\u00e9paration des flux, les ondes de choc ou l&rsquo;instabilit\u00e9 de la combustion au fur et \u00e0 mesure de leur d\u00e9veloppement.<\/p>\n<h3>Astrophysique et cosmologie<\/h3>\n<p>Les simulations cosmologiques avec Adaptive Mesh Refinement (AMR) suivent les halos de mati\u00e8re noire et les densit\u00e9s de gaz sur des milliards d&rsquo;ann\u00e9es. L&rsquo;analyse in situ identifie les halos, classe les structures et suit les fusions \u00e0 haute r\u00e9solution temporelle, des t\u00e2ches qui seraient impossibles avec des instantan\u00e9s enregistr\u00e9s peu fr\u00e9quents.<\/p>\n<h3>Dynamique mol\u00e9culaire et science des mat\u00e9riaux<\/h3>\n<p>Les ensembles d&rsquo;ex\u00e9cutions de dynamiques mol\u00e9culaires peuvent \u00eatre surveill\u00e9s in situ pour d\u00e9tecter des \u00e9v\u00e9nements rares tels que la nucl\u00e9ation, les transitions de phase ou la nucl\u00e9ation de luxation. Les chercheurs peuvent arr\u00eater les simulations t\u00f4t lorsqu&rsquo;un \u00e9v\u00e9nement se produit, \u00e9conomisant des ressources de calcul.<\/p>\n<h3>M\u00e9t\u00e9o et informatique urgente<\/h3>\n<p>Les pr\u00e9visions m\u00e9t\u00e9orologiques d&rsquo;ensemble pour les ouragans ou les incendies de for\u00eat n\u00e9cessitent l&rsquo;ex\u00e9cution de dizaines de simulations en parall\u00e8le. L&rsquo;analyse topologique in situ identifie le r\u00e9sultat le plus probable de l&rsquo;ensemble, fournissant des informations essentielles pour les d\u00e9cisions d&rsquo;urgence avant que l&rsquo;ensemble de donn\u00e9es complet ne soit \u00e9crit.<\/p>\n<h3>Visualisation des performances<\/h3>\n<p>Ironiquement, des techniques in situ sont \u00e9galement utilis\u00e9es pour visualiser les performances du syst\u00e8me HPC lui-m\u00eame, en surveillant la bande passante de la m\u00e9moire, les mod\u00e8les de communication et l&rsquo;\u00e9quilibre de charge lors de l&rsquo;ex\u00e9cution pour guider l&rsquo;optimisation.<\/p>\n<h2>Mise en route : une liste de contr\u00f4le pratique<\/h2>\n<p>Si vous envisagez d&rsquo;ajouter une visualisation in situ \u00e0 votre code de simulation, suivez ce plan \u00e9tape par \u00e9tape&nbsp;:<\/p>\n<h3>Phase 1 : \u00e9valuation (1 \u00e0 2 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Quantifiez votre probl\u00e8me d&rsquo;E\/S<\/strong>&nbsp;: combien de donn\u00e9es g\u00e9n\u00e8rez-vous&nbsp;? Combien de temps dure l&rsquo;\u00e9criture ? La r\u00e9duction de la production permettrait-elle de gagner beaucoup de temps ?<\/li>\n<li>[ ] <strong>Identifier les objectifs de visualisation<\/strong>&nbsp;: de quelles images ou analyses sp\u00e9cifiques avez-vous besoin pendant la course&nbsp;? (par exemple, \u00ab\u00a02d tranche de temp\u00e9rature toutes les 100 \u00e9tapes\u00a0\u00bb, \u00ab\u00a0pression maximale dans le temps\u00a0\u00bb)<\/li>\n<li>[ ] <strong>Outils d&rsquo;enqu\u00eate<\/strong>&nbsp;: passez en revue Paraview Catalyst, visitez libsim, Ascent et Damaris. Qu&rsquo;est-ce qui correspond \u00e0 votre langage de programmation et \u00e0 votre environnement HPC&nbsp;?<\/li>\n<li>[ ] <strong>V\u00e9rifier la prise en charge du syst\u00e8me<\/strong>&nbsp;: votre centre de supercomputation prend-il en charge les flux de travail in situ&nbsp;? Les biblioth\u00e8ques requises sont-elles install\u00e9es&nbsp;?<\/li>\n<\/ul>\n<h3>Phase 2 : prototype (2 \u00e0 4 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Mettre en place un exemple minimal<\/strong>&nbsp;: prenez un petit cas de test (par exemple, un simple solveur d&rsquo;\u00e9quations de chaleur) et int\u00e9grez le cadre in situ choisi pour produire une seule image.<\/li>\n<li>[ ] <strong>Mesure de base de la ligne de base<\/strong>&nbsp;: comparez le temps d&rsquo;ex\u00e9cution de la simulation avec et sans activ\u00e9 in situ. Les frais g\u00e9n\u00e9raux sont-ils acceptables (&lt;&nbsp;; 10 \u00e0 15&nbsp;%)&nbsp;?<\/li>\n<li>[ ] <strong>Testez la r\u00e9duction des donn\u00e9es<\/strong>&nbsp;: exp\u00e9rimentez avec diff\u00e9rentes strat\u00e9gies de r\u00e9duction (sous-\u00e9chantillonnage, isosurfaces, agr\u00e9gats statistiques). La production r\u00e9pond-elle \u00e0 vos besoins scientifiques ?<\/li>\n<li>[ ] <strong>V\u00e9rifier l&rsquo;\u00e9volutivit\u00e9<\/strong>&nbsp;: ex\u00e9cutez le prototype sur 1, 10, 100 rangs. L&rsquo;\u00e9chelle a\u00e9rienne s&rsquo;adapte-t-elle de mani\u00e8re lin\u00e9aire ou explose-t-elle \u00e0 plus grande \u00e9chelle&nbsp;?<\/li>\n<\/ul>\n<h3>Phase 3 : Int\u00e9gration (4 \u00e0 8 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Design d&rsquo;une couche d&rsquo;abstraction<\/strong>&nbsp;: cr\u00e9ez un module qui encapsule tous les appels in situ derri\u00e8re une simple API (par exemple, <code>beginTimestep()<\/code>, <code>addData(field)<\/code>, <code>execute()<\/code>, <code>endTimestep()<\/code>). Cela facilite l&rsquo;\u00e9change de frameworks ult\u00e9rieurement.<\/li>\n<li>[ ] <strong>Ajouter une configuration<\/strong>&nbsp;: utilisez des indicateurs d&rsquo;ex\u00e9cution ou des variables d&rsquo;environnement pour contr\u00f4ler la fr\u00e9quence in situ, les formats de sortie et les variables \u00e0 capturer.<\/li>\n<li>[ ] <strong>Mise en \u0153uvre d&rsquo;une d\u00e9gradation gracieuse<\/strong>&nbsp;: assurez-vous que la simulation se poursuit m\u00eame en cas d&rsquo;\u00e9chec in situ (par exemple, \u00e9crivez un avertissement mais n&rsquo;interrompez pas).<\/li>\n<li>[ ] <strong>Int\u00e9grer avec les E\/S existantes<\/strong>&nbsp;: d\u00e9cidez comment les sorties in situ (images, bases de donn\u00e9es) coexisteront avec tous les vidages de donn\u00e9es de post-traitement existants.<\/li>\n<li>[ ] <strong>Ajouter une direction si n\u00e9cessaire<\/strong>&nbsp;: si la direction interactive est un objectif, impl\u00e9mentez des rappels ou des messages de transmission pour autoriser les changements de param\u00e8tres externes.<\/li>\n<\/ul>\n<h3>Phase 4 : Validation et production (2 \u00e0 4 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Ex\u00e9cutez des tests de bout en bout<\/strong>&nbsp;: ex\u00e9cutez une simulation scientifique compl\u00e8te avec l&rsquo;activation in situ. V\u00e9rifiez que les sorties sont correctes et que la simulation se termine dans un d\u00e9lai acceptable.<\/li>\n<li>[ ] <strong>Test de contrainte<\/strong>&nbsp;: repoussez les limites&nbsp;: s&rsquo;ex\u00e9cuter sur le nombre de c\u0153urs complet pr\u00e9vu, avec une taille maximale du probl\u00e8me. Surveiller la m\u00e9moire, la communication et la stabilit\u00e9.<\/li>\n<li>[ ] <strong>Documenter le flux de travail<\/strong>&nbsp;: r\u00e9diger des instructions claires pour les utilisateurs&nbsp;: comment activer in situ, quelles options sont disponibles, o\u00f9 les sorties sont \u00e9crites, comment les interpr\u00e9ter.<\/li>\n<li>[ ] <strong>Formez les utilisateurs<\/strong>&nbsp;: assurez-vous que les membres de l&rsquo;\u00e9quipe comprennent le flux de travail in situ et peuvent r\u00e9soudre des probl\u00e8mes courants.<\/li>\n<\/ul>\n<h2>Des pi\u00e8ges courants et comment les \u00e9viter<\/h2>\n<table>\n<thead>\n<tr>\n<th>Pi\u00e8ge<\/th>\n<th>Sympt\u00f4me<\/th>\n<th>Pr\u00e9vention \/ Correction<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Frais g\u00e9n\u00e9raux illimit\u00e9s<\/strong><\/td>\n<td>La simulation ralentit par &gt; 30&nbsp;%<\/td>\n<td>limiter la fr\u00e9quence in situ ; utiliser en transit&nbsp;; Profil pour trouver des goulots d&rsquo;\u00e9tranglement<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9puisement de m\u00e9moire<\/strong><\/td>\n<td>Emplois tu\u00e9s par Oom Killer<\/td>\n<td>R\u00e9duire le volume de donn\u00e9es transmis&nbsp;; Utilisez moins de c\u0153urs d\u00e9di\u00e9s ; Passer en mode l\u00e2chement coupl\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>Variables manquantes<\/strong><\/td>\n<td>R\u00e9alisez plus tard que vous deviez \u00e9conomiser la quantit\u00e9 x<\/td>\n<td>Enregistrez r\u00e9guli\u00e8rement de petits instantan\u00e9s bruts ; Utilisez le format cin\u00e9ma pour plus de flexibilit\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9chelle m\u00e9diocre<\/strong><\/td>\n<td>Le temps sur place augmente avec le nombre de c\u0153urs<\/td>\n<td>Utilisez des algorithmes de visualisation distribu\u00e9e ; donn\u00e9es de r\u00e9partition; Agr\u00e9ger localement en premier<\/td>\n<\/tr>\n<tr>\n<td><strong>Simulation des plantages de la visualisation<\/strong><\/td>\n<td>Un mauvais appel de visualisation interrompt toute la course<\/td>\n<td>Enveloppez les appels in situ dans try-catch ; D\u00e9sactiver in situ en cas d&rsquo;\u00e9chec&nbsp;; Gardez le code de simulation s\u00e9par\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>Les fichiers de sortie s&rsquo;\u00e9crasent<\/strong><\/td>\n<td>Plusieurs ex\u00e9cutions \u00e9crivent sur les m\u00eames images<\/td>\n<td>Inclure les horodatages ou les ID de travaux dans les noms de fichiers de sortie&nbsp;; Utiliser des r\u00e9pertoires de sortie distincts<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion&nbsp;: la visualisation in situ vous convient-elle&nbsp;?<\/h2>\n<p>La visualisation in situ est un puissant paradigme pour lutter contre le d\u00e9luge de donn\u00e9es du calcul scientifique moderne. En traitant les donn\u00e9es en m\u00e9moire pendant les cycles de simulation, vous pouvez surmonter les goulots d&rsquo;\u00e9tranglement des E\/S, r\u00e9duire les co\u00fbts de stockage et obtenir des informations en temps r\u00e9el sur vos mod\u00e8les. Cependant, ce n&rsquo;est pas une solution miracle&nbsp;: il introduit de la complexit\u00e9, n\u00e9cessite des d\u00e9cisions de conception initiales et peut avoir un impact sur les performances de la simulation si elle est mal impl\u00e9ment\u00e9e.<\/p>\n<p>Pour les groupes de recherche ex\u00e9cutant des simulations PDE \u00e0 grande \u00e9chelle sur des syst\u00e8mes HPC, en particulier ceux qui s&rsquo;approchent d&rsquo;Exascale, l&rsquo;apprentissage et l&rsquo;adoption de techniques in situ sont de plus en plus essentiels. Commencez petit avec un prototype, mesurez rigoureusement et augmentez d\u00e9lib\u00e9r\u00e9ment. L&rsquo;investissement est payant dans des cycles d&rsquo;it\u00e9ration plus rapides, des informations scientifiques plus riches et la possibilit\u00e9 d&rsquo;ex\u00e9cuter des simulations qui seraient autrement impossibles en raison du volume des donn\u00e9es.<\/p>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"\/visualizing-simulation-results-effectively\/\">visualiser efficacement les r\u00e9sultats de la simulation<\/a> &#8211; Principes g\u00e9n\u00e9raux pour transformer les donn\u00e9es de simulation en visuels exploitables.<\/li>\n<li><a href=\"\/illuminator-distributed-visualization-library\/\">Biblioth\u00e8que de visualisation distribu\u00e9e d&rsquo;illuminateur<\/a> &#8211; Vue d&rsquo;ensemble d&rsquo;un outil sp\u00e9cialis\u00e9 pour le rendu et le stockage parall\u00e8les.<\/li>\n<li><a href=\"\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">Gestion des probl\u00e8mes de PDE \u00e0 grande \u00e9chelle<\/a> \u2013 Strat\u00e9gies pour r\u00e9soudre efficacement les syst\u00e8mes massifs.<\/li>\n<li><a href=\"\/understanding-phase-field-models-in-materials-science\/\">comprendre les mod\u00e8les de champ de phase<\/a> &#8211; un domaine d&rsquo;application commun pour les simulations PDE.<\/li>\n<li><a href=\"\/using-fipy-for-phase-field-modeling\/\">Utilisation de FIPY pour la mod\u00e9lisation en champ de phase<\/a> \u2013 Impl\u00e9mentation pratique en Python.<\/li>\n<\/ul>\n<h2>Prochaines \u00e9tapes<\/h2>\n<p>Pr\u00eat \u00e0 essayer la visualisation in situ ? Commencez par&nbsp;:<\/p>\n<ol>\n<li><strong>\u00c9valuation de vos goulots d&rsquo;\u00e9tranglement d&rsquo;E\/S actuels<\/strong>&nbsp;: ex\u00e9cutez un outil de profilage (par exemple, Darshan) sur une simulation existante pour quantifier le temps pass\u00e9 \u00e0 \u00e9crire des donn\u00e9es.<\/li>\n<li><strong>Installation de Paraview Catalyst ou Ascent<\/strong> sur votre syst\u00e8me de d\u00e9veloppement et ex\u00e9cution des didacticiels.<\/li>\n<li><strong>Cr\u00e9er un prototype minimal<\/strong> avec un simple cas de test pour mesurer les frais g\u00e9n\u00e9raux et valider la cha\u00eene d&rsquo;outils.<\/li>\n<li><strong>Attraction<\/strong> \u00e0 l&rsquo;\u00e9quipe d&rsquo;assistance HPC de votre \u00e9tablissement&nbsp;: ils ont souvent une expertise et des exemples de codes pour vous aider \u00e0 d\u00e9marrer.<\/li>\n<\/ol>\n<p>Si vous avez besoin d&rsquo;aide pour int\u00e9grer la visualisation in situ dans votre logiciel de recherche, contactez-nous pour une consultation et une formation adapt\u00e9es aux \u00e9quipes de calcul scientifique.<\/p>\n","protected":false,"raw":"<h2>tl;dr<\/h2>\n<p>La visualisation in situ traite et analyse les donn\u00e9es de simulation <strong>pendant que la simulation s'ex\u00e9cute<\/strong>, directement en m\u00e9moire, au lieu d'\u00e9crire des r\u00e9sultats bruts sur le disque pour un post-traitement ult\u00e9rieur. Cette approche est essentielle pour le calcul exascale o\u00f9 la bande passante d'E\/S ne peut pas suivre la g\u00e9n\u00e9ration de donn\u00e9es. En int\u00e9grant la visualisation pendant le calcul, vous pouvez :<\/p>\n<ul>\n<li>\u00c9vitez les goulots d'\u00e9tranglement d'E\/S qui paralysent les flux de travail traditionnels<\/li>\n<li>Surveiller les simulations en temps r\u00e9el et diriger les param\u00e8tres \u00e0 la vol\u00e9e<\/li>\n<li>R\u00e9duire les besoins de stockage par ordre de grandeur<\/li>\n<li>Capturez des ph\u00e9nom\u00e8nes transitoires qui seraient manqu\u00e9s avec des instantan\u00e9s peu fr\u00e9quents<\/li>\n<\/ul>\n<p>Le compromis est une complexit\u00e9 suppl\u00e9mentaire et une contention des ressources. Vous devez d\u00e9cider quoi visualiser avant l'ex\u00e9cution, et la visualisation est en concurrence avec la simulation pour les cycles CPU\/GPU.<\/p>\n<h2>Introduction : Pourquoi la visualisation in situ est importante<\/h2>\n<p>Les simulations scientifiques g\u00e9n\u00e8rent de grandes quantit\u00e9s de donn\u00e9es. Une seule ex\u00e9cution Exascale peut produire des p\u00e9taoctets de sortie, mais l'\u00e9criture de ces donn\u00e9es sur le disque devient un goulot d'\u00e9tranglement fondamental&nbsp;: les syst\u00e8mes de stockage ne peuvent pas suivre le rythme du d\u00e9bit de calcul. Le r\u00e9sultat est un \u00e9cart croissant entre la rapidit\u00e9 avec laquelle les simulations peuvent produire des donn\u00e9es et la rapidit\u00e9 avec laquelle ces donn\u00e9es peuvent \u00eatre sauvegard\u00e9es et analys\u00e9es.<\/p>\n<p>La visualisation in situ (latin pour \"en place\") aborde ce probl\u00e8me en effectuant des t\u00e2ches de visualisation et d'analyse <strong>en m\u00eame temps que la simulation<\/strong>, en acc\u00e9dant aux donn\u00e9es directement de la m\u00e9moire avant d'\u00eatre \u00e9crites sur le disque. Ce paradigme d\u00e9place le flux de travail de&nbsp;:<\/p>\n<pre><code>Simulation \u2192 Storage \u2192 Visualization\n<\/code><\/pre>\n<p>\u00e0&nbsp;:<\/p>\n<pre><code>Simulation + Visualization \u2192 Storage of images\/reduced data\n<\/code><\/pre>\n<p>\u00c0 mesure que le calcul \u00e0 haute performance (HPC) s'\u00e9tend vers l'\u00e9chelle exascale, les techniques in situ ne sont plus facultatives - elles deviennent une n\u00e9cessit\u00e9 pour la d\u00e9couverte scientifique. Ce guide explique comment fonctionne la visualisation in situ, la compare aux outils traditionnels de post-traitement et fournit des conseils pratiques et fournit des conseils pratiques pour l'adopter dans vos projets de recherche.<\/p>\n<h2>Comment fonctionne la visualisation in situ : le flux de travail de base<\/h2>\n<p>La visualisation in situ exploite les m\u00eames ressources de calcul qui ex\u00e9cutent la simulation pour effectuer une analyse visuelle. Il existe deux principales strat\u00e9gies de couplage :<\/p>\n<h3>Visualisation in situ \u00e9troitement coupl\u00e9e (en ligne)<\/h3>\n<p>Le code de visualisation partage le m\u00eame espace m\u00e9moire et ex\u00e9cutable que la simulation. \u00c0 des intervalles sp\u00e9cifi\u00e9s (par exemple, \u00e0 chaque pas de temps ou lorsque certains crit\u00e8res sont remplis), la simulation interrompt, les donn\u00e9es sont transmises \u00e0 des algorithmes de visualisation et des images ou des donn\u00e9es d\u00e9riv\u00e9es sont produites.<\/p>\n<p><strong>Pros&nbsp;:<\/strong><\/p>\n<ul>\n<li>Latence la plus faible Acc\u00e8s aux donn\u00e9es de simulation<\/li>\n<li>Pas de surcharge de communication r\u00e9seau<\/li>\n<li>Mappage de donn\u00e9es le plus simple (m\u00eame disposition de m\u00e9moire)<\/li>\n<\/ul>\n<p><strong>Contre&nbsp;:<\/strong><\/p>\n<ul>\n<li>La visualisation est en concurrence directe pour les cycles CPU\/GPU, ralentissant la simulation<\/li>\n<li>Augmentation de l'empreinte m\u00e9moire par n\u0153ud<\/li>\n<li>Un plantage dans le code de visualisation peut planter toute la simulation<\/li>\n<\/ul>\n<p><strong>Exemple d'outils&nbsp;:<\/strong>&nbsp;Paraview&nbsp;Catalyst int\u00e9gr\u00e9 directement dans le binaire de simulation.<\/p>\n<h3>Visualisation in situ (en transit) faiblement coupl\u00e9e (en transit)<\/h3>\n<p>La simulation s'ex\u00e9cute sur un ensemble de n\u0153uds de calcul, tandis que la visualisation s'ex\u00e9cute sur un ensemble de n\u0153uds distinct et co-allou\u00e9. Les donn\u00e9es sont transf\u00e9r\u00e9es sur le r\u00e9seau (souvent via MPI) vers les processus de visualisation.<\/p>\n<p><strong>Pros&nbsp;:<\/strong><\/p>\n<ul>\n<li>La visualisation n'interf\u00e8re pas directement avec le calcul de la simulation<\/li>\n<li>Peut mettre \u00e0 l'\u00e9chelle la visualisation de mani\u00e8re ind\u00e9pendante<\/li>\n<li>Meilleure isolation des pannes<\/li>\n<\/ul>\n<p><strong>Contre&nbsp;:<\/strong><\/p>\n<ul>\n<li>Frais de transfert r\u00e9seau<\/li>\n<li>N\u00e9cessite plus de ressources totales (noeuds s\u00e9par\u00e9s)<\/li>\n<li>Les donn\u00e9es peuvent \u00eatre reparties pour la visualisation<\/li>\n<\/ul>\n<p><strong>Exemple de frameworks&nbsp;:<\/strong> Damaris, qui utilise des c\u0153urs d\u00e9di\u00e9s pour l'analyse asynchrone.<\/p>\n<h3>Approches hybrides<\/h3>\n<p>De nombreux d\u00e9ploiements dans le monde r\u00e9el utilisent une strat\u00e9gie hybride&nbsp;: \u00e9troitement coupl\u00e9e au sein d'un n\u0153ud (en utilisant le m\u00eame CPU\/GPU) mais vaguement coupl\u00e9e entre les n\u0153uds, ou en utilisant des pipelines asynchrones o\u00f9 la visualisation s'ex\u00e9cute avant la simulation sur les m\u00eames ressources.<\/p>\n<h2>In-situ vs post-traitement : une analyse comparative<\/h2>\n<table>\n<thead>\n<tr>\n<th>Fonctionnalit\u00e9<\/th>\n<th>Visualisation in situ<\/th>\n<th>Visualisation post-traitement<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Temps<\/strong><\/td>\n<td>En temps r\u00e9el, lors de la simulation<\/td>\n<td>Retard\u00e9 (apr\u00e8s simulation)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flux de donn\u00e9es<\/strong><\/td>\n<td>Traiter les donn\u00e9es en m\u00e9moire<\/td>\n<td>\u00c9crit les donn\u00e9es sur le disque, puis les lit<\/td>\n<\/tr>\n<tr>\n<td><strong>Frais g\u00e9n\u00e9raux d'E\/S<\/strong><\/td>\n<td>Tr\u00e8s faible (r\u00e9duit les \u00e9critures sur disque)<\/td>\n<td>Tr\u00e8s \u00e9lev\u00e9 (goulot d'\u00e9tranglement du disque)<\/td>\n<\/tr>\n<tr>\n<td><strong>Besoins de stockage<\/strong><\/td>\n<td>Faible (seulement les images\/r\u00e9sum\u00e9s enregistr\u00e9s)<\/td>\n<td>Extr\u00eamement \u00e9lev\u00e9 (donn\u00e9es brutes compl\u00e8tes)<\/td>\n<\/tr>\n<tr>\n<td><strong>R\u00e9solution temporelle<\/strong><\/td>\n<td>\u00c9lev\u00e9 (\u00e0 chaque pas de temps possible)<\/td>\n<td>Faible (limit\u00e9 par la capacit\u00e9 de stockage)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flexibilit\u00e9<\/strong><\/td>\n<td>Faible (d\u00e9cisions fix\u00e9es avant l'ex\u00e9cution)<\/td>\n<td>\u00c9lev\u00e9 (peut r\u00e9analyser les donn\u00e9es enregistr\u00e9es)<\/td>\n<\/tr>\n<tr>\n<td><strong>Impact de calcul<\/strong><\/td>\n<td>Partage des ressources avec la simulation<\/td>\n<td>Aucun impact sur l'ex\u00e9cution de la simulation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Quand utiliser la visualisation in situ<\/h3>\n<ul>\n<li><strong>Simulations Exascale<\/strong> o\u00f9 la bande passante d'E\/S est le facteur limitant<\/li>\n<li><strong>Ph\u00e9nom\u00e8nes transitoires<\/strong> n\u00e9cessitant une fid\u00e9lit\u00e9 temporelle \u00e9lev\u00e9e (p. ex., fronts \u00e0 mouvement rapide, turbulence)<\/li>\n<li><strong>D\u00e9bogage<\/strong> : vous devez intercepter les erreurs avant de perdre des millions d'heures de base<\/li>\n<li><strong>Simulation direction<\/strong> : vous souhaitez ajuster les param\u00e8tres \u00e0 la vol\u00e9e en fonction des r\u00e9sultats interm\u00e9diaires<\/li>\n<li><strong>R\u00e9duction des donn\u00e9es<\/strong> : vous devez extraire des fonctionnalit\u00e9s, des statistiques ou des images et supprimer les donn\u00e9es brutes<\/li>\n<\/ul>\n<h3>Quand le post-traitement a toujours du sens<\/h3>\n<ul>\n<li><strong>Ensembles de donn\u00e9es petits \u00e0 mod\u00e9r\u00e9s<\/strong> qui peuvent \u00eatre stock\u00e9s \u00e0 un prix abordable<\/li>\n<li><strong>Analyse exploratoire<\/strong> o\u00f9 vous devez essayer de nombreuses techniques de visualisation diff\u00e9rentes apr\u00e8s coup<\/li>\n<li><strong>Rendu haute fid\u00e9lit\u00e9<\/strong> qui n\u00e9cessite le jeu de donn\u00e9es complet et ne peut pas \u00eatre fait avec des repr\u00e9sentations r\u00e9duites<\/li>\n<li><strong>Objectifs d'archives<\/strong>\u2014Pr\u00e9servation des donn\u00e9es brutes pour la reproductibilit\u00e9 future<\/li>\n<\/ul>\n<p>En pratique, de nombreuses \u00e9quipes adoptent une <strong>strat\u00e9gie hybride<\/strong>&nbsp;: utilisez in situ pour produire des ensembles de donn\u00e9es r\u00e9duits (par exemple, bases de donn\u00e9es de cin\u00e9ma, statistiques, isosurfaces) et conserver juste assez de donn\u00e9es brutes pour certaines \u00e9tapes de temps, puis effectuer un post-traitement d\u00e9taill\u00e9 sur l'ensemble r\u00e9duit.<\/p>\n<h2>Outils et frameworks populaires pour la visualisation in situ<\/h2>\n<p>Plusieurs cadres open-source matures prennent en charge l'int\u00e9gration in situ :<\/p>\n<h3>Catalyseur Paraview<\/h3>\n<p>Paraview Catalyst est une biblioth\u00e8que l\u00e9g\u00e8re qui permet une analyse in situ \u00e0 l'aide du pipeline VTK. Il fournit une petite API que les simulations en C++, C, Fortran ou Python peuvent appeler pour transmettre des donn\u00e9es aux algorithmes de visualisation de Paraview. Catalyst peut g\u00e9n\u00e9rer des images, extraire des fonctionnalit\u00e9s ou produire des bases de donn\u00e9es cin\u00e9ma pour une exploration ult\u00e9rieure.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Exploit la pleine puissance de VTK et Paraview<\/li>\n<li>Prend en charge les modes \u00e9troitement et l\u00e2chement coupl\u00e9s<\/li>\n<li>D\u00e9veloppement actif et documentation compl\u00e8te<\/li>\n<\/ul>\n<p><strong>Ressources&nbsp;:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paraview.org\/en\/latest\/Catalyst\/index.html\">Documentation de Paraview Catalyst<\/a><\/li>\n<li><a href=\"https:\/\/petrvalenta.eu\/posts\/introduction_to_in_situ_visualization_and_paraview_catalyst\/\">Introduction \u00e0 la visualisation in situ et au catalyseur Paraview<\/a><\/li>\n<\/ul>\n<h3>Visitez Libsim<\/h3>\n<p>Visit propose libsim, un ensemble de biblioth\u00e8ques qui permettent aux simulations de se connecter au moteur de visualisation de Visit. Comme Catalyst, il prend en charge les modes en ligne et en transit. La visite est particuli\u00e8rement forte pour la visualisation parall\u00e8le \u00e0 grande \u00e9chelle et a \u00e9t\u00e9 utilis\u00e9e sur de nombreux syst\u00e8mes de classe de leadership.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Tr\u00e8s \u00e9volutif pour des centaines de milliers de c\u0153urs<\/li>\n<li>Un riche ensemble d'op\u00e9rateurs de visualisation<\/li>\n<li>Forte prise en charge des donn\u00e9es de raffinement de maillage adaptatif (AMR)<\/li>\n<\/ul>\n<p><strong>Ressources&nbsp;:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/groupe-calcul.cnrs.fr\/attachments\/spip\/Documents\/Manifestations\/CIRA2011\/JFavre.pdf\">Visualisation in situ avec visite<\/a><\/li>\n<\/ul>\n<h3>Ascension<\/h3>\n<p>Ascent est une biblioth\u00e8que in situ l\u00e9g\u00e8re et multic\u0153ur con\u00e7ue pour les environnements \u00e0 ressources limit\u00e9es. Il est particuli\u00e8rement efficace pour les applications acc\u00e9l\u00e9r\u00e9es par GPU et peut fonctionner efficacement sur un petit sous-ensemble de n\u0153uds.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>Frais g\u00e9n\u00e9raux minimes<\/li>\n<li>Bonne prise en charge du GPU<\/li>\n<li>Une partie du projet informatique am\u00e9ricain Exascale<\/li>\n<\/ul>\n<h3>damaris<\/h3>\n<p>Damaris se concentre sur l'utilisation de c\u0153urs d\u00e9di\u00e9s pour l'analyse in situ asynchrone, isolant la visualisation de la simulation principale afin de minimiser l'impact sur les performances. Il prend en charge les backends Visit et Paraview.<\/p>\n<p><strong>Principales forces&nbsp;:<\/strong><\/p>\n<ul>\n<li>L'ex\u00e9cution asynchrone r\u00e9duit les interf\u00e9rences de simulation<\/li>\n<li>G\u00e8re le mouvement et la r\u00e9partition des donn\u00e9es<\/li>\n<li>Convient pour les simulations \u00e0 long terme en r\u00e9gime permanent<\/li>\n<\/ul>\n<h3>Sensei et conduit<\/h3>\n<p>Sensei fournit une interface g\u00e9n\u00e9rique qui d\u00e9coupe les simulations \u00e0 partir d'outils in situ sp\u00e9cifiques. Conduit g\u00e8re la description et l'\u00e9change de donn\u00e9es. Cette abstraction permet au m\u00eame code de simulation de fonctionner avec Catalyst, Ascent ou d'autres backends sans changement de code.<\/p>\n<p><strong>Quand choisir&nbsp;:<\/strong> si vous souhaitez \u00e9viter le verrouillage des fournisseurs et prendre en charge plusieurs frameworks in situ.<\/p>\n<h2>D\u00e9fis de mise en \u0153uvre&nbsp;: ce qui peut mal tourner<\/h2>\n<p>L'int\u00e9gration de la visualisation in situ dans une base de code de simulation existante n'est pas triviale. Pr\u00e9parez-vous \u00e0 ces d\u00e9fis communs :<\/p>\n<h3>Contention des ressources et overhead de performances<\/h3>\n<p>La visualisation consomme des cycles de CPU, du temps du GPU et de la m\u00e9moire qui seraient autrement disponibles pour la simulation. Des \u00e9tudes ont montr\u00e9 que les pipelines in situ mal optimis\u00e9s peuvent ralentir les simulations de 20 \u00e0 50 % ou plus. La cl\u00e9 est de <strong>mesure<\/strong> et de <strong>liant<\/strong> les frais g\u00e9n\u00e9raux.<\/p>\n<p><strong>Strat\u00e9gies d'att\u00e9nuation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des modes asynchrones ou en transit pour s\u00e9parer les ressources<\/li>\n<li>Limiter la fr\u00e9quence de visualisation (par exemple, tous les 10e pas de temps)<\/li>\n<li>Utiliser des algorithmes de r\u00e9duction des donn\u00e9es pour r\u00e9duire le volume de traitement<\/li>\n<li>D\u00e9dier un sous-ensemble de c\u0153urs\/GPU exclusivement \u00e0 la visualisation<\/li>\n<\/ul>\n<h3>Empreinte m\u00e9moire<\/h3>\n<p>Le chargement des biblioth\u00e8ques de visualisation \u00e0 c\u00f4t\u00e9 de la simulation augmente l'utilisation de la m\u00e9moire par n\u0153ud. Sur les syst\u00e8mes li\u00e9s \u00e0 la m\u00e9moire, cela peut forcer une r\u00e9duction de la taille du probl\u00e8me par n\u0153ud.<\/p>\n<p><strong>Att\u00e9nuation&nbsp;:<\/strong><\/p>\n<ul>\n<li>Choisissez des cadres l\u00e9gers (Ascent est con\u00e7u pour cela)<\/li>\n<li>Lib\u00e9rez la m\u00e9moire de visualisation rapidement apr\u00e8s utilisation<\/li>\n<li>Consid\u00e9rez les modes de transit o\u00f9 la visualisation s'ex\u00e9cute sur des n\u0153uds distincts<\/li>\n<\/ul>\n<h3>Conversion et interop\u00e9rabilit\u00e9 des donn\u00e9es<\/h3>\n<p>Les codes de simulation utilisent souvent des structures de donn\u00e9es personnalis\u00e9es optimis\u00e9es pour les solveurs PDE. Des outils in situ comme VTK attendent des donn\u00e9es dans des formats sp\u00e9cifiques (par exemple, grilles structur\u00e9es, maillages non structur\u00e9s). L'\u00e9criture d'adaptateurs pour traduire entre ces repr\u00e9sentations peut \u00eatre complexe et peut impliquer des copies approfondies co\u00fbteuses.<\/p>\n<p><strong>Solution&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des couches d'abstraction comme Sensei\/Conduit pour d\u00e9finir un mod\u00e8le de donn\u00e9es commun<\/li>\n<li>Explorez les interfaces z\u00e9ro copie si votre simulation et votre visualisation partagent la m\u00eame disposition sous-jacente<\/li>\n<li>Facteur Adapter le code dans un module distinct pour isoler la complexit\u00e9<\/li>\n<\/ul>\n<h3>\u00c9volutivit\u00e9 parall\u00e8le<\/h3>\n<p>Les algorithmes de visualisation doivent \u00e9voluer \u00e0 la m\u00eame taille que la simulation (potentiellement des millions de rangs MPI). Des op\u00e9rations globales telles que le rendu volumique ou l'extraction d'isossurface dans toutes les donn\u00e9es peuvent devenir des goulots de communication.<\/p>\n<p><strong>Solution&nbsp;:<\/strong><\/p>\n<ul>\n<li>Utilisez des algorithmes de visualisation distribu\u00e9e qui minimisent la communication entre les n\u0153uds<\/li>\n<li>Utiliser la r\u00e9duction des donn\u00e9es ou l'\u00e9chantillonnage pour r\u00e9duire le volume de donn\u00e9es effectif<\/li>\n<li>Envisager des approches hi\u00e9rarchiques : analyse locale d'abord, puis r\u00e9sultats agr\u00e9g\u00e9s<\/li>\n<\/ul>\n<h3>Le probl\u00e8me \"a priori\"<\/h3>\n<p>La visualisation in situ vous oblige \u00e0 d\u00e9cider <strong>avant la course<\/strong> ce qu'il faut visualiser. Si vous r\u00e9alisez plus tard que vous deviez examiner une variable diff\u00e9rente ou appliquer un filtre diff\u00e9rent, les donn\u00e9es brutes ont disparu. Il s'agit de la rigidit\u00e9 fondamentale de l'In-Situ.<\/p>\n<p><strong>Contournement&nbsp;:<\/strong><\/p>\n<ul>\n<li>Enregistrer un ensemble de donn\u00e9es r\u00e9duit mais flexible (par exemple, une base de donn\u00e9es cin\u00e9matographique) qui prend en charge le r\u00e9tablissement ult\u00e9rieur \u00e0 partir de diff\u00e9rents points de vue<\/li>\n<li>Enregistrez p\u00e9riodiquement de petits instantan\u00e9s de donn\u00e9es brutes \u00e0 des pas de temps cl\u00e9s<\/li>\n<li>Utilisez la direction de la simulation pour ajuster dynamiquement les param\u00e8tres de visualisation au fur et \u00e0 mesure de l'ex\u00e9cution<\/li>\n<\/ul>\n<h3>Complexit\u00e9 et fragilit\u00e9 du code<\/h3>\n<p>Un couplage serr\u00e9 signifie que la biblioth\u00e8que de visualisation devient une partie de l'ex\u00e9cutable de simulation. Un bogue dans le code de visualisation peut planter toute la simulation. L'int\u00e9gration augmente \u00e9galement la complexit\u00e9 du code et la charge de maintenance.<\/p>\n<p><strong>Meilleures pratiques&nbsp;:<\/strong><\/p>\n<ul>\n<li>Encapsuler tous les appels in situ derri\u00e8re une interface propre<\/li>\n<li>Gardez le code de visualisation s\u00e9par\u00e9 des principaux solveurs<\/li>\n<li>Fournir une configuration d'ex\u00e9cution pour activer\/d\u00e9sactiver facilement<\/li>\n<li>Test avec la visualisation d\u00e9sactiv\u00e9e pour assurer la stabilit\u00e9 de la simulation<\/li>\n<\/ul>\n<h2>Meilleures pratiques pour une adoption in situ r\u00e9ussie<\/h2>\n<p>Sur la base de l'exp\u00e9rience de la communaut\u00e9 HPC, suivez ces directives pour maximiser le succ\u00e8s&nbsp;:<\/p>\n<h3>1. Commencez par un prototype<\/h3>\n<p>Avant de s'engager dans une int\u00e9gration compl\u00e8te, cr\u00e9ez un petit prototype qui exerce le pipeline de base : Simulation \u2192 Outil in situ \u2192 Image de sortie. Cela valide la cha\u00eene d'outils et r\u00e9v\u00e8le les obstacles d'int\u00e9gration au d\u00e9but.<\/p>\n<h3>2. Adoptez des architectures asynchrones ou hybrides<\/h3>\n<p>\u00c9vitez les modes \u00e9troitement coupl\u00e9s \u00e0 moins que vous n'ayez des preuves solides que les frais g\u00e9n\u00e9raux seront acceptables. Pr\u00e9f\u00e9rez les approches en transit ou asynchrones o\u00f9 la visualisation s'ex\u00e9cute sur des c\u0153urs ou des n\u0153uds d\u00e9di\u00e9s. Cela isole les interf\u00e9rences de performances.<\/p>\n<h3>3. D\u00e9finir des objectifs clairs de r\u00e9duction des donn\u00e9es<\/h3>\n<p>In-situ est plus efficace lorsque vous r\u00e9duisez les donn\u00e9es <em>avant<\/em> de les sauvegarder. D\u00e9cidez d'avance&nbsp;:<\/p>\n<ul>\n<li>De quelles images ou films avez-vous besoin&nbsp;?<\/li>\n<li>Quelles quantit\u00e9s d\u00e9riv\u00e9es (par exemple, flux int\u00e9gr\u00e9s, valeurs maximales) sont essentielles&nbsp;?<\/li>\n<li>Pouvez-vous utiliser des bases de donn\u00e9es de cin\u00e9ma pour une exploration post-hoc flexible&nbsp;?<\/li>\n<\/ul>\n<h3>4. Mesurez tout<\/h3>\n<p>Instruisez votre code pour mesurer&nbsp;:<\/p>\n<ul>\n<li>Temps de simulation avec et sans activ\u00e9 in situ<\/li>\n<li>Utilisation de la m\u00e9moire par n\u0153ud<\/li>\n<li>Fr\u00e9quence et dur\u00e9e des pauses de visualisation<\/li>\n<li>Qualit\u00e9 et utilit\u00e9 des produits produits<\/li>\n<\/ul>\n<p>Sans mesures, vous ne pouvez pas dire si in situ aide ou fait mal.<\/p>\n<h3>5. Tirer parti de l'infrastructure existante<\/h3>\n<p>Ne r\u00e9inventez pas la roue. Utilisez des cadres \u00e9tablis (Catalyst, Ascent, Damaris) plut\u00f4t que d'\u00e9crire du code in situ personnalis\u00e9 \u00e0 partir de z\u00e9ro. Ils g\u00e8rent de nombreux d\u00e9tails de bas niveau (communication MPI, r\u00e9partition des donn\u00e9es, cellules fant\u00f4mes) susceptibles d'\u00eatre impl\u00e9ment\u00e9es.<\/p>\n<h3>6. Plan de pilotage de simulation<\/h3>\n<p>Si vous souhaitez diriger des simulations de mani\u00e8re interactive, concevez votre pipeline in situ pour accepter les messages de contr\u00f4le externes. Des outils comme Icarus (pour Paraview) offrent des capacit\u00e9s de pilotage avec des changements de code minimes.<\/p>\n<h3>7. Utilisez des cellules fant\u00f4mes pour des limites parall\u00e8les<\/h3>\n<p>Lorsque votre domaine de simulation est d\u00e9compos\u00e9 entre les rangs MPI, les algorithmes de visualisation qui n\u00e9cessitent des donn\u00e9es de voisinage (par exemple, des gradients, des isosurfaces) doivent communiquer au-del\u00e0 des fronti\u00e8res du sous-domaine. Pr\u00e9calculer et stocker des \"cellules fant\u00f4mes\" pour \u00e9viter les communications r\u00e9p\u00e9t\u00e9es lors de la visualisation.<\/p>\n<h3>8. Gardez la visualisation facultative<\/h3>\n<p>Enveloppez tous les appels in situ derri\u00e8re un indicateur d'ex\u00e9cution. La simulation doit fonctionner normalement avec in situ d\u00e9sactiv\u00e9. Ceci est essentiel pour le d\u00e9bogage et pour les sc\u00e9narios o\u00f9 vous souhaitez ex\u00e9cuter sans les frais g\u00e9n\u00e9raux.<\/p>\n<h2>Applications du monde r\u00e9el&nbsp;: o\u00f9 brille in situ<\/h2>\n<p>La visualisation in situ est devenue indispensable dans plusieurs domaines scientifiques :<\/p>\n<h3>Dynamique des fluides computationnelle (CFD)<\/h3>\n<p>Les simulations d'\u00e9coulement turbulent g\u00e9n\u00e8rent des champs 3D massifs de vitesse et de pression. La visualisation in situ peut extraire des tranches 2D, des lignes de courant ou des c\u0153urs Vortex en temps r\u00e9el, permettant aux ing\u00e9nieurs de surveiller la s\u00e9paration des flux, les ondes de choc ou l'instabilit\u00e9 de la combustion au fur et \u00e0 mesure de leur d\u00e9veloppement.<\/p>\n<h3>Astrophysique et cosmologie<\/h3>\n<p>Les simulations cosmologiques avec Adaptive Mesh Refinement (AMR) suivent les halos de mati\u00e8re noire et les densit\u00e9s de gaz sur des milliards d'ann\u00e9es. L'analyse in situ identifie les halos, classe les structures et suit les fusions \u00e0 haute r\u00e9solution temporelle, des t\u00e2ches qui seraient impossibles avec des instantan\u00e9s enregistr\u00e9s peu fr\u00e9quents.<\/p>\n<h3>Dynamique mol\u00e9culaire et science des mat\u00e9riaux<\/h3>\n<p>Les ensembles d'ex\u00e9cutions de dynamiques mol\u00e9culaires peuvent \u00eatre surveill\u00e9s in situ pour d\u00e9tecter des \u00e9v\u00e9nements rares tels que la nucl\u00e9ation, les transitions de phase ou la nucl\u00e9ation de luxation. Les chercheurs peuvent arr\u00eater les simulations t\u00f4t lorsqu'un \u00e9v\u00e9nement se produit, \u00e9conomisant des ressources de calcul.<\/p>\n<h3>M\u00e9t\u00e9o et informatique urgente<\/h3>\n<p>Les pr\u00e9visions m\u00e9t\u00e9orologiques d'ensemble pour les ouragans ou les incendies de for\u00eat n\u00e9cessitent l'ex\u00e9cution de dizaines de simulations en parall\u00e8le. L'analyse topologique in situ identifie le r\u00e9sultat le plus probable de l'ensemble, fournissant des informations essentielles pour les d\u00e9cisions d'urgence avant que l'ensemble de donn\u00e9es complet ne soit \u00e9crit.<\/p>\n<h3>Visualisation des performances<\/h3>\n<p>Ironiquement, des techniques in situ sont \u00e9galement utilis\u00e9es pour visualiser les performances du syst\u00e8me HPC lui-m\u00eame, en surveillant la bande passante de la m\u00e9moire, les mod\u00e8les de communication et l'\u00e9quilibre de charge lors de l'ex\u00e9cution pour guider l'optimisation.<\/p>\n<h2>Mise en route : une liste de contr\u00f4le pratique<\/h2>\n<p>Si vous envisagez d'ajouter une visualisation in situ \u00e0 votre code de simulation, suivez ce plan \u00e9tape par \u00e9tape&nbsp;:<\/p>\n<h3>Phase 1 : \u00e9valuation (1 \u00e0 2 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Quantifiez votre probl\u00e8me d'E\/S<\/strong>&nbsp;: combien de donn\u00e9es g\u00e9n\u00e8rez-vous&nbsp;? Combien de temps dure l'\u00e9criture ? La r\u00e9duction de la production permettrait-elle de gagner beaucoup de temps ?<\/li>\n<li>[ ] <strong>Identifier les objectifs de visualisation<\/strong>&nbsp;: de quelles images ou analyses sp\u00e9cifiques avez-vous besoin pendant la course&nbsp;? (par exemple, \"2d tranche de temp\u00e9rature toutes les 100 \u00e9tapes\", \"pression maximale dans le temps\")<\/li>\n<li>[ ] <strong>Outils d'enqu\u00eate<\/strong>&nbsp;: passez en revue Paraview Catalyst, visitez libsim, Ascent et Damaris. Qu'est-ce qui correspond \u00e0 votre langage de programmation et \u00e0 votre environnement HPC&nbsp;?<\/li>\n<li>[ ] <strong>V\u00e9rifier la prise en charge du syst\u00e8me<\/strong>&nbsp;: votre centre de supercomputation prend-il en charge les flux de travail in situ&nbsp;? Les biblioth\u00e8ques requises sont-elles install\u00e9es&nbsp;?<\/li>\n<\/ul>\n<h3>Phase 2 : prototype (2 \u00e0 4 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Mettre en place un exemple minimal<\/strong>&nbsp;: prenez un petit cas de test (par exemple, un simple solveur d'\u00e9quations de chaleur) et int\u00e9grez le cadre in situ choisi pour produire une seule image.<\/li>\n<li>[ ] <strong>Mesure de base de la ligne de base<\/strong>&nbsp;: comparez le temps d'ex\u00e9cution de la simulation avec et sans activ\u00e9 in situ. Les frais g\u00e9n\u00e9raux sont-ils acceptables (&lt;&nbsp;; 10 \u00e0 15&nbsp;%)&nbsp;?<\/li>\n<li>[ ] <strong>Testez la r\u00e9duction des donn\u00e9es<\/strong>&nbsp;: exp\u00e9rimentez avec diff\u00e9rentes strat\u00e9gies de r\u00e9duction (sous-\u00e9chantillonnage, isosurfaces, agr\u00e9gats statistiques). La production r\u00e9pond-elle \u00e0 vos besoins scientifiques ?<\/li>\n<li>[ ] <strong>V\u00e9rifier l'\u00e9volutivit\u00e9<\/strong>&nbsp;: ex\u00e9cutez le prototype sur 1, 10, 100 rangs. L'\u00e9chelle a\u00e9rienne s'adapte-t-elle de mani\u00e8re lin\u00e9aire ou explose-t-elle \u00e0 plus grande \u00e9chelle&nbsp;?<\/li>\n<\/ul>\n<h3>Phase 3 : Int\u00e9gration (4 \u00e0 8 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Design d'une couche d'abstraction<\/strong>&nbsp;: cr\u00e9ez un module qui encapsule tous les appels in situ derri\u00e8re une simple API (par exemple, <code>beginTimestep()<\/code>, <code>addData(field)<\/code>, <code>execute()<\/code>, <code>endTimestep()<\/code>). Cela facilite l'\u00e9change de frameworks ult\u00e9rieurement.<\/li>\n<li>[ ] <strong>Ajouter une configuration<\/strong>&nbsp;: utilisez des indicateurs d'ex\u00e9cution ou des variables d'environnement pour contr\u00f4ler la fr\u00e9quence in situ, les formats de sortie et les variables \u00e0 capturer.<\/li>\n<li>[ ] <strong>Mise en \u0153uvre d'une d\u00e9gradation gracieuse<\/strong>&nbsp;: assurez-vous que la simulation se poursuit m\u00eame en cas d'\u00e9chec in situ (par exemple, \u00e9crivez un avertissement mais n'interrompez pas).<\/li>\n<li>[ ] <strong>Int\u00e9grer avec les E\/S existantes<\/strong>&nbsp;: d\u00e9cidez comment les sorties in situ (images, bases de donn\u00e9es) coexisteront avec tous les vidages de donn\u00e9es de post-traitement existants.<\/li>\n<li>[ ] <strong>Ajouter une direction si n\u00e9cessaire<\/strong>&nbsp;: si la direction interactive est un objectif, impl\u00e9mentez des rappels ou des messages de transmission pour autoriser les changements de param\u00e8tres externes.<\/li>\n<\/ul>\n<h3>Phase 4 : Validation et production (2 \u00e0 4 semaines)<\/h3>\n<ul>\n<li>[ ] <strong>Ex\u00e9cutez des tests de bout en bout<\/strong>&nbsp;: ex\u00e9cutez une simulation scientifique compl\u00e8te avec l'activation in situ. V\u00e9rifiez que les sorties sont correctes et que la simulation se termine dans un d\u00e9lai acceptable.<\/li>\n<li>[ ] <strong>Test de contrainte<\/strong>&nbsp;: repoussez les limites&nbsp;: s'ex\u00e9cuter sur le nombre de c\u0153urs complet pr\u00e9vu, avec une taille maximale du probl\u00e8me. Surveiller la m\u00e9moire, la communication et la stabilit\u00e9.<\/li>\n<li>[ ] <strong>Documenter le flux de travail<\/strong>&nbsp;: r\u00e9diger des instructions claires pour les utilisateurs&nbsp;: comment activer in situ, quelles options sont disponibles, o\u00f9 les sorties sont \u00e9crites, comment les interpr\u00e9ter.<\/li>\n<li>[ ] <strong>Formez les utilisateurs<\/strong>&nbsp;: assurez-vous que les membres de l'\u00e9quipe comprennent le flux de travail in situ et peuvent r\u00e9soudre des probl\u00e8mes courants.<\/li>\n<\/ul>\n<h2>Des pi\u00e8ges courants et comment les \u00e9viter<\/h2>\n<table>\n<thead>\n<tr>\n<th>Pi\u00e8ge<\/th>\n<th>Sympt\u00f4me<\/th>\n<th>Pr\u00e9vention \/ Correction<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Frais g\u00e9n\u00e9raux illimit\u00e9s<\/strong><\/td>\n<td>La simulation ralentit par &gt; 30&nbsp;%<\/td>\n<td>limiter la fr\u00e9quence in situ ; utiliser en transit&nbsp;; Profil pour trouver des goulots d'\u00e9tranglement<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9puisement de m\u00e9moire<\/strong><\/td>\n<td>Emplois tu\u00e9s par Oom Killer<\/td>\n<td>R\u00e9duire le volume de donn\u00e9es transmis&nbsp;; Utilisez moins de c\u0153urs d\u00e9di\u00e9s ; Passer en mode l\u00e2chement coupl\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>Variables manquantes<\/strong><\/td>\n<td>R\u00e9alisez plus tard que vous deviez \u00e9conomiser la quantit\u00e9 x<\/td>\n<td>Enregistrez r\u00e9guli\u00e8rement de petits instantan\u00e9s bruts ; Utilisez le format cin\u00e9ma pour plus de flexibilit\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00c9chelle m\u00e9diocre<\/strong><\/td>\n<td>Le temps sur place augmente avec le nombre de c\u0153urs<\/td>\n<td>Utilisez des algorithmes de visualisation distribu\u00e9e ; donn\u00e9es de r\u00e9partition; Agr\u00e9ger localement en premier<\/td>\n<\/tr>\n<tr>\n<td><strong>Simulation des plantages de la visualisation<\/strong><\/td>\n<td>Un mauvais appel de visualisation interrompt toute la course<\/td>\n<td>Enveloppez les appels in situ dans try-catch ; D\u00e9sactiver in situ en cas d'\u00e9chec&nbsp;; Gardez le code de simulation s\u00e9par\u00e9<\/td>\n<\/tr>\n<tr>\n<td><strong>Les fichiers de sortie s'\u00e9crasent<\/strong><\/td>\n<td>Plusieurs ex\u00e9cutions \u00e9crivent sur les m\u00eames images<\/td>\n<td>Inclure les horodatages ou les ID de travaux dans les noms de fichiers de sortie&nbsp;; Utiliser des r\u00e9pertoires de sortie distincts<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusion&nbsp;: la visualisation in situ vous convient-elle&nbsp;?<\/h2>\n<p>La visualisation in situ est un puissant paradigme pour lutter contre le d\u00e9luge de donn\u00e9es du calcul scientifique moderne. En traitant les donn\u00e9es en m\u00e9moire pendant les cycles de simulation, vous pouvez surmonter les goulots d'\u00e9tranglement des E\/S, r\u00e9duire les co\u00fbts de stockage et obtenir des informations en temps r\u00e9el sur vos mod\u00e8les. Cependant, ce n'est pas une solution miracle&nbsp;: il introduit de la complexit\u00e9, n\u00e9cessite des d\u00e9cisions de conception initiales et peut avoir un impact sur les performances de la simulation si elle est mal impl\u00e9ment\u00e9e.<\/p>\n<p>Pour les groupes de recherche ex\u00e9cutant des simulations PDE \u00e0 grande \u00e9chelle sur des syst\u00e8mes HPC, en particulier ceux qui s'approchent d'Exascale, l'apprentissage et l'adoption de techniques in situ sont de plus en plus essentiels. Commencez petit avec un prototype, mesurez rigoureusement et augmentez d\u00e9lib\u00e9r\u00e9ment. L'investissement est payant dans des cycles d'it\u00e9ration plus rapides, des informations scientifiques plus riches et la possibilit\u00e9 d'ex\u00e9cuter des simulations qui seraient autrement impossibles en raison du volume des donn\u00e9es.<\/p>\n<h2>Guides connexes<\/h2>\n<ul>\n<li><a href=\"\/visualizing-simulation-results-effectively\/\">visualiser efficacement les r\u00e9sultats de la simulation<\/a> - Principes g\u00e9n\u00e9raux pour transformer les donn\u00e9es de simulation en visuels exploitables.<\/li>\n<li><a href=\"\/illuminator-distributed-visualization-library\/\">Biblioth\u00e8que de visualisation distribu\u00e9e d'illuminateur<\/a> - Vue d'ensemble d'un outil sp\u00e9cialis\u00e9 pour le rendu et le stockage parall\u00e8les.<\/li>\n<li><a href=\"\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">Gestion des probl\u00e8mes de PDE \u00e0 grande \u00e9chelle<\/a> \u2013 Strat\u00e9gies pour r\u00e9soudre efficacement les syst\u00e8mes massifs.<\/li>\n<li><a href=\"\/understanding-phase-field-models-in-materials-science\/\">comprendre les mod\u00e8les de champ de phase<\/a> - un domaine d'application commun pour les simulations PDE.<\/li>\n<li><a href=\"\/using-fipy-for-phase-field-modeling\/\">Utilisation de FIPY pour la mod\u00e9lisation en champ de phase<\/a> \u2013 Impl\u00e9mentation pratique en Python.<\/li>\n<\/ul>\n<h2>Prochaines \u00e9tapes<\/h2>\n<p>Pr\u00eat \u00e0 essayer la visualisation in situ ? Commencez par&nbsp;:<\/p>\n<ol>\n<li><strong>\u00c9valuation de vos goulots d'\u00e9tranglement d'E\/S actuels<\/strong>&nbsp;: ex\u00e9cutez un outil de profilage (par exemple, Darshan) sur une simulation existante pour quantifier le temps pass\u00e9 \u00e0 \u00e9crire des donn\u00e9es.<\/li>\n<li><strong>Installation de Paraview Catalyst ou Ascent<\/strong> sur votre syst\u00e8me de d\u00e9veloppement et ex\u00e9cution des didacticiels.<\/li>\n<li><strong>Cr\u00e9er un prototype minimal<\/strong> avec un simple cas de test pour mesurer les frais g\u00e9n\u00e9raux et valider la cha\u00eene d'outils.<\/li>\n<li><strong>Attraction<\/strong> \u00e0 l'\u00e9quipe d'assistance HPC de votre \u00e9tablissement&nbsp;: ils ont souvent une expertise et des exemples de codes pour vous aider \u00e0 d\u00e9marrer.<\/li>\n<\/ol>\n<p>Si vous avez besoin d'aide pour int\u00e9grer la visualisation in situ dans votre logiciel de recherche, contactez-nous pour une consultation et une formation adapt\u00e9es aux \u00e9quipes de calcul scientifique.<\/p>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 13<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>tl;dr La visualisation in situ traite et analyse les donn\u00e9es de simulation pendant que la simulation s&rsquo;ex\u00e9cute, directement en m\u00e9moire, au lieu d&rsquo;\u00e9crire des r\u00e9sultats bruts sur le disque pour un post-traitement ult\u00e9rieur. Cette approche est essentielle pour le calcul exascale o\u00f9 la bande passante d&rsquo;E\/S ne peut pas suivre la g\u00e9n\u00e9ration de donn\u00e9es. En [&hellip;]<\/p>\n","protected":false,"raw":""},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/matforge.org\/?p=238","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1230","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l&#039;analyse lors des cycles de simulation pour surmonter les goulots d&#039;\u00e9tranglement d&#039;E\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l&#039;analyse lors des cycles de simulation pour surmonter les goulots d&#039;\u00e9tranglement d&#039;E\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:28:40+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul\",\"datePublished\":\"2026-08-21T14:28:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/\"},\"wordCount\":4416,\"commentCount\":0,\"articleSection\":[\"Simulation &amp; Projets de mod\u00e9lisation\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/\",\"name\":\"Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:28:40+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"description\":\"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l'analyse lors des cycles de simulation pour surmonter les goulots d'\u00e9tranglement d'E\\\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/in-situ-visualization-integration-computation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC","description":"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l'analyse lors des cycles de simulation pour surmonter les goulots d'\u00e9tranglement d'E\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/","og_locale":"fr_FR","og_type":"article","og_title":"Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC","og_description":"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l'analyse lors des cycles de simulation pour surmonter les goulots d'\u00e9tranglement d'E\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.","og_url":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:28:40+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"steven","Dur\u00e9e de lecture estim\u00e9e":"22 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul","datePublished":"2026-08-21T14:28:40+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/"},"wordCount":4416,"commentCount":0,"articleSection":["Simulation &amp; Projets de mod\u00e9lisation"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/","url":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/","name":"Visualisation in situ : analyse en temps r\u00e9el pour les simulations HPC","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:28:40+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"description":"D\u00e9couvrez comment la visualisation in situ int\u00e8gre l'analyse lors des cycles de simulation pour surmonter les goulots d'\u00e9tranglement d'E\/S. Comparez des outils tels que Paraview Catalyst, apprenez les meilleures pratiques et d\u00e9cidez quand utiliser le post-traitement in situ.","breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/in-situ-visualization-integration-computation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"Visualisation in situ : Int\u00e9gration de la visualisation pendant le calcul"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1230"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1230\/revisions"}],"predecessor-version":[{"id":1360,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1230\/revisions\/1360"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}