CEA
HPC Calcul haute performance
AccueilComplexe de calculLogiciels pour le HPCRecherche et developpementsCollaborations
Recherche et développements / Développements open source

Développements open source

Développer et maintenir des logiciels scientifiques, pour la simulation numérique, nécessite des compétences multiples dans un environnement informatique complexe et en évolution rapide. Dans ce contexte, recourir aux logiciels open source permet de bénéficier des dernières avancées technologiques éprouvées par la communauté scientifique. En retour, la participation du CEA/DAM à la communauté open source démontre son savoir faire dans le domaine de la simulation numérique et renforce la crédibilité du programme Simulation.

Pour des organismes comme le CEA, utiliser des logiciels open source présente de nombreux avantages. Le logiciel libre est synonyme de pérennité (son emploi par de très nombreux utilisateurs lui assure une durée de vie plus longue) et apporte une certaine sécurité (l’ouverture du code garantissant qu’aucune faille n’existe), et de faible coût en terme de licence pour des ordinateurs multiprocesseurs. Aujourd’hui, le système d’exploitation Linux est devenu le phare et le socle principal de l’aventure de l’open source.

flbPour en savoir plus

Vous pouvez retrouver les développement open source du CEA DAM sur Github:

 

Logiciels open source CEA/DAM


 ARCANE

Arcane est une plateforme de développement et de services conçue et utilisée depuis 2000, dans le cadre du programme Simulation. Arcane aide au développement des codes de physique et à optimiser les performances sur les grands calculateurs parallèles, quel que soit la complexité de la structure des données. Grâce à sa conception avancée orientée objet, Arcane présente flexibilité et modularité dans la construction des logiciels de simulation, avec différents niveaux de lecture. Elle offre aux acteurs du processus de développement (physiciens, numériciens et informaticiens) la possibilité de se concentrer sur leur cœur de métier. Cette approche facilite ainsi, dans des délais réduits, l'élaboration de logiciels scientifiques innovants.

 AUKS

Auks est une application client-serveur permettant d’ajouter à une application de type Batch le support des tickets Kerberos V. La partie serveur d’Auks fournit des services de stockage et d’obtention de tickets Kerberos de manière optimisée afin de garantir des performances adéquates en environnement HPC. La partie cliente d’Auks est construite au-dessus d’une API permettant un accès en langage C aux fonctionnalités proposées. Auks est livré avec un greffon d’exemple ajoutant le support Kerberos au gestionnaire de ressources Open Source Slurm, développé par le Lawrence Livermore National Laboratory (LLNL), en version 2.2.

flbTélécharger

 BRIDGE

Bridge est une application fournissant aux utilisateurs de centres de calcul une méthode unifiée d’accès aux ressources : soumission de travaux interactifs et batch, description des contraintes d’exécution, lancement d’exécutions parallèles, surveillance et/ou arrêt des exécutions sur les calculateurs, etc…

flbTélécharger

 ClusterShell

ClusterShell est une bibliothèque événementielle en Python qui permet d'exécuter des commandes en parallèle sur un nombre très important de noeuds d'un cluster, serveurs ou stations de travail. Elle définit et implémente la notion de groupe de noeuds indispensable aux grands systèmes et fournit un ensemble de scripts utilitaires.

flbTélécharger

 FRAME

La bibliothèque FRAME, pour FRAme field MEshing, est une bibliothèque qui fournit des algorithmes de génération de maillages quadrilatéraux en dimension 2, et hexaédriques ou à dominante hexaédrique en dimension 3. Ces algorithmes à l’état de R&D, ont pour finalité d’être mis à disposition pour la production.
Les algorithmes proposés s’appuient sur la notion de champs d’orientations (frame fields en anglais). Leur domaine d’application est restreint aux modèles géométriques de type CAO (avec des bords vifs) en dimension 2 et à tout domaine géométrique en dimension 3.

 GLOST

GLoST (Greedy Launcher Of Small Tasks) est un outil de lancement de travaux de type «parallèles par nature» (Embarrassingly Parallel). S’appuyant sur MPI, il est capable de lancer un très grand nombre de travaux élémentaires sur un cluster de calcul tout en gérant la limite de temps alloué.

flbTélécharger

 GMDS

