Fiche logiciel validé
  • Création ou MAJ importante : 06/05/08
  • Correction mineure : 02/12/08
Auteur :
  • Bruno Bzeznik - CIMENT et LIG (Université Joseph Fourier (Grenoble I), INRIA)
Relecteur(s) :
Responsable thématique :
Mots-clés

OAR : gestionnaire de ressources pour grandes grappes de calcul

Description
Fonctionnalités générales : 

OAR est un gestionnaire de ressources (batch scheduler) pour grandes grappes de calcul. Il est écrit en scripts PERL articulé autour d’une base SQL (Postgres ou MySQL). Il est composé de modules indépendants qui interagissent via la base de données. Cette approche permet le développement de modules complémentaires écrits dans n’importe quel langage ayant une librarie d’interfaçage avec les bases de données.

Caractéristiques spécifiques:

  • Règles d’admission : grande souplesse de configuration de l’admission des jobs dans les files d’attente
  • Propriétés de ressources : les ressources peuvent être de différents types (cpus, licences,…) et avoir de nombreuses propriétés qui vont permettre à l’utilisateur de les sélectionner finement
  • Description dynamique d’une hiérarchie de ressources à la soumission : permet de définir finement la hiérarchie d’une grappe, par exemple “switch/noeud/socket/core”.
  • Plusieurs ordonnanceurs sont disponibles (fifo, fifo-with first-fit/backfilling, fairsharing) et peuvent être utilisés simultanément dans des files d’attente différentes
  • Type de job spécifique best-effort qui permet d’exploiter les ressources inutilisées
  • Supervision des noeuds : possibilité de paramétrer des “checks” pour activer ou désactiver automatiquement des ressources
  • Scripts Epilogue/Prologue : possibilité de lancer des scripts personnalisés au démarrage et en fin de job, sur la frontale ou sur les noeuds
  • Outils de visualisation (optionnels) des jobs (Monika / DrawGantt)
  • Configuration minimale des noeuds : le seul prérequis indispensable sur chaque noeud de calcul est la présence de “Openssh” et de quelques scripts perl fournis.
  • Optimisation de la chaine d’éxécution sur les noeuds via Taktuk (optionnel)
  • Soumission par réservation : job lancé à une date définie à l’avance
  • Possibilité d’intégration d’outil de déploiement (Kadeploy) pour l’exécution d’un job après déploiement d’un OS spécifique.
  • Outils de grille disponibles: CiGri, OARgrid
  • Fairsharing avec définition de projets : partage intelligent des ressources en fonction du taux d’utilisation par utilisateur et par projet.
  • Comptabilité : OAR maintient un résumé des consommations par utilisateur et par projet
  • Exploitation des cpusets linux pour l’optimisation et le nettoyage efficace en fin de job
  • Economie d’energie : possibilité d’éteindre/allumer les noeuds à la demande
Autres fonctionnalités : 

En périphérie de OAR, on trouve 2 outils de visualisation web des ressources d’un cluster, très pratiques et configurables :

  • Monika : il permet la visualisation de l’état instantané de toutes les ressources de la grappe. Il est écrit en Perl.
  • DrawGantt : visualisation de l’occupation des ressources dans le temps (diagramme de Gantt). Ce dernier est écrit en Ruby.
Interopérabilité : 

Le développement modulaire avec interopérabilité des modules via la base de données SQL.
La plupart des commandes peuvent générer des sorties en format XML ou YAML.

Contexte d'utilisation : 

OAR exploite tous les clusters du projet Grid5000. Il est à ce titre installé dans 9 sites en France, sur plus de 25 clusters. Grid5000 est une grille expérimentale pour la recherche en informatique distribuée.
OAR est également utilisé sur la majorité des machines du mesocentre de calcul grenoblois CIMENT. Dans ce contexte, il est utilisé sur plusieurs clusters de petite/moyenne taille destinés à des calculs de production pour des thématiques très variées (sciences de l’univers, environnement, chimie, physique numérique, bioimagerie,…)

Limitations, difficultés, fonctionnalités importantes non couvertes : 

L’utilisation est assez simple et bien documentée. Mais la mise en oeuvre peut nécessiter des compétences assez élevées en administration de systèmes unix. Les paquets disponibles sous Debian et RPM (à partir de la v2.3) simplifient grandement la tâche, mais il faut encore bien comprendre les concepts pour le paramétrage, en particulier la création initiale d’une hiérarchie de ressources. Des outils sont en cours de développement pour améliorer l’administrabilité du produit.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré: 

Debian (intégration en cours pour la version 2.3, paquets disponibles pour la 2.2)
RPM-based (pas d’intégration, mais des paquets RPM sont disponibles depuis la version 2.3)

Logiciels connexes: 
  • OARgrid :
    Un outil simple qui fonctionne au dessus de plusieurs serveurs OAR pour effectuer des réservations sur plusieurs sites. Pas d’utilisation connue en dehors de Grid5000.

  • CiGri :
    Un outil de grille “légère” permettant d’exploiter les ressources non utilisées d’un ensemble de clusters implémentant OAR. CiGri exploite le mode “best-effort” de OAR. Un couplage de OAR avec d’autres gestionnaires de ressources est possible pour utiliser CiGri sans forcément imposer OAR.

  • Taktuk :
    Un outil d’exécution parallèle destiné à passer largement à l’échelle.
Autres logiciels aux fonctionnalités équivalentes: 
Environnement de développement
Type de structure associée au développement: 

Laboratoire de recherche (équipes MESCAL et MOAIS du LIG) et communauté Grid5000

Eléments de pérennité: 

Tous les clusters de Grid5000 fonctionnent grâce à OAR, ce qui représente 9 sites en France.
En outre, OAR est largement utilisé sur les machines de production du mesocentre de l’Université Joseph Fourier (CIMENT).
Il est donc très activement supporté, compte tenu du nombre d’utilisateurs qui en dépendent.

Références d'utilisateurs institutionnels: 

INRIA (9 sites Grid5000)
Université Joseph Fourier (Grenoble)
Slovak Academy of Sciences - Institute of Inorganic Chemistry (Slovaquie)
Group of Parrallel and Distributed Processing GPPD (Brésil)
BRGM (Orléans)

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums: 
Contributions: 

Toutes les contributions sont les bienvenues. Le meilleur moyen de contribuer est de s’inscrire à la liste oar-devel et d’y envoyer ses propositions. Mais le simple rapport de bug ou la simple demande de nouvelle fonctionnalité est aussi une contribution! N’hésitez pas!