Aide-mémoire oar
Posted on Tue 07 July 2020 in tutoriels • 3 min read
Jobs interactifs : option -I
Demander un seul coeur, n’importe où :
oarsub -I --project=test
Demander un noeud en entier (l’ensemble des coeurs et de la mémoire) :
oarsub -I --project=test -l /nodes=1
Demander quatre coeurs sur un même processeur (sur un seul noeud) :
oarsub --project=test -I -l /cpu=1/core=4
Demander quatre coeurs, répartis sur deux processeurs du même noeud, pour 3h :
oarsub --project=test -I -l /nodes=1/cpu=2/core=2,walltime=03:00:00
Demander quatre coeurs, répartis sur deux noeuds, un seul processeur par noeud :
oarsub --project=test -I -l /nodes=2/cpu=1/core=2
Demander quatre coeurs, répartis sur deux noeuds, un seul coeur par processeur :
oarsub --project=test -I -l /nodes=2/cpu=2/core=1
Demander la machine luke40 en entier :
oarsub --project=test -I -p "network_address = 'luke40'"
Demander deux coeurs sur chaque processeur de la machine ’luke38’, pour 40 minutes :
oarsub --project=test -I -p "network_address = 'luke38'" -l /cpu=2/core=2,walltime=00:40:00
Demander des ressources sur plusieurs noeuds spécifiques. Exemple avec luke42 et luke44 :
oarsub --project=test -I -l "{network_address = 'luke42' OR network_address = 'luke44'}/nodes=2/core=1"
Cette requête demandera 1 coeur par noeud sur 2 noeuds. Les noeuds seront explicitement luke44 et luke42.
Demander des ressources d’une équipe/labo explicitement :
oarsub --project=test -I -p "team = 'ljk'" -l /cpu=1/core=2
Jobs en mode batch, option -S
Lancement d’un job en batch (dans ce cas, les ressources requises sont décrites dans un script).
oarsub -S ./oarscript.sh
Demander un ensemble de ressources décrites dans un script, avec placement sur un noeud particulier :
oarsub -S -p "network_address = 'luke40'" ./mon_script_oar.sh
Demander des ressources pour le 5 juillet 2019 à 13h45 :
oarsub -S -r "2019-07-05 13:45:00" ./oarscript.sh
Lancer un job en mode best-effort
oarsub -S ./oarscript.sh -t besteffort
Cas particulier de la ressource GPU:
Avis
A l’heure actuelle les clusters luke et dahu n’ont pas la même syntaxe OAR de réservation des ressources GPU.
Sur LUKE (noeuds Luke38, 43 et 44):
La réservation de GPU se fait via la propriété ‘hasgpu’.
Demander 1 GPU (Attention : pour demander un GPU il faut obligatoirement demander un et un seul cpu) :
oarsub --project=test -I -l "{hasgpu='YES'}"/cpu=1
Vous pouvez vérifier le GPU attribué par OAR avec la commande :
oarprint gpu
Demander tout le noeud GPU, avec les 2 GPU :
oarsub --project=test -I -l "{hasgpu='YES'}"/cpu=2
Sur dahu (bigfoot):
Pour plus de détails consultez la documentation GRICAD.
Ci-dessous, on demande tous les coeurs du processeur associé à 1 GPU sur 1 noeud (ce qui est recommandé pour des questions de gestion de la mémoire et de reproductibilité des jobs).
oarsub --project=test -I -t gpu -l /nodes=1/cpu=1/gpudevice=1
Autres commandes utiles
Arrêt d’un job (d’id ‘jobid’)
oardel jobid
Description de l’état des ressources du cluster
$ oarnodes
network_address : luke39
resource_id : 583
state : Alive
properties : host=luke39, gpu=2, thread=, type=default, hasgpu=YES, scratch1=3343, scratch1_loc=/var/tmp, team=ljk, total_mem=64, network_address=luke39, visu=NO, scratch1_type=2hd1, available_upto=0, besteffort=YES, vncdisplay=, last_available_upto=0, n_cores=12, ip=10.0.50.49, cpumarch=sandybridge, desktop_computing=NO, n_cpus=2, memcore=5, deploy=NO, cpuset=9, gpuset=1, drain=NO, cpu=55, core=457, vgldisplay=
...
Etat de chacune des ressources d’un noeud.
$ oarnodes -s luke39
luke39
573 : Alive
574 : Alive
575 : Alive
576 : Alive
577 : Alive
578 : Alive
579 : Alive
580 : Alive
581 : Alive
582 : Alive
583 : Alive
584 : Alive
Aperçu des jobs en cours
$ oarstat
Job id Name User Submission Date S Queue
---------- -------------- -------------- ------------------- - ----------
451 Mon job audraf 2012-03-13 10:23:05 R default
Etat d’un job particulier
oarstat -fj numero_du_job