La bibliothèque GMDS, pour Generic Mesh Data Structure ou Structure de Données Générique de Maillage, est une bibliothèque C++ qui permet de modéliser et manipuler des maillages 2D et 3D aussi bien dans un contexte séquentiel que dans un contexte distribué (calcul haute performance).
GMDS permet de représenter tout type de cellules de dimension 2 (triangles, quadrilatères, polygones quelconques) et de dimension 3 (tétraèdres, hexaèdres, pyramides à base quadrangulaire, prisme à base triangulaire et pentagonale, polyèdres quelconques). Un effort particulier a été porté sur l’occupation mémoire de ces cellules : elle est minimisée tout en restant dans un contexte générique d’utilisation.
Les algorithmes proposés s’appuient sur la notion de champs d’orientations (frame fields en anglais). Leur domaine d’application est restreint aux modèles géométriques de type CAO (avec des bords vifs) en dimension 2 et à tout domaine géométrique en dimension 3.

 HAIRGAP

Implémentation d’un protocole réseau adapté au transfert fiable et rapide de grandes quantités de données sur un lien réseau unidirectionnel à faible perte (une diode réseau, par exemple).

flbTélécharger

 HERCULE

Ces services portent essentiellement sur les protection/reprises, le post-traitement (dont la visualisation) et l’échange de données entre plusieurs codes de simulation.

 HP2P

HP2P (Heavy Peer To Peer) est un logiciel qui permet de diagnostiquer l’état du réseau d’interconnexion d’un calculateur à architecture distribuée (cluster)à travers l’utilisation de la bibliothèque de communication MPI. Il permet de mesurer les latences et les débits entre les différentes couples de nœuds d’un cluster. Le logiciel est lancé en environnement utilisateur sur le cluster de calcul. Ce logiciel comporte une interface graphique interactive permettant d’analyser les résultats et de remonter rapidement les problèmes liés au réseau.

flbTélécharger

 IVRE

IVRE (Instrument de veille sur les réseaux externes) est une plateforme informatique (framework) dédiée à l’établissement de cartographie réseau qui s’appuie sur des outils "open source" de cartographie active (Nmap, Zmap) et passive (p0f, Bro) dont il collecte les résultats dans des bases de données. Il propose ensuite différentes interfaces pour consulter ces données.

flbTélécharger

 JCHRONOSS

JCHRONOSS est un moteur de validation et de non-régression de codes et bibliothèques logicielles sur ordinateurs parallèles de classe pétaflopique (Calcul Haute Performance). Sa structure hiérarchique lui permet de dissocier l’architecture complexe des supercalculateurs du problème d’ordonnancement des jobs. Une compatibilité est assurée avec le monde de l’intégration continue grâce à un format standardisé des données produites. Des modules annexes permettent de visualiser de manière autonome résultats et exécutions en cours, afin d’affiner le comportement de JCHRONOSS face aux (très) lourdes suites de validation utilisées en contexte massivement parallèle.

flbTélécharger

 KAZIMIR

Logiciel d'analyse de journaux permettant d'associer des actions automatiques quand se produisent certaines situations identifiées dans les journaux par des règles définies par l'utilisateur.

flbTélécharger

 Kernel Linux – module 9P

Le noyau (kernel) linux est la base du système d’exploitation, et constitue l’interface standard pour accéder au matériel, au réseau et aux fichiers. La compréhension du noyau est importante à la fois pour les développements auxquels le CEA participe (système de fichiers Lustre, protocoles 9P & RDMA) et pour analyser plus efficacement les problèmes que l’on peut rencontrer au cours du fonctionnement ou de la mise en œuvre des calculateurs.

 KVSNS

KVSNS implémente un système de fichiers POSIX (Interface de programmation standard UNIX pour l’accès aux données) à partir des services d'un KVS (Key Value Store), en fait un dépôt de valeurs adressées par des clefs, et d'un gestionnaire de stockage objet. KVSNS s’appuie sur REDIS, qui est un KVS (Serveur de dictionnaire distant) usuel dans la communauté Open source, et sur du système de fichier POSIX. Elle peut également utiliser les KVS et le stockage objet fourni par le produit commercial (Seagate) MERO, lequel est au cœur du projet SAGE.

flbTélécharger

 LCAP

