Soumet : travaux par lots / batch jobs

soumission facile de travaux par lots / an easy way to submit batch jobs


ord_soumet  my_job_file [arg1] [arg2] .... [argn]
/home/ordenv/ssm-domains/ssm-setup-1.0/multi/bin/ord_soumet my_job_file [arg1] [arg2] .... [argn]


ex: 

ord_soumet essai1 -mach saiph -t 500 -cpus 2x2x4 -jn experience001 -listing ~/listings/special

ord_soumet est disponible directement dans l'environnement mais peut également être utilisé en mode autonome
N.B. une copie ne fonctionnera pas, mais on peu utiliser un "soft link" vers l'original
N.B. cette page a été empruntée a Environnement Canada Dorval, certains aramètres peuvent ne pas s'appliquer
ord_soumet is automatically available to all users of the i environment but may also be used in stand-alone mode
N.B. a copy of ord_soumet will not work but a soft link to it will
N.B. This page has been borrowed from Environment Canada in Dorval, some parameters might not be applicable

arguments

Liste des arguments / argument list

le nom des arguments les plus courants est en caractères gras, les cellules colorées représentent des arguments non reconnus par ord_soumet,
mais potentiellement reconnus par ord_soumet_alpha et/ou ord_soumet_beta (certaines options ne fonctionnent q'avec le nouvel environnement )

NOTE : si la première ligne du fichier soumis commence par #ord_soumet= , le reste de la ligne sera ajouté aux arguments de soumet, ce qui permet au fichier soumis de contenir à l'avance certains paramètres de soumission

the names of the most frequent arguments are highlighted, the colored cells reflect pre-release features not recognized yet by ord_soumet
but that may be recognized by ord_soumet_beta and/or ord_soumet_alpha (some features will only work with the new environment )

NOTE : if the first line of the submitted job file starts with #ord_soumet= , the remainder of the line is added to the ord_soumet arguments, allowing the job to contain some of its submission parameters beforehand.

EX: #ord_soumet= -t 500 -mpi -cpus 3x4 -cm 2G

Variables d'environnement utilisées/disponibles dans le travail / environment variables used/available in job

argument
/
VARIABLE
def1def2notesdescriptionexemples / examples
FORCE_BATCH


ignorer l'argument -sys et utiliser la valeur de cette variable d'environnement

ignore -sys argument and use this value instead
export FORCE_BATCH=batch_devel
SOUMET_EXTRAS


ajouter a la ligne d'appel comme si l'usager l'avait tapé

add to command line as if typed by user

export SOUMET_EXTRAS="-account xx-ab-01"
-account

colosse onlycompte de l'usager sur colosse
user account on colosse
-account xxx-abc-01
-addstep
NULLaddstepLL only

-args / -oNULLNULL
arguments positionnels disponibles dans le travail

positional arguments made available in the job
-args a1 b2 c2
$1 donnera a1, $2 donnera b2, $3 donnera c2

$1 will be a1, $2 will be b2, $3 will be c2
-asNULLNULL
soumettre un travail en utilisant un autre nom d'usager (demande les bonnes clés dans authorized_keys)

submit a job using another user name ( proper keys must be found in authorized_keys)
-as otheruser
le travail sera soumis comme l'usager otheruser

the job will be submitted as if submitted by otheruser
-c / -cpus11MxNxPnombre de CPUs nécessaires pour le travail

number of CPUs necessary for the job
-cpus 4x15x4   (60 MPI tiles, 4 way OpenMP)
-clone0100
activer la soumission clonée (pas plus de NN fois)

activate cloned submission (up to NN times)
-clone 23
-cm / -m100M100Msouvent ignoré
often ignored
quantité de mémoire vive nécessaire pour le travail
(la valeur est imposée à 3.5GB/cpu pour IBM)

amount of main memory needed for the job
(value forced at 3.5GB/cpu on IBM)
ssh zeta   -cm 350M
-coschedule

LL onlyjob with coscheduled job stepstravail avec étapes en mode "coschedule"
-customNULLNULL
answer to the .profile_switch question for batch jobs

réponse à la question posée par .profile_switch por les travaux batch
-custom alternate
-custom y
-custom n
-d / -mach$TRUE_HOST$TRUE_HOST(localhost)machine ou grappe sur laquelle on désire exécuter le travail

machine or cluster the job is to execute on
-mach alef
-mach zeta
-displayNULL$DISPLAY
utilisé si le travail doit afficher quelque chose sur un écran XWindows (habituellement utilisé avec -xterm)

used if job must use XWindows to display on a workstation (often used with -xterm)
-display monposte:0
-eNULLe
causer un avortement du travail à la première erreur si -e spécifié

job will be aborted at the first error if -e specified

-epilogNULLNULL
job epilog to be inserted in job-epilog iomonitor (activate io monitor, experimental)
-firststepNULLlajob_stepsLL onlythis is the first step of a coschduled job
-geomNULLNULLLL onlyfichier contenant la géométrie MPI du travail tel que le paramètre task_geometry de LoadLeveler le demande

file containing the MPI geometry in the format needed for the task_geometry LoadLeveler parameter

-h


texte d'aide

help text

-immediateNULLimmediate
exécution immédiate via ssh sans passer par le sous-système batch (travaux TRÈS PETITS seulement)

immediate execution with ssh without going through the batch subsystem (VERY SMALL jobs only)

-iojob15
quantité d'entrées/sorties dans le travail (1-10)

amount of I/O in job (1-10)
-iojob 0   (almost no I/O)
-iojob 10   (a real I/O hog)
-jnNULLNULL
nom que l'on désire donner au travail (utilisé pour créer le nom du fichier contenant le listing) si -jn est absent, le nom du fichier contenant le travail sera utilisé

job name (used for listing file name). if -jn is not specified, the name of the submitted file will be used
-jn essai_no_2
-jobcfg/dev/nullNULL


-jobfileNULLNUL
autre manière de donner le fichier à soumettre

alternate method to submit a file
-jobfile my_file
-jobtarlajoblajob
name to give to the tarfile produced with the nosubmit option

nom à donner au fichier tar produit par l'option nosubmit

-keepNULLkeep
conserver les fichiers intermédiaires (enveloppes)

keep intermediate files (wrappers)
-keep
-lnoyesmaestro only

-laststepNULL
LL only

-listing~/listings~/tmpautolistingrépertoire où on désire retrouver le listing du travail

directory the job listing will be written into
-listing ~/dir1/exp2
-machlocalhost

machine sur laquelle on veut executer

machine to execute the job on

-mailNULL$USER@ec.gc.ca
si on doit envoyer du courrier , le faire à cette adresse
(voir / see  -notify )

send mail (if necessary) to this address
-mail
-mail user@some.where
-mpi / -pNULLmpi
travail utilisant MPI

used to flag an MPI job
-mpi
-nodeNULLNULLmaestro only

-noendwrapynmaestro only

-nosubmitNULLnosubmit
ne pas soumettre le travail mais l'emballer dans un fichier appelé lajob.tar pour soumission ultérieure

job shall not be submitted but packed into filelajob.tar to be submitted at a later time
-nosubmit
-notifyerrorcomplete
-notify error
envoyer du coutrrier en cas d'erreur dans le travail
send mail in case of error in the job

-notify complete
envoyer du courrier a la fin du travail
send mail at end of job
NOTE: la demande est passée au système d'ordonnancement de travaux (SGE ou LL) qui en fera ce qu'il veut/peut.

NOTE: the request is passed on to the batch subsystem (SGE or LL)  that will act on it as it can/wants.
-opNULLoper
ceci est un travaial opérationnel
this is an operational job

-postfix.outNoNe
chaine de caractères à ajouter à la fin du nom du fichier contenant le listing du travail

character string that will be appended to the listing file name

-ppid$$$$ne pas utiliser
do not use


-preempt
1LL seulement
LL only
permettre ou non la préemption (1 = oui)

allow preemption (1 = yes)

-prefixNoNeNULL
chaine de caractères à ajouter au début du nom du fichier contenant le listing du travail

character string that will be addded to the beginning of the listing file name
-prefix exper12_
le listing du travail aura un nom commençant par exper12_

the listing file name will begin with exper12_
-prologNULLNULL
prolog to be inserted in job-prolog iomonitor (activate iomonitor, experimental)
-q / -queueNULLNULL
queue spécifique pour une machine donnée

specific queue on a given machine

-q fexfer  ,  -q xfer
file transfer queue

-q my_queue@
job will be sent to work stream my_queue

-rsrcNULLNULL
indiquer les ressources spéciales dont le travail a besoin

specify special resources needed by job
-rsrc to-hsm from-hsm
-rsrc none
-seqno11
numéro de séquence initial pour les clones

initial sequence number for clones

-shareesSGE onlyexclusive (e) or shared (s) use of nodesusage partagé (s) ou exclusif (e) des noeuds de calcul
-shellkshNULL

interprète de commandes à utiliser pour le travail
-shell nologin => aucun login (SGE seulement)

shell to use for job
-shell nologin => no login will be performed (SGE only)

-shell bash
-shell sh
-shhell ksh93
-smt12
doubler la valeur de OMP_NUM_THREADS dans le travail (facteur OpenMP)

double the value of OMP_NUM_THREADS in job (OpenMP factor)
-smt
-splitstdny


-ssmuseNULLNULL
liste d'items "r.ssmuse.dot¨ nécessaires pour l'exécution du travail (nouvel environnement seulement)

list of "r.ssmuse.dot" items necessary for successful job execution (new environment only)

-stepdefault_stepNULLLL only

-sysbatchbatch
système de soumission / séquençage de travaux

type of sequencer to use
-sys batch
-sys maestro
-t6060
temps d'horloge nécessaire pour exécuter le travail (secondes)

wall clock time needed to execute the job (seconds)
-t 7200  ( 2 heures / 2 hours )
-tagNULLNULL
job tracking tag for statistics

identificateur pour les séries statistiques
-tag newmodelv3
-threads11


-tmpfs
255Linux/SGE onlyquantité d'espace tmpfs nécessaire (MB)

necessary amount of tmpfs space required (MB)

-vNULL1
rendre ord_soumet plus bavard en ce qui a trait aux messages de diagnostic

make ord_soumet more verbose when it comes to diagnostic messages

-w11
même chose que -t mais en minutes (ne pas utiliser les deux à la fois)

same as-t but in minutes (use only one)

-wasteNULL100
pourcentage tolérable de CPUs non utilisés sur un noeud de calcul

tolerable percentage of unused CPUs on a compute node

-withNULLNULL


-wrapdir~/.ord_soumet.d/wrapNULLmaestro only

-xtermNULLxterm
faire démarrer un xterm dans le travail et viser l'unité X spécifiée par -display

start an xterm in the job and target display specified by -display


Variables d'environnement utilisées/disponibles dans le travail / environment variables used/available in job

PREEMPT_OKINIBM seulement, = 0 travail soumis en mode non préemptable, =1 soums en mode préemptableIBM only, =0 preemption not accepted by job, =1 preemption not accepted by job
BATCH_MPI_CPUSINnombre de tuiles/taches MPInumber of MPI tiles/tasks
OMP_NUM_THREADSINnombre de fils d'exécution OpenMP tel que demandé via les paramètres -cpus et -smtnumber of OpenMP threads as specified via -cpus and -smt
JobTimeLimitINdurée maximale permise pour le travail (secondes)maximum allowed job wall cloak (seconds)
JobStartTimeINheure de démarrage du travail en secondes depuis
1970-01-01 00:00:00 UTC (epoch)
job start time in  seconds since
1970-01-01 00:00:00 UTC(epoch)
SelfJobKillINrecette pour tuer/annuller le travailreceipe to kill/cancel the job
SelfJobResubmitINrecette pour resoumettre le travailreceipe to resummit the job
SelfJobRemoveINrecette pour effacer les fichiers "enveloppe" du travailreceipe to remove the job wrappers
C LONE_ORDINALINnuméro du clone courant (1.. max)ordinal of current clone (1 .. max)
S OUMETOUTSOUMET=qsub
causera une resoumission automatique d'un clone si le nombre maximal n'est pas atteint
SOUMET=qsub
wil trigger an automatic job resubmit if the maximum clone count has  not been reached


Notes

LLLoad Leveler (ordonnanceur de travaux IBM)Load Leveler (IBM batch scheduler)
SGESun Grid Engine (ordonnanceur de travaux pour colosse)Sun Grid Engine (Linux cluster colosse batch scheduler)
PBSPortable Batch System (ordonnanceur de travaux de guillimin)Portable Batch Syatem (Linux cluster guillimin batch scheduler)
maestronouveau séquenceur des passes opérationnellesnew Operational RUN sequencer
(localhost)la machine sur laquelle on se trouvethe current machine
MxNxPconfiguration des CPUs M fois N tuiles MPI, P fils d'exécution OpemMP pour chaque tuileCPU configuration, M times N MPI tiles,  P OpenMP threads for each tile
autolisting

si un répertoire ~/listings/machine existe (-mach machine) le listing y sera automatiquement dépose si -listing n'est pas spécifié

should a directory path ~/listings/machine exists (-mach machine) and -listings is absent, the listing will be writtne into that directory

nom du listing

listing file name

le nom du fichier contenant le listing est obtenu de la manière décrite ci dessous (la partie seqno est absente si on ne se sert pas du clonage)

t${prefix}${jn}.${ppid}.${postfix}[.${seqno}]

the listing file name is derived in the following way (the seqno part is optional and is only used with cloning)

t${prefix}${jn}.${ppid}.${postfix}[.${seqno}]

Submitted job structure / La structure du travail soumis

ord_soumet creates 2 files from the user "job"

  • a batch system and OS dependent file
    • batch subsystem (PBS/ GridEngine/LoadLeveler/UnixBatch) header
    • OS dependent header (linux / AIX / ...)
    • source command for the wrapped user job(next file)
    • OS dependent footer (linux / AIX / ...)
  • user job surrounded by batch system and OS independent wrappers
    • header
    • optional prolog
    • user job itself
    • optional epilog
    • footer

ord_soumet: architecture / internal structure

ord_soumet uses 4 logical layers

  • ord_soumet itself (almost totally agnostic)
  • a control system layer (normal batch/OCM/Maestro)
  • a machine/cluster specific layer (machine description: batch subsystem, processors, some dispatching logic)
  • a batch subsystem layer (PBS/GridEngine/LoadLeveler/UnixBatch)
  • Aucune étiquette
Écrire un commentaire...