OAR
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
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...
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.
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,...).
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.