LCAP est un logiciel de traitement et diffusion de flux de messages. Il autorise des modes de diffusion plus souples et plus performants que celui proposé directement par Lustre pour la description des opérations modifiantes apportées au système de fichiers.

flbTélécharger

 LOVE

Dans un contexte d’exploitation massives de grands volumes de données, Love est un logiciel de visualisation de données issues de codes de simulation numérique. Il permet aux utilisateurs d’explorer et d’analyser les données issues de simulations numériques, grâce à des services d’affichage et d’extraction sur des géométries 2D et 3D. Ces grands volumes de données peuvent atteindre plusieurs milliards de mailles.

 LUSTRE (contribution)

Le logiciel Lustre est un système de gestion de fichiers très performant, particulièrement bien adapté à la gestion des grands flux et volumes de données sous contrôle des super ordinateurs. Ce système de fichiers (File system) gère donc l’organisation des informations mémorisées sur les multiples périphériques de stockage (disque durs, bandes magnétiques, …), en particulier sur les dizaines de milliers de disques Son concept de système de fichiers parallèle permet entre autres d’obtenir haute capacité et extensibilité de volume de stockage, une rapidité d’exécution et une tolérance aux pannes. Ses hautes performances permettent de répondre aux besoins des simulations les plus exigeantes en termes de stockage notamment, lorsqu’il s’agit de s’adapter à une production considérable de données.

 MALP

MALP (Multi-Application on-Line Profiling) est un logiciel de profilage consistant à analyser l’exécution d’une application logicielle afin de connaitre son comportement à l’exécution.
Le profilage de code permet de contrôler lors de l’exécution d’un logiciel :

  • La liste des fonctions appelées et le temps passé dans chacune d’elles,
  • L’utilisation du processeur (ou du cœur du processeur),
  • L’utilisation mémoire …etc.

L’analyse du comportement d’une ou plusieurs applications se fait par le biais de rapports d’analyse. De tels rapports ont pour but d’aider les développeurs à mieux comprendre leurs programmes et visent à rendre mesurable le critère performance afin d’influencer positivement les applicatifs tout au long du développement.

 MIASM

Miasm est une plateforme informatique de rétro conception (framework de reverse-engineering) développée en langage Python. Il s’agit d’une plateforme d’aide à la rétro conception logicielle, qui peut être utilisée à différentes fins :

  • analyse de codes malveillants (virus, malwares, etc.),
  • recherche de vulnérabilités, etc.
MIASM regroupe différents outils :
  • un désassembleur permettant de faire de l’analyse de code statique;
  • un langage intermédiaire permettant d’écrire relativement simplement des analyseurs de code évolués;
  • un « jitter » permettant l’analyse dynamique de code dans une boite à sable (sandbox), système informatique dédié spécifiquement aux tests et analyses.

 MILKCHECK

MilkCheck est un logiciel permettant la gestion cohérente de services système indépendants et distribués : définition des dépendances entre services et des actions (démarrage, arrêt, état, …) à réaliser de façon distribuée (multi-machines) et parallèle. Il est entre autre utilisé pour gérer le démarrage des différents services des calculateurs (DNS, LDAP, LUSTRE, SLURM, …).

flbTélécharger

 Modules-Tcl

Modules-Tcl est un développement en langage Tcl de la commande « module ». Il permet de gérer facilement l’environnement logiciel des utilisateurs qui travaillent sous UNIX/LINUX, en leur mettant à disposition l’ensemble des logiciels et des outils dont ils ont besoin.

flbTélécharger

 MOOSHIKA

Mooshika est une bibliothèque de fonctions évoluant dans l’espace utilisateur (user space) destinées à faciliter l’intégration de la couche de transport RDMA (Remote Direct Memory Access) dans un serveur de fichier. Ce protocole RDMA permet donc le transfert mémoire à mémoire des données via le réseau d’interconnexion.

flbTélécharger

 MPC

La bibliothèque MPC (MultiProcessor Communications) est dédiée à la programmation parallèle dans le contexte du Calcul Haute Performance. MPC offre des interfaces de programmation comparables à celles couramment utilisées en parallélisme : MPI (Message Passing Interface), OpenMP et POSIX Thread. L’intégration et la collaboration de ces modèles usuels de programmation parallèle au sein d’une bibliothèque unique permet à MPC d’offrir un modèle de programmation hybride mémoire partagée/mémoire distribuée avec un haut niveau de performance.

