OAR

Fiche logiciel validé
  • Création ou MAJ importante : 20/02/13
  • Correction mineure : 20/02/13
  • Rédacteur de la fiche : Joseph Emeras - CIMENT et LIG (Université Joseph Fourier (Grenoble I), INRIA)
  • Relecteur(s) : Violaine Louvet (Institut Camille Jordan)
    Pierre Girard (Centre de Calcul de l'IN2P3/CNRS)
  • Contributions importantes : Bruno Bzeznik
  • Responsable thématique : Geneviève Romier (Institut des Grilles et du Cloud)
Mots-clés

OAR : gestionnaire de ressources pour grandes grappes de calcul

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : OAR
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 bibliothèque 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
  • Tableaux de jobs: possibilité de soumettre en une seule fois de nombreux jobs aux propriétés similaires dépendants éventuellement de paramètres
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.
  • Oaradmin: outil d'administration pour faciliter la création initiale des ressources et la gestion des règles d'admission.
  • OAR Rest API: une api en REST pour faire des appels a OAR par le web, ceci permet de creer aisément des interfaces web de soumission, administration, visualisation...
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 dans mon laboratoire/service

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. Un outil (oaradmin) est disponible depuis la version 2.3.1 pour faciliter cette tâche.

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)

Plates-formes

linux
solaris

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
Documentation utilisateur
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 !