L'acquisition et la gestion des données du Tokamak TCV l'EPFL

par Xavier Llobet, CRPP

TABLE DES MATIERES


Vue avec l'outil Traverser de l'arbre TCV_SHOT, avec les sous-arbres principaux et quelques noeuds. Les noeuds dont le nom est précédé de ":" contiennent de l'information (une expression TDI, en général); les autres ne sont que des points de branchement. Les points de suspension "..." indiquent que ce noeud a des sous-noeuds. La fenêtre montre l'expression TDI contenue dans un des noeuds.

Introduction

Le Tokamak TCV - Tokamak à configuration variable - est en fonctionnement depuis plus de deux ans. Cette machine a pour but principal l'étude des plasmas à section fortement allongée. Ces recherches sont intégrées dans les programmes européen et mondial dont l'objectif est de construire un réacteur thermonucléaire.
D'autres articles sur l'environnement informatique du TCV ont déjà été publiés dans le Flash informatique (FI1/90: Acquisition et commande du Tokamak TCV, FI8/90: Un multiplicateur matriciel hybride pour le contrôle du plasma dans le tokamak TCV, FI7/92: Le contrôle du Tokamak TCV, FI8/93: Présentation de l'informatique du CRPP). Je ne (re)présenterai donc pas le TCV, mais j'essayerai d'approfondir les aspects de l'acquisition et de la gestion des données expérimentales.
Le TCV est une machine qui fonctionne en mode pulsé: les paramètres du tir sont d'abord établis, puis suit une étape de préparation et vérification de tous les sous-systèmes, qui dure quelques minutes; le déroulement du tir dure environ 30 secondes, quoique le tir en soi ne dure qu'entre une et deux secondes; et il y a finalement le transfert vers les ordinateurs des données obtenues par les modules d'acquisition (encore quelques minutes). Le tout prend autour de sept minutes, et chaque tir génère quelques 10 MB de données. Les utilisateurs de la machine doivent être capables de visualiser les résultats du tir aussi vite que possible, pour pouvoir corriger les paramètres du tir suivant.
Un des buts particuliers du système d'acquisition de données du TCV est de pouvoir répéter, dans la mesure de ce qui est physiquement possible, n'importe quel tir passé. En fait, la répétition journalière d'un type précis de tir (le tir standard) permet de suivre l'évolution (et éventuelle dégradation) des caractéristiques physiques de la machine.

L'environnement informatique

L'information décrivant un tir du TCV comprend la liste des paramètres désirés pour ce tir (courant électrique circulant dans le plasma, durée du tir, densité, position et forme du plasma, etc.), les paramètres de tous les appareils de mesure et modules d'acquisition (position, fréquence d'acquisition, instants de démarrage et d'arrêt, gains des amplificateurs, etc.), et les données acquises. Toute cette information est conservée dans des fichiers, gérés par un environnement logiciel appelé MDS+ (Model Driven System, le + étant la marque d'une deuxième génération de ce logiciel) développé principalement au Plasma Fusion Center du Massachusetts Institute of Technology.
L'environnement MDS+ est basé sur le concept du modèle d'une expérience, qui agit comme une interface entre l'expérimentateur et le processus d'acquisition. Le modèle est une représentation hiérarchique de l'expérience: MDS+ organise toute l'information en forme d'arbres et sous-arbres. Un arbre est la plus grande unité logique, et correspond à une expérience. Dans notre cas nous avons un arbre principal, TCV_SHOT, qui contient des sous-arbres et des noeuds. Chaque sous-arbre contient des noeuds (et éventuellement d'autres arbres, mais il n'est pas conseillé de multiplier les sous-arbres).
Les noeuds peuvent avoir à leur tour des sous-noeuds et, ce qui est important, peuvent contenir de l'information. Cette information peut être des données expérimentales, des paramètres liés à la description d'appareils, ou d'actions d'acquisition et d'analyse de données à faire.
Plus généralement, un noeud peut contenir soit une suite d'instructions qui, une fois évaluée, donne comme résultat une ou un ensemble de données (un nombre, une chaîne de caractères, une matrice), soit une action exécutable (procédure, routine, batch, etc.). En fait, cette distinction n'est pas, en soi, très significative, car la suite d'instructions peut contenir elle-même l'exécution d'une procédure. Mais les noeuds marqués comme exécutables peuvent être associés à une phase et à un numéro de séquence. Je reviendrai après sur l'utilisation de ces possibilités.
Les instructions sont écrites dans un langage propre, appelé TDI (Tree Data Interface, développé à Los Alamos National Laboratory). Ce langage permet d'écrire des expressions qui utilisent des constantes, des variables, des résultats d'autres noeuds et des fonctions prédéfinies écrites en TDI ou en d'autres langages et compilées séparément. En fait, TDI est un langage très flexible et puissant; il est également utilisé au CRPP pour piloter un appareil de mesure.
Pour donner un exemple très simple d'une expression TDI, supposons que le noeud GAIN contient le nombre 42.0, le noeud DONNÉES le vecteur
[0.1,0.2,0.3,0.25,0.15],

le noeud TEMPS le vecteur des temps d'acquisition
[0.0,0.01,0.02,0.04,0.05],

et le noeud COURANT l'expression
Build_Signal($VALUE*GAIN,DONNEES,TEMPS)

c'est-à-dire, une association entre les temps de TEMPS et le produit de GAIN et DONNÉES (dans la fonction TDI Build_Signal, la $VALUE pointe sur le deuxième argument de la fonction, ici DONNÉES). Alors une évaluation de COURANT[0.02] donnera 12.6 . Ceci permet une très grande flexibilité, car il n'y a qu'à changer en un seul endroit la valeur de GAIN dans l'arbre pour que tous les appels aux noeuds qui en dépendent soient évalués correctement. Chaque module d'acquisition est décrit dans l'arbre par un bloc de noeuds, différent pour chaque type de module, qui contiennent les paramètres nécessaires pour son initialisation (fréquence d'acquisition, type de synchronisation, nombre de canaux, nombre d'échantillons, etc.), pour le transfert des données (c'est-à-dire, pour le stockage) et pour leur interprétation (temps de déclenchement, par exemple). Il y a aussi les noeuds qui vont contenir les données elles-mêmes.

Réalisation d'un tir

Le processus d'acquisition est déterminé par le contenu du modèle. Le modèle est aussi utilisé comme moule pour les fichiers de chaque tir, où toute l'information du tir est stockée et disponible pour l'analyse postérieure.
Toutes les valeurs prédéterminées des paramètres sont introduites dans l'arbre modèle, dont on fait une copie, numérotée avec le numéro du tir. Un programme, le , parcourt l'arbre, décèle tous les noeuds exécutables et les ordonne par phase et séquence. Le physicien en charge de commander la machine (pilote) peut alors décider d'exécuter les phases correspondantes à l'initialisation de tous les appareils de mesure et systèmes de contrôle. Dans chaque phase, les tâches sont envoyées par le dispatcher, par ordre de séquence, aux différents serveurs qui vont les exécuter. Une des tâches est, par exemple, de copier sur l'arbre le contenu, à ce moment précis, des bases de données VSYSTEM, qui contiennent les variables utilisées pour le contrôle et la surveillance de la machine (voire l'article du Flash informatique 7/92).
Quand tout est prêt, le pilote enclenche l'horloge qui va distribuer des impulsions de temps sur un réseau de temporisation (standard RS485, comme le réseau BITBUS utilisé pour le contrôle). Les différents contrôleurs, appelés , de ce réseau sont munis de compteurs; à l'initialisation, une valeur est chargée dans chaque compteur, et ils sont décrémentés à chaque impulsion de l'horloge. Quand le zéro est atteint, une impulsion de déclenchement () est envoyée sur l'appareil correspondant.
Les modules d'acquisition ont leur propre mémoire où les données sont emmagasinées pendant le tir. Dans la phase de stockage, ces données sont transférées par les serveurs, toujours par ordre de séquence des noeuds exécutables de cette phase, aux noeuds correspondants.
On peut à ce moment visualiser les données, soit brutes soit transformées par une expression TDI contenue dans un noeud. Mais le travail le plus important est fait par des programmes d'analyse qui tournent, automatiquement ou à la demande, une fois que toutes les données sont sur les disques des ordinateurs. Les expressions TDI sont évaluées chaque fois qu'un tir est ouvert: les résultats ne sont pas conservés. Mais lorsque l'analyse des données nécessite des ressources informatiques importantes, il est possible de créer des noeuds qui écrivent leurs résultats sur un autre noeud à la première évaluation, et les rappellent ensuite au besoin.

Gestion des données

Les données sont directement accessibles à tous les utilisateurs des deux clusters VMS du CRPP (MDS+ ne tourne, pour le moment, que sous VMS; son transfert partiel à LINUX est en cours). L'outil le plus simple de visualisation est le , développé au PFC-MIT, qui permet d'afficher, sur plusieurs panneaux (jusqu'à 4 colonnes de 16 panneaux) de la même fenêtre, les résultats d'expressions TDI; chaque panneau peut éventuellement se référer à un arbre et à un tir différent.
Par moyen d'appels à des sous-routines, l'utilisateur peut ouvrir et fermer les arbres et sous-arbres de MDS+ et évaluer des expressions TDI, dans le langage de son choix (C, FORTRAN, IDL, MATLAB). Il peut évidemment prendre les données qui l'intéressent, les écrire dans un fichier, et qu'il peut envoyer à une autre machine où ces données pourront être décortiquées à son aise.
Les résultats des analyses qui sont jugées intéressantes sont écrits dans un sous-arbre, et donc mis automatiquement à la disposition de tous les utilisateurs.
Aujourd'hui, un tir de TCV peut produire jusqu'à 12 MB de données comprimées (typiquement la compression est d'un facteur 3), quoique la taille typique est plutôt de 9 MB, et un tir raté (sans acquisition) prend un peu plus de 2 MB.
Les fichiers sont gardés sur un disque de 3 GB, ce qui représente quelques 300 tirs. Les fichiers sont migrés sur d'autres disques de 10 GB (il y en a trois, pour le moment) et sur NESTOR, qui est utilisé comme archive. La récente acquisition d'une unité locale de sauvegarde sur bande magnétique permettra une plus grande flexibilité et sécurité de la gestion des fichiers.

Conclusion

Depuis Novembre 1992, le TCV a produit autour de 30 GB de données. Mais de nouveaux diagnostics vont être installés, les fréquences d'acquisition désirées ne peuvent qu'augmenter, et l'utilisation de caméras vidéo est très proche, ce qui fait que la taille des données des tirs va augmenter considérablement. Le volume des données engendrées par le TCV pendant sa vie utile est estimé être de l'ordre d'1 TB. Heureusement, les capacités des unités de stockage (disques magnétiques et optiques, bandes, ?) semblent augmenter plus vite encore que notre capacité de générer de l'information utile (et certainement, que nos facultés de l'assimiler, la comprendre et l'interpréter).

Remerciements

Je voudrais remercier Tom Fredian et Josh Stillerman, du PFC-MIT, les concepteurs et développeurs du MDS original, qui représentent ma source d'information, aide et dépannage, et tout ceci en mode presque interactif! Leur aide et leur disponibilité ont été indispensables dans l'établissement du système d'acquisition de données du TCV.


article paru dans du 21 mars 1995