flbTélécharger

 NABLA

Nabla est un compilateur sources à sources ; c'est à dire un traducteur du langage (du même nom) spécialisé pour l'analyse numérique vers différents langages pour une diversité d’architectures et de machines. Nabla permet d'écrire un programme informatique adapté à l'analyse numérique, grâce entre autres à l’utilisation des opérateurs mathématiques.

 NFS-GANESHA

NFS-Ganesha est une solution logicielle performante implémentée sur serveur dimensionné pour le calcul haute performance, permettant un accès optimisé du stockage distribué sur réseau. NFS-Ganesha interface postes client et supports de stockage sur différents types de système de fichiers et protocoles. NFS-Ganesha est un serveur NFS fonctionnant dans l’espace utilisateur (User-Space). Il implémente les protocoles NFSv3/NFSv4/NFSv4.1 ainsi que leurs protocoles auxiliaires (MountdV1 et MountdV3, NLMv4, RQUOTA et pNFS). NFS-Ganesha se caractérise par une architecture très ouverte qui lui permet de servir de frontal NFS à différents systèmes de fichiers, incluant des standards du HPC comme LUSTRE, CEPH et GPFS. NFS-Ganesha supporte XFS et tout système de fichiers qui s'appuie sur la VFS du kernel Linux. Il peut également être utilisé comme serveur Proxy NFS. Nfs-Ganesha supporte l'authentification kerberos via la GSS-API et le protocole RPCSEC_GSS.

flbTélécharger

 ODACE

Odace est un logiciel modulaire d’analyse des données issues de codes de simulation numérique. Dans un contexte d’exploitation massive de grands volumes de données, il permet aux utilisateurs d’accéder et d’exploiter les données de leurs calculs grâce à des services d’extraction, de combinaisons et de traitements mathématiques. Il propose également un service graphique qui permet de présenter les résultats obtenus sous forme de courbes.

 PCOCC

PCOCC est un outil logiciel permettant aux utilisateurs d'un calculateur à architecture distribuée (cluster) d'instancier simplement des machines virtuelles pour y exécuter des applications parallèles. Les utilisateurs disposent ainsi d’un contrôle complet de leur environnement d'exécution et peuvent le personnaliser selon leurs besoins. L'outil s'intègre au gestionnaire de ressources de façon à pouvoir héberger les machines virtuelles sur les nœuds du cluster en concurrence avec les autres tâches de calcul. Les machines virtuelles d'un utilisateur sont interconnectées par un réseau privé et isolé du réseau du calculateur afin de ne pas perturber son fonctionnement.

flbTélécharger

 PADAWAN

Le logiciel PaDaWAn (Parallel Data Workflow for Analysis) a pour objectif de soulager les codes de calcul des opérations de transfert de données. Il s’appuie sur l’interface I/O existante et déporte les opérations de transfert sur des ressources informatiques distinctes, libérant les logiciels de simulation des aléas du système de fichier (filesystem). Son intervention, au niveau des informations transmises lors de l’exécution du code et durant leur transfert, le range parmi les solutions in transit. En jouant à la fois pour les codes le rôle d’écrivain pour les uns et de lecteur des données pour les autres, PaDaWAn permet un enchaînement d’applications sans recours aux unités de stockage.

 PHOBOS

