Utilisation d'OAR pour la gestion des travaux

OAR est le batch scheduler qui permet de lancer des jobs sur les noeuds du cluster.
Pour plus d'infos voir http://oar.imag.fr plus précisément http://oar.imag.fr/user-usecases/.
 

Commandes OAR

La première commande à connaitre est

man oarsub

Le cluster est hierarchisé de la manière suivante :

  • chassis
  • host / nodes
  • cpu
  • core

Et il est partitionné de la manière suivante :

  • default : ce sont tous les noeuds génériques (donc non smp et non visu) -> ne pas spécifier !
  • smp : ce sont tous les noeuds smp (donc non générique et non visu)
  • visu : ce sont tous les noeuds de visualisation (donc non générique et non smp)

Cela signifie que si vous ne spécifiez pas la partition sur laquelle vous voulez travailler, vos travaux seront exclusivement lancés sur des noeuds génériques.

Pour réserver un core du cluster en mode interactif (possibilité de lancer des commandes dans un shell) :

oarsub -I

Pour réserver 2 cores en interactif :

oarsub -I -l core=2

Pour réserver 1 noeud complet en interactif :

oarsub -I -l nodes=1

Pour réserver 2 cores en interactif sur une machine avec 12 cores et qui n'est pas dédiée à la visualisation :

oarsub -I -l nodes=1/core=2 -p "nbcores=12 AND visu = 'NO'"

Pour réserver 2 noeuds complets sur le même chassis en interactif :

oarsub -I -l chassis=1/nodes=2

Pour réserver 2 noeuds complets sur 2 chassis différents en interactif :

oarsub -I -l chassis=2/nodes=1

Les travaux interactifs ont un walltime (durée) maximum de 12 heures. Au delà, il est nécessaire d'utiliser des jobs passifs (avec un script de lancement).

Pour lancer un script sur 1 noeud complet :

oarsub -l nodes=1 ./script.sh

Pour lancer un script sur 4 noeuds, nommer le job et spécifier un walltime de 24 heures :

oarsub -l nodes=4,walltime=24:00:00 -n nom_du_job ./script.sh


Pour mettre des directives OAR directement dans le script de lancement, voici un exemple de script :

#!/bin/sh
#OAR -l nodes=4,walltime=2:0:00
#OAR -O file.out
echo "Debut du job ${OAR_JOB_ID}"
./monprogramme
exit $?

Puis il faut soumettre son job avec l'option "-S" (demande à OAR de prendre en compte les directives "#OAR" du script) :

oarsub -S "./script.sh var1 var2 ..."


Pour utiliser la machine SMP nommée smp01 dans la partition smp

oarsub -I  -p "host='smp01'" -t smp


Pour utiliser la machine SMP dans un script, mettre la ligne

#OAR -p host='smp01'
#OAR -t smp

Pour utiliser un noeud GPU pour du calcul pendant 2h

oarsub -I -l nodes=1,walltime=2:0:0 -p "visu='YES'" -t visu


Des exemples de scripts de soumission OAR sont disponibles sur le cluster dans le répertoire /softs/OAR/script_examples ou ici : Exemples de soumission

Vous pouvez insérer directement dans vos scripts OAR le chargement des modules ou le "source" des fichiers.

Par défaut, le temps d'un batch est limité à 24h, grâce à l'option walltime, vous avez la possibilité de spécifier un temps :

walltime=X:00:00 avec X > 24 permet de calculer X/24 jours

Les machines ont les noms internes suivants :

  • Pour les noeuds génériques node001 à node072
  • Pour le noeuds à grande mémoire smp01
  • Pour les noeuds hybrides visu01 à visu08

 

Quelques commandes OAR pour gérer vos travaux

# affiche les jobs en cours
oarstat

# affiche les propriétés du job 483
oarstat -fj 483

# affiche uniquement ses propres jobs en cours
oarstat -u
# affiche uniquement les jobs en cours de l'utilisateur "user"
oarstat -u user

# affiche les temps de calcul consommés dans une période
oarstat --accounting "2012-10-01, 2012-12-01"

# affiche les temps de calcul consommés pour l'utilisateur "user"
oarstat -u user --accounting "2012-01-01, 2012-04-01"

# supprime le job 483
oardel 483

 

Adresse

Université de Nice Sophia-Antipolis
D.S.I.
28 Avenue de Valrose
B.P. 2135
06103 NICE Cedex 02