Title: Nicolas Jacq, jacqclermont'in2p3'fr
1Soumission de jobs sur EGEE
- Nicolas Jacq, jacq_at_clermont.in2p3.fr
- Laboratoire de Physique Corpusculaire, CNRS/IN2P3
- IUT dAurillac, licence bioinformatique
- 23/11/2005
2Plan
- Ordonnanceur de taches (Workload Management
System) - Soumission de Job sur EGEE
- Le cycle de vie du job
- Préparation dun job
- Exemple de base
- Langage de description des jobs (JDL)
- Job soumission et contrôle
- Autres fonctions et divers
3 Le WMS
- Les utilisateurs soumettent leur jobs via le
Workload Management System - Le but du WMS est dordonnancer, distribuer et
manager les ressources dune grille de calcul. - Il permet aux utilisateurs de
- Soumettre leur jobs
- Les exécuter
- Connaître leurs statuts
- Récupérer les sorties
- Le WMS essaye doptimiser lutilisation des
ressources de la grille - Ainsi que dexécuter les jobs aussi vite que
possible
4Sous-ensembles du WMS
- Le WMS est composé de différentes parties
- User Interface (UI) point dentrée pour les
utilisateurs - Resource Broker (RB) lordonnanceur,
responsable de trouver LA meilleure ressource où
le job pourra être exécuté - Job Submission Service (JSS) Le système de
soumission - Information Index (BDII) Un serveur qui
collecte les informations sur létat de la grille
pour approvisionner le RB en information. - Logging and Bookkeeping services (LB) Base de
données sur létat des jobs
5Job Submission Scenario
Replica Location Service (RLS)
Information System (IS)
Resource Broker (RB)
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
6A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
Resource Broker (RB)
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
7A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
Resource Broker (RB)
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
8A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
Resource Broker (RB)
Storage Element (SE)
Job Status
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
9A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Resource Broker (RB)
running
Storage Element (SE)
BrokerInfo
Job Status
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
10A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Resource Broker (RB)
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
11A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Resource Broker (RB)
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
12A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Resource Broker (RB)
running
Storage Element (SE)
Logging Bookkeeping (LB)
Job Submission Service (JSS)
Computing Element (CE)
13A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Resource Broker (RB)
running
Storage Element (SE)
done
Logging Bookkeeping (LB)
Job Submission Service (JSS)
outputready
Output Sandbox
Computing Element (CE)
14A Job Submission Example
Job Status
submitted
Replica Location Service (RLS)
Information System (IS)
waiting
ready
scheduled
Output Sandbox
Resource Broker (RB)
running
Storage Element (SE)
Job Status
done
Logging Bookkeeping (LB)
Job Submission Service (JSS)
outputready
Computing Element (CE)
cleared
15Préparation dun job
- Pour pouvoir soumettre un job on doit
- Donner une description de celui-ci
- Quel programme?
- Quelles données?
- Quels softs, quels OS, quels besoins spécifiques
- Avoir un programme autant que possible
- Exécutable sur une plate-forme inconnue
- Portable autant que possible
- Sans liens absolus, path spécifiques et autres
liens rigides (comme le fait dutiliser HOME
dans le code ) - Avoir des données entrantes (pas nécessaires)
16Comment faire un Job Description
- Version minimale ( mytest.jdl)
- On spécifie ici
- Le programme et ses arguments
- On définie les STDOUT et STDERR
- On dit que faire des outputs
Executable /bin/echoArguments
BonjourStdError stderr.logStdOutput
stdout.logOutputSandbox stderr.log,
stdout.log
17Exemple de Job Soumission
- Créer un proxy grid-proxy-init
- Entrer son mot de passe de certificat
- On récupère un proxy
- Soumet le job edg-job-submit mytest.jdl
- Et on récupère du système un identifiant de job
unique (JobId) - Requête de status edg-job-status JobId
- Pour émettre une requête au système de LB afin
de connaître létat du job - Quant le job entre dans létat OutputReady on
peut récupérer les output edg-job-get-output
JobId - Et le système retourne le nom dun répertoire
temporaire (sur lUI) ou se trouvent nos fichiers
de sortie
18La soumission
- fokke_at_mu7 hello grid-proxy-init
- Your identity /Odutchgrid/Ousers/Osara/CNFokk
e Dijkstra - Enter GRID pass phrase for this identity
- Creating proxy ...................................
.. Done - Your proxy is valid until Tue Jun 1 221146
2004 - fokke_at_mu7 hello edg-job-submit mytest.jdl
- Selected Virtual Organisation name (from UI conf
file) tutor - Connecting to host mu3.matrix.sara.nl, port 7772
- Logging to host mu3.matrix.sara.nl, port 9002
- JOB SUBMIT OUTCOME
- The job has been successfully submitted to the
Network Server. - Use edg-job-status command to check job current
status. Your job identifier (edg_jobId) is - - https//mu3.matrix.sara.nl9000/Nz6PWWJCjtT7YY3
PJWDu5Q
JobId
19Connaître le statut
- fokke_at_mu7 hello edg-job-status
https//mu3.matrix.sara.nl9000/Nz6PWWJCjtT7YY3PJW
Du5Q
- BOOKKEEPING INFORMATION
- Status info for the Job https//mu3.matrix.sara.
nl9000/Nz6PWWJCjtT7YY3PJWDu5Q - Current Status Done (Success)
- Exit code 0
- Status Reason Job terminated successfully
- Destination mu6.matrix.sara.nl2119/jobman
ager-pbs-long - reached on Tue Jun 1 081425 2004
20Récupérer les sorties
- fokke_at_mu7 hello edg-job-get-output
https//mu3.matrix.sara.nl9000/Nz6PWWJCjtT7YY3PJW
Du5Q - Retrieving files from host mu3.matrix.sara.nl (
for https//mu3.matrix.sara.nl9000/Nz6PWWJCjtT7YY
3PJWDu5Q )
- JOB GET OUTPUT OUTCOME
- Output sandbox files for the job
- - https//mu3.matrix.sara.nl9000/Nz6PWWJCjtT7YY3
PJWDu5Q - have been successfully retrieved and stored in
the directory - /tmp/jobOutput/fokke_Nz6PWWJCjtT7YY3PJWDu5Q
- fokke_at_mu7 hello cat /tmp/jobOutput/fokke_Nz6PWW
JCjtT7YY3PJWDu5Q/std.out - Goede Morgen
21Job Description Language (JDL)
- Basé sur Condors CLASSified ADvertisement
language (ClassAd). - ClassAd est un langage extensible.
- Construit sur des séquences dattributs.
Executable /bin/echoArguments
BonjourStdError stderr.logStdOutput
stdout.logOutputSandbox stderr.log,
stdout.log
22Différents types dattributs
- Deux grandes catégories dattributs
- Ceux concernant le job
- Définissent le job lui-même.
- Ceux concernant les ressources
- Utilisés par lordonnanceur (RB) pour définir la
ressource utilisée pour lexécution du job. - Permettent de définir les caractéristiques de
calcul requises - Utilisées par lutilisateur pour construire des
demandes précises ( librairies disponibles,etc ) - Ces attributs sont définis à laide du préfixe
other. - Définissent les caractéristiques liées aux
données - Ce sont les données entrantes , lélément de
stockage où les données sont prises ou bien
mises, les protocoles,
23Attributs de jobs
- Executable (obligatoire)
- Le nom de la commande à exécuter.
- Arguments (option)
- Les arguments de la commande à exécuter.
- StdInput, StdOutput, StdErr (option)
- La définition des entrées/sorties/erreurs
standards. - Environment (option)
- Ensemble de valeurs lié à lenvironnement
dexécution. - InputSandbox (option)
- Liste des fichiers se trouvant sur lUI qui
seront transférés avec le job. - Ces fichiers seront copiés sur le CE cible.
- OutputSandbox (option)
- Liste des fichiers générés par le job qui seront
accessibles via loutput sandbox
24Attributs de ressources
- Requirements
- Besoins du job vis à vis des ressources de
calcul. - Sont spécifiés à partir des attributs qui sont
définis dans le système dinformation de la
grille. - Sils ne sont pas définis dans le JDL, ce sont
les valeurs définies par défaut dans lUI qui
sont utilisées - Default other.GlueCEStateStatus "Production"
(Les ressources utilisables devront absolument
présenter lattribut demandé) - Rank
- Cest une préférence, concernant lordre de
rangement des ressources qui remplissent les
requirements - Si non spécifié, utilise la valeur définie sur
lUI - Default - other.GlueCEStateFreeCPUs (le plus
grand nombre de CPU libres)
25Attributs de données
- InputData (option)
- Référant aux données utilisées en entrée par le
job . - PFNs et/ou LFNs.
- DataAccessProtocol (seulement si InputData est
spécifié) - Le protocole ou la liste de protocoles de
communication utilisables par lapplication pour
accéder aux INPUTDATA. - OutputData (option)
- Référant aux données de sorties qui seront
récupérables
26Exemple de fichier JDL
- Executable gridTest
- StdError stderr.log
- StdOutput stdout.log
- InputSandbox /home/joda/test/gridTest
- OutputSandbox stderr.log, stdout.log
- InputData lfntestbed0-00019
- DataAccessProtocol gridftp
- Requirements other.ArchitectureINTEL \
other.OpSysLINUX other.FreeCpus gt4 - Rank other.GlueHostBenchmarkSF00
27Commande de Job Soumission
- edg-job-submit r ltres_idgt -c ltconfig filegt
-o ltoutput filegt --vo ltVO namegt ltjob.jdlgt - -r le job est directement envoyé par le RB sur le
CE identifié par ltres_idgt - -c utilise le fichier de configuration ltconfig
filegt afin de surcharger les valeurs par défaut
de lUI - -o renvoi lidentifiant de job dans ltoutput
filegt - --vo la virtual organization sous laquelle le job
doit être exécuté
28Autres commandes du WMS UI
- edg-job-list-match
- Liste les ressources correspondantes à la
description du job. - Permet de connaître le résultat de
lordonnancement sans soumettre le job. -
- edg-job-cancel
- Annule le job.
-
- edg-job-status
- Affiche létat du job.
- edg-job-get-output
- Récupère le contenu de OutputSandbox
- edg-job-get-logging-info
- Affiche des informations sur les diverses états
pris par le job tout le long de son existence. - Utilisé essentiellement pour le debuging.
29Configuration dune UI
- Les valeurs définissant une User Interface
peuvent être modifiées par lutilisateur si la
configuration par défaut nest pas satisfaisante - Les principales caractéristiques dune UI sont
- RB(s)
- Liste des ressource broker qui seront utilisés.
- Defaut JDL Requirements
- other.GlueCEStateStatus "Production
- Defaut JDL Rank
- other.GlueCEStateFreeCPUs
- Virtual Organisation par défaut
- Quel VO sera utilisé par défaut.
30Le système dordonnancement
- Lordonnanceur est le cur du WMS.
- Il doit trouver la meilleure ressource où le job
sera exécuté. - Il interagit avec le système de management des
données et le système dinformation. - Le CE choisi par le RB doit remplir les
conditions requises par le job (environnement
dexécution, accès aux données,) - Si plus de un CE satisfait les contraintes, cest
celui proposant la meilleure condition pour le
requirement rank qui est choisi.
31Soumission de job
- Trois familles de scénarios sont possibles.
- En utilisant le Ressources Broker, cest à dire
en excluant le cas ou lon soumet le job
directement au job manager dun site. - Scénario 1 Soumission directe
- Le job est directement soumis au CE (spécifié par
le paramètre r de la commande edg-job-submit). - Le RB neffectue aucune recherche de ressources.
- Peut ( et généralement cest le cas) générer des
erreurs si on utilise lattribut InputData. - Lutilisateur est responsable de la cohérence de
son job.
32Job Soumission, sans InputData
- Scénario 2 Soumission de job sans Requirements
liés aux données - Aucun CE ni données entrantes ( input data) sont
précisés - Le RB utilise lalgorithme de recherche de
ressource qui comporte deux phases - Le RB contact le système dinformation afin de
déterminer quels CE peuvent satisfaire les
demandes. - Si plus de deux sont proposés alors on utilise
lattribut rank pour faire le choix.
33Job soumission avec des données sur la grille
- Scénario 3 Le CE nest pas spécifié et lon a
des données en entrée -
- Le RB contact le service de management des
données afin de déterminer quels SE peuvent
satisfaire les besoins (quels SE possèdent les
données requises) - Le RB cherche le meilleur compromis (best effort)
entre - Les CE où lutilisateur a le droit de soumettre
ces jobs. - Les SE qui ont été déterminé préalablement.
- La stratégie du RB est de soumettre les jobs au
plus près des données. - Les deux phases suivantes sont les mêmes que dans
le scénario précédent (uniquement pour les CE qui
satisfont les requirements de données) - Requirements check
- Rank computation
34Erreurs de commande sur UI
- Les commandes utilisables aux niveaux de lUI
acceptent de nombreux paramètres, les erreurs
associées sont - Argument is not allowed (Largument est
inconnu) - Argument must be specified at the end of the
command (on a oublié le fichier JDL ou bien
lidentifiant du job à la fin de la commande) - Argument is missing for the output option
(le paramètre requis par un argument de la
commande a été oublié) - Argument -all cannot be specified with argument
input (Certains arguments ne peuvent pas être
utilisés simultanément ) - CEId format is ltfull hostnamegtltport
numbergt/jobmanager-ltservicegt. The provided CEID
http//lx01.absolute.com10854/jobmanager has a
wrong format. (le format de description du CE est
mauvais)
35Erreurs de RB
- Lors des appels au RB deux erreurs sont
possible - Resource Broker grid013g.cnaf.infn.it7771 not
available (la connexion au service du RB nest
pas possible, de nombreuses causes sont
possibles) - Unable to get LB address from RB
grid013g.cnaf.infn.it (Le RB nest pas capable
de donner l'adresse du service de LB associé)
36Erreurs de fichiers JDL
- Lorsque les commandes de lUI vérifient les
fichiers JDL, des erreurs peuvent être signalées - Mandatory Attribute default error in the
configuration file /opt/edg/etc/UI_ConfigENV.cfg
(il ny pas de valeur par défaut) - Mandatory Attribute missing in JDL file
Executable (lexécutable nest pas défini) - Multiple InputSandbox attribute found in JDL
file (lattribut InputSandbox est multiple)
37Renouvellement de proxy
- Pourquoi?
- Pour éviter les erreurs provoquées par une
expiration de proxy. - WMS supporte un mécanisme de renouvellement de
proxy basé sur lutilisation dun serveur de
proxy. La procédure pour utiliser ce serveur est - Créer un proxy
- grid-proxy-init
- Enregistrer ce proxy dans le serveur de proxy
MyProxy - myproxy-init s ltservergt -t ltcredgt -c ltproxygt
- server nom du serveur de proxy
- cred nombre dheures durant lesquelles le proxy
reste valide dans le serveur - proxy durée de vie des proxy renouvelés
- grid-proxy-init hours lthoursgt command
- Le proxy est AUTOMATIQUEMENT renouvelé par le WMS
sans intervention de lutilisateur
38Job de type MPI
- LCG-2
- Support limité
- Quelques sites peuvent tourner des jobs de type
MPI - JobType
- JobTypeMPICH
- NodeNumber 8
- Rajouter MPICH comme requirement
39Autres types de Jobs
- Interactif
- StdOutput, StdInput et StdError sont renvoyés à
lutilisateur - A travers X windows
40Informations utiles
- The LCG-2 User Guide
- https//edms.cern.ch/file/454439/1/LCG-2-UserGui
de.pdf -
- ClassAd
- https//www.cs.wisc.edu/condor/classad