Phobos est un logiciel permettant la mise à disposition, sous une interface objet, de ressources de stockage distribuées et de nature très variée (disque, flash, disques SSD, bandes magnétiques, autre gestionnaires d'objets). Il permet de constituer des systèmes d’archivage à long terme robustes et capables de passer à l’échelle pour nos futures architectures de centre de calcul.

 ROBINHOOD POLICY ENGINE

Robinhood permet une gestion fine et avancée d'un système de fichiers en effectuant des audits réguliers qui lui permettent de conserver les informations sur le contenu du système de fichiers dans une base de données SQL. Il devient alors possible de réaliser des extractions d'informations précises et élaborées quant à l'utilisation des ressources selon différents critères (par taille, par groupe, par utilisateur). A ce titre, il fournit à l'administrateur une vision instantanée de son système de stockage. Robinhood dispose de fonctionnalités avancées pour gérer le système de fichiers LUSTRE, incluant la localisation physique des données, leur topologie (ou stripping) et l'utilisation du mécanisme de changelog (journal des modifications) pour mettre à jour en quasi temps réel un audit précédemment effectué, sans avoir à tout analyser à nouveau.

flbTélécharger

 SELFIE

SELFIE (Self and Light proFIling Engine) est un outil léger de profilage de codes de calcul. Il permet d'avoir un résumé de profilage en fin de job tout en ayant très peu d'impact sur les codes en terme de performance.

flbTélécharger

 SHINE

Shine est un outil en ligne de commande pour configurer et administrer le système de fichiers parallèle Lustre sur un calculateur à architecture distribuée. Il permet de centraliser la configuration et simplifie les opérations courantes sur ce système de fichiers distribués. Il supporte de nombreuses fonctionnalités des dernières versions de Lustre (v1.8 et v2.x) Shine est écrit en langage Python et utilise la bibliothèque ClusterShell développé par le CEA/DAM pour assurer le passage à l’échelle sur grands clusters.

flbTélécharger

 SIGMUND

Sigmund est un outil dédié à l’exécution de tests de non-régression. Intégralement écrit en langage script pour des raisons de simplicité et de maintenabilité, il fournit un environnement dans lequel il est simple d’insérer un nouveau test. Sigmund est utilisé comme lanceur des tests de non-régression pour le produit NFS-Ganesha.

 SNECPLAYER

Le logiciel SNECPLAYER permet d’afficher en stéréoscopie (vision en relief) des films composés de séries d’images de plusieurs millions de pixels sur un mur d’images constitué d’un ensemble de projecteurs, chacun étant piloté par un ordinateur différent (CPU+GPU). La particularité de cet outil est d’être capable de découper en parallèle les images en autant de parties qu’il y a de projecteurs à alimenter et de synchroniser l’affichage des images entre les projecteurs. L’outil est composé de deux logiciels distincts : le premier exécuté en parallèle prend en charge l’affichage des images et le deuxième constitue l’interface utilisateur de commande.

 SPACE9

A l’échéance de la génération EXA 1 (202x), les supercalculateurs du CEA utiliseront des serveurs I/O proxies basés sur des protocoles 9P et RDMA (nouveau concept de délégateur d’I/O). Ces derniers disposeront d’implémentation client dans le noyau (kernel space) mais pas en espace utilisateur (user space). La bibliothèque Space 9 en espace utilisateur (user space) d’accès aux systèmes de fichiers 9P et liop, via TCP ou RDMA, a un double objectif :

  • Permettre l’écriture de tests simples et indépendants des postes clients (e.g. ouverture d’un grand nombre de connexions);
  • Faire des entrées/sorties (I/Os) optimisés dans les codes de calcul.

 SSHPROXY

SSHPROXY est un programme utilisé sur une passerelle pour connecter de manière transparente les utilisateurs vers des machines internes via le protocole SSH. Il supporte les outils scp, sftp, rsync et le déport graphique. Il offre un mécanisme d’équilibrage de charge pour la connexion aux machines internes, une personnalisation de la configuration par groupe ou utilisateur et des fonctionnalités avancées d’audit.

flbTélécharger

 SIBYL

Sibyl est un outil basé sur Miasm qui permet la recherche et l’identification de fonctions connues dans les binaires par l’analyse de leurs effets de bords.
Ce logiciel s’appuie sur Miasm pour démarrer une machine ‘’bac à sable’’ (sandbox), incorpore les éléments nécessaires (allouer une chaîne de caractères par exemple), puis place les arguments dans l’ordre attendu en tenant compte de l’ABI (Application Binary Interface) visée. La machine ‘’bac à sable’’ commence alors à exécuter le code, et si on atteint la fin de la fonction sans dysfonctionnement, on examine si les effets de bords sont ceux attendus. Si oui, on peut considérer que les probabilités sont élevées de disposer de la fonction attendue.

flbTélécharger

 WI4MPI

WI4MPI (Wrapper Interface For MPI) est une bibliothèque qui permet de traduire les appels MPI fait par le code au moment de l'exécution (wrapper) d'une bibliothèque MPI vers une autre: un code compilé avec wi4mpi peut être exécuté indifféremment avec n'importe quelle bibliothèque MPI.

flbTélécharger

 

Avril 2018