Développement d'un intergiciel de Grille de Calcul

From air
Jump to navigation Jump to search


Porteurs et encadrants: Bruno Bzeznik (UMR Gricad) et Olivier Richard (GINP-UGA)

Entreprise/laboratoire/organisme : LIG


Description du contexte

Dans ce projet on souhaite s'attaquer à refonte et à un recodage de l'intergiciel CiGri [1][2].

Cet intergiciel est utilisé pour l'exploitation de grille légère qui repose sur un ensemble de clusters de calcul sous-jacents.

Il est particulièrement bien adaptée au traitement d’applications bag-of-tasks ou jobs embarrassingly parallel (ce type de traitements peuvent résulter en un très grand nombre de petits travaux, comme les applications multi-paramétriques, où vous devez exécuter le même programme sur un grand ensemble de paramètres et obtenir un résultat par paramètre).

Il est cependant aussi capable de traiter tout type de travaux à faire exécuter sur des clusters de calcul.

Sa particularité est de fonctionner sur les cycles cpu inutilisés d’un ensemble de superordinateurs dans un centre de calcul, de la manière la plus efficace possible. Mais il peut également être utilisé pour gérer un grand nombre de tâches à exécuter sur un cluster particulier, même sans effort (un grand nombre de tâches surcharge généralement le planificateur local d’un cluster ; la grille est conçue pour traiter ce problème).

Il offre en particulier l’accès efficace à un mode de soumission efficace, le besteffort.

Pour une description de l'architecture générale se reporter à [1], pour description détaillée de son utilisation dans le cadre du centre de calcul de l'UMR Gricad se reporter à [3].

Objectif(s) du projet

Le code de l'intergiciel Cigri est veillissant, écrit en langage Ruby on souhaite le recoder en Python, par la même occasion nous voulons explorer d'autre approche architecturale comme la possibilité d'utiliser le code comme un agent de l'utilisateur autonome (sans référence à un service central).

Travail attendu

  • Analyse de l'existant
  • Utilisation de l'instance Cigri de l'UMR Gricad
  • Définition d'une architecute en partenariat avec les encadrants projet
  • Réalisation de diagrammes de séquence comme éléments de spécification
  • Identifications et réaliasations de preuves concepts
  • Développements de l'architecture générale
  • Documentation

Technologies

Les technologies considérées en plus du langage Python seront les suivantes:

  • prefect, une orchestrateur de workflow qui pour servir de base du projet: https://www.prefect.io/
  • FastAPI: un framework pour la réalisation d'API Restful suivant les principe du standard OpenAPI: https://fastapi.tiangolo.com/
  • SqlAlchemy: Pour l'interaction avec les bases de données
  • Click/Rich : Bibliothèque pour les partie CLI
  • Poetry: pour le packaging and la gestion de dépendances

Divers

Déplacement à prévoir (en dehors de l’école) : potentiellement au laboratoire IMAG

Références