Soumet : travaux par lots / batch jobs

Un article de Informaticiens département des sciences de la Terre et l'atmosphère
Aller à: navigation, charcher

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


argument
/
VARIABLE
def1
def2
notes description
exemples / 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 only compte de l'usager sur colosse
user account on colosse
-account xxx-abc-01
-addstep
NULL
addstep
LL only

-args / -o
NULL
NULL

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
-as
NULL
NULL

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 / -cpus
1
1
MxNxP nombre de CPUs nécessaires pour le travail

number of CPUs necessary for the job
-cpus 4x15x4   (60 MPI tiles, 4 way OpenMP)
-clone
0
100

activer la soumission clonée (pas plus de NN fois)

activate cloned submission (up to NN times)
-clone 23
-cm / -m
100M
100M
souvent 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 only job with coscheduled job steps travail avec étapes en mode "coschedule"
-custom
NULL
NULL

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
-display
NULL
$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
-e
NULL
e

causer un avortement du travail à la première erreur si -e spécifié

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

-epilog NULL NULL
job epilog to be inserted in job -epilog iomonitor (activate io monitor, experimental)
-firststep
NULL
lajob_steps
LL only this is the first step of a coschduled job

-geom NULL NULL LL only fichier 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

-immediate
NULL
immediate

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)

-iojob 1 5
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)
-jn
NULL
NULL

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/null
NULL



-jobfile
NULL
NUL
autre manière de donner le fichier à soumettre

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

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

-keep
NULL
keep

conserver les fichiers intermédiaires (enveloppes)

keep intermediate files (wrappers)
-keep
-l
no
yes
maestro only

-laststep
NULL

LL only

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

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

machine sur laquelle on veut executer

machine to execute the job on

-mail
NULL
$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 / -p
NULL
mpi

travail utilisant MPI

used to flag an MPI job
-mpi
-node
NULL
NULL
maestro only

-noendwrap
y
n
maestro only

-nosubmit
NULL
nosubmit

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
-notify
error
complete

-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.
-op NULL oper
ceci est un travaial opérationnel
this is an operational job

-postfix .out NoNe
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
1 LL seulement
LL only
permettre ou non la préemption (1 = oui)

allow preemption (1 = yes)

-prefix NoNe NULL
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_
-prolog NULL NULL
prolog to be inserted in job -prolog iomonitor (activate iomonitor, experimental)
-q / -queue
NULL
NULL

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

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

specify special resources needed by job
-rsrc to-hsm from-hsm
-rsrc none
-seqno
1
1

numéro de séquence initial pour les clones

initial sequence number for clones

-share
e
s
SGE only exclusive (e) or shared (s) use of nodes
usage partagé (s) ou exclusif (e) des noeuds de calcul
-shell
ksh
NULL

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
-smt
1
2

doubler la valeur de OMP_NUM_THREADS dans le travail (facteur OpenMP)

double the value of OMP_NUM_THREADS in job (OpenMP factor)
-smt
-splitstd
n
y



-ssmuse
NULL
NULL

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)

-step
default_step
NULL
LL only

-sys
batch
batch

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

type of sequencer to use
-sys batch
-sys maestro
-t
60
60

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 )
-tag NULL NULL
job tracking tag for statistics

identificateur pour les séries statistiques
-tag newmodelv3
-threads
1
1



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

necessary amount of tmpfs space required (MB)

-v
NULL
1

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

-w
1
1

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

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

-waste NULL 100
pourcentage tolérable de CPUs non utilisés sur un noeud de calcul

tolerable percentage of unused CPUs on a compute node

-with NULL NULL


-wrapdir ~/.ord_soumet.d/wrap NULL maestro only

-xterm NULL xterm
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_OK
IN IBM seulement, = 0 travail soumis en mode non préemptable, =1 soums en mode préemptable
IBM only, =0 preemption not accepted by job, =1 preemption not accepted by job
BATCH_MPI_CPUS IN nombre de tuiles/taches MPI
number of MPI tiles/tasks
OMP_NUM_THREADS IN nombre de fils d'exécution OpenMP tel que demandé via les paramètres -cpus et -smt
number of OpenMP threads as specified via -cpus and -smt
JobTimeLimit IN durée maximale permise pour le travail (secondes)
maximum allowed job wall cloak (seconds)
JobStartTime IN heure 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)
SelfJobKill IN recette pour tuer/annuller le travail
receipe to kill/cancel the job
SelfJobResubmit IN recette pour resoumettre le travail
receipe to resummit the job
SelfJobRemove IN recette pour effacer les fichiers "enveloppe" du travail
receipe to remove the job wrappers
C LONE_ORDINAL
IN numéro du clone courant (1.. max)
ordinal of current clone (1 .. max)
S OUMET
OUT SOUMET=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

LL Load Leveler (ordonnanceur de travaux IBM) Load Leveler (IBM batch scheduler)
SGE Sun Grid Engine (ordonnanceur de travaux pour colosse) Sun Grid Engine (Linux cluster colosse batch scheduler)
PBS Portable Batch System (ordonnanceur de travaux de guillimin) Portable Batch Syatem (Linux cluster guillimin batch scheduler)
maestro nouveau séquenceur des passes opérationnelles new Operational RUN sequencer
(localhost) la machine sur laquelle on se trouve the current machine
MxNxP configuration des CPUs M fois N tuiles MPI, P fils d'exécution OpemMP pour chaque tuile
CPU 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)