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

OAR