Auteur
Article
PYRAME :
la DAQ dans tous ses états
PYRAME est une suite logicielle dédiée à l’informatique online, développée au Laboratoire Leprince-Ringuet (LLR, CNRS/École polytechnique) . Elle permet de configurer et de piloter les équipements électroniques qui instrumentent les prototypes de détecteurs de particules.
Et aussi d’acquérir leurs données et de les traiter en temps réel. La stratégie de Pyrame est de toujours favoriser l’évolutivité et la souplesse d’utilisation, mais sans sacrifier la pérennité et la stabilité du système. La motivation pour un tel développement provient d’un manque dans l’offre de tels frameworks ayant toutes ces caractéristiques.
L’offre s’articulait alors autour de deux pôles, l’un formé par les logiciels très souples comme Labview avec l’inconvénient d’une faible pérennité, due aux changements très fréquents de version et à la programmation graphique, l’autre, formé de logiciels très puissants, dédiés aux grands détecteurs comme ceux du Cern, performants et offrant de nombreuses fonctionnalités mais peu adaptables aux conditions expérimentales. PYRAME est une tentative de synthèse de ces deux approches, gardant le meilleur des deux pôles.
Elle s’appuie sur une brique de base, nommé le module de commande. Celui-ci reçoit des commandes sur la base d’un protocole spécifique (basé sur XML et TCP) et les exécute dans une machine virtuelle. Cette étape de virtualisation permet de confiner l’exécution, et de proposer de nombreux langages aux développeurs de nouveaux modules (Python, C, C++, Lua, R, Shell). Le module de commande est hautement optimisé pour offrir une latence minimale à l’exécution (de l’ordre de 40 micro-secondes en C jusqu’à 120 micro-secondes pour le Shell). Il fournit également un environnement sécurisé de stockage des paramètres pour les commandes, pouvant être synchronisé en temps-réel avec le module de configuration.
Les modules sont interconnectés via Internet, ce qui leur permet de piloter des systèmes arbitrairement complexes, et éventuellement dispersés géographiquement. On peut les piloter globalement à travers des interfaces graphiques ou des scripts pour les comportements les plus complexes.
Le cœur du framework est constitué d’un grand nombre de modules permettant de piloter des appareils standards sur nos bancs de test :
- Alimentations haute et basse tension (Agilent, CAEN, Hameg…),
- Générateurs de signaux (Agilent),
- Moteurs et platines de déplacement (Newport, Thorlabs),
- Stations de test sous pointe (Signatone),
- Oscilloscopes numériques (Lecroy),
- Gaussmètres (Lakeshore),
- Multimètres (Keithley),
- Pompes à vides,
- Sondes de température et de pression.
Et bien sûr, les composants spécifiques de détection de particules (circuits intégrés) et en particulier ceux qui sont développés par le laboratoire Omega (Organisation de micro-électronique générale avancée, CNRS/École polytechnique).
Un système tel que Pyrame est fréquemment utilisé au sein d’une expérience conjointement avec d’autres logiciels de pilotage. C’est pourquoi PYRAME est facile à interfacer avec de nombreux langages (C,C++,Python, R), et systèmes (Tango, OPC-UA, XDAQ), ce qui facilite son intégration. Son module de commande est également suffisamment simple pour pouvoir être embarqué directement dans de l’électronique. On peut ainsi utiliser toute carte à base de processeurs ARM (type Raspberry-Pi) ou même des cartes plus légères comme les Arduinos, grâce à une librairie dédiée.
Afin de faciliter la configuration lorsque les systèmes sont complexes, PYRAME fournit un module spécifique de configuration centralisée. Celui-ci permet à partir d’un simple fichier XML de distribuer la configuration à tous les modules en fonction de leurs besoins opérationnels. Il est également synchronisé avec les modules pour répercuter en temps réel les modifications de configuration demandées par l’utilisateur. Lors de chaque prise de données, un copie de ce fichier est effectuée, permettant de connaitre avec précision les conditions expérimentales correspondantes.
Une autre fonctionnalité intéressante de PYRAME est sa chaîne d’acquisition, permettant de récolter et de stocker des données avec un débit maximum de 4Gb/s. Elle est basée sur un système de plugins, qui permet d’acquérir des données sur des supports très divers (bus série ou parallèle, réseaux, capteurs…). L’utilisation de ces différents supports n’est pas exclusive, rendant ainsi la chaîne véritablement multimédia et multiformat.
Les données collectées sont ensuite distribuées par un bus logiciel, selon plusieurs modalités. Tout d’abord un stockage sur disque et une distribution par mémoires partagées pour permettre un traitement local à haut débit, puis une distribution par réseau pour effectuer des traitements distants si nécessaire.
Un système de décodeurs en ligne permet également de transformer les données brutes en données structurées et de les mettre à disposition de tout programme de traitement via un mécanisme appelé dispatcher. Celui-ci permet de distribuer ces données au rythme des programmes de traitement, sans risque d’engorgement de la chaîne par un mécanisme de sub-sampling. Les programmes de traitement peuvent également distribuer leurs résultats via ce mécanisme permettant ainsi de former de véritable chaînes de traitement des données (pipeline).
Le système PYRAME est utilisé sur de nombreux bancs de test au LLR et dans ses laboratoires partenaires. En particulier, il est utilisé de manière exclusive pour tous les développements du SiW-Ecal, le prototype de calorimètre électromagnétique développé au LLR pour le futur collisionneur linéaire (ILC). Pour ce prototype, une DAQ générique (chaîne d’acquisition formée de cartes électroniques) a été développée.
Pour ce prototype, de nombreux programmes de monitoring (basés sur le mécanisme de dispatcher) ont été conçus. Ils permettent de surveiller la qualité des données et de reconstruire les traces de particules en temps réel et même en faire un ajustement (fit).
PYRAME a été déployé dans le cadre de l’expérience WAGASCI au Japon dont le but est de quantifier avec précision l’interaction des neutrinos avec plusieurs types de noyaux atomiques. Le système est installé au J‑PARC à Tokaï au Japon. Il a été conçu en collaboration avec le LLR sur la base de la DAQ générique et de Pyrame.
Le premier test en faisceau sur l’expérience WAGASCI a eu lieu en octobre 2017 et le système a fonctionné parfaitement, illustrant le succès de notre stratégie basée sur l’évolutivité.
Trois images du détecteur WASCASI, de la DAQ pilotée par PYRAME et des résultats de mesures.
PYRAME est mis à disposition de la communauté sous une licence libre (LGPL). Les sources sont disponibles ainsi qu’une documentation technique complète sur le site web dédié : Pyrame
Contact : Frédéric Magniette (LLR)