plateforme de calcul pour les sciences du vivant soumission de jobs sur grille

39
Plateforme de Calcul pour les Sciences du Vivant tp://clrpcsv.in2p3.fr Soumission de jobs sur grille

Upload: beneoit-terrier

Post on 04-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

http://clrpcsv.in2p3.fr

Soumission de jobs sur grille

Page 2: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Plan

• Ordonnanceur de taches (Workload Management System)

• Soumission de Job sur EGEE

– Le cycle de vie du job– Préparation d’un job– Exemple de base– Langage de description des jobs (JDL)– Job soumission et contrôle– Autres fonctions et divers

• Commandes de grille

Page 3: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Le WMS

• Les utilisateurs soumettent leur jobs via le Workload Management System

• Le but du WMS est d’ordonnancer, distribuer et manager les ressources d’une 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 d’optimiser l’utilisation des ressources de la grille• Ainsi que d’exécuter les jobs aussi vite que possible

Page 4: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Sous-ensembles du WMS

• Le WMS est composé de différentes parties:

1. User Interface (UI) : point d’entrée pour les utilisateurs

2. Resource Broker (RB) : l’ordonnanceur, responsable de trouver LA meilleure ressource où le job pourra être exécuté

3. Job Submission Service (JSS) : Le système de soumission

4. Information Index (BDII) : Un serveur qui collecte les informations sur l’état de la grille pour approvisionner le RB en information.

5. Logging and Bookkeeping services (LB) : Base de données sur l’état des jobs

Page 5: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Job Submission Scenario

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Page 6: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

Job SubmitEvent

Input Sandbox

Job Status

submittedReplicaLocationService(RLS)

Page 7: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Job Status

submitted

waiting

Page 8: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Job Status

submitted

waiting

ready

Job Status

Page 9: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement (SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Job Status

submitted

waiting

ready

BrokerInfo

scheduled

Job Status

running

Page 10: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Job Status

submitted

waiting

ready

scheduledInput Sandbox

running

Page 11: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Job Status

submitted

waiting

ready

scheduled

Job Status

running

Page 12: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

submitted

waiting

ready

scheduled

running

Job Status

done

Job Status

Page 13: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

submitted

waiting

ready

scheduled

running

done

Job Status

Job Status

outputready

Output Sandbox

Page 14: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

A Job Submission Example

UIJDL

Logging &Bookkeeping(LB)

ResourceBroker (RB)

Job SubmissionService (JSS)

StorageElement(SE)

ComputingElement (CE)

Information System (IS)

ReplicaLocationService(RLS)

Output Sandbox

cleared

submitted

waiting

ready

scheduled

running

done

Job Status

outputready

Job Status

Page 15: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Préparation d’un 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 d’utiliser $HOME dans le « code »)

– Avoir des données entrantes (pas nécessaires)

Page 16: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Comment 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/echo”;Arguments = “Bonjour”;StdError = “stderr.log”;StdOutput = “stdout.log”;OutputSandbox = {“stderr.log”, “stdout.log”};

Page 17: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Exemple 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 L&B 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 d’un répertoire temporaire (sur l’UI) ou se

trouvent nos fichiers de sortie

Page 18: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

La soumission

[fokke@mu7 hello]$ grid-proxy-initYour identity: /O=dutchgrid/O=users/O=sara/CN=Fokke DijkstraEnter GRID pass phrase for this identity:Creating proxy ..................................... DoneYour proxy is valid until: Tue Jun 1 22:11:46 2004

[fokke@mu7 hello]$ edg-job-submit mytest.jdl

Selected Virtual Organisation name (from UI conf file): tutorConnecting to host mu3.matrix.sara.nl, port 7772Logging 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.nl:9000/Nz6PWWJCjtT7YY3PJWDu5Q

*********************************************************************************************

JobId

Page 19: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Connaître le statut

[fokke@mu7 hello]$ edg-job-status https://mu3.matrix.sara.nl:9000/Nz6PWWJCjtT7YY3PJWDu5Q

*************************************************************BOOKKEEPING INFORMATION:

Status info for the Job : https://mu3.matrix.sara.nl:9000/Nz6PWWJCjtT7YY3PJWDu5QCurrent Status: Done (Success)Exit code: 0Status Reason: Job terminated successfullyDestination: mu6.matrix.sara.nl:2119/jobmanager-pbs-longreached on: Tue Jun 1 08:14:25 2004*************************************************************

Page 20: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Récupérer les sorties

[fokke@mu7 hello]$ edg-job-get-output https://mu3.matrix.sara.nl:9000/Nz6PWWJCjtT7YY3PJWDu5Q

Retrieving files from host: mu3.matrix.sara.nl ( for https://mu3.matrix.sara.nl:9000/Nz6PWWJCjtT7YY3PJWDu5Q )

********************************************************************************* JOB GET OUTPUT OUTCOME

Output sandbox files for the job: - https://mu3.matrix.sara.nl:9000/Nz6PWWJCjtT7YY3PJWDu5Q have been successfully retrieved and stored in the directory: /tmp/jobOutput/fokke_Nz6PWWJCjtT7YY3PJWDu5Q

*********************************************************************************

[fokke@mu7 hello]$ cat /tmp/jobOutput/fokke_Nz6PWWJCjtT7YY3PJWDu5Q/std.outBonjour

Page 21: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Job Description Language (JDL)

• Basé sur Condor’s CLASSified ADvertisement language (ClassAd).

• ClassAd est un langage extensible.• Construit sur des séquences d’attributs.

Executable = “/bin/echo”;Arguments = “Bonjour”;StdError = “stderr.log”;StdOutput = “stdout.log”;OutputSandbox = {“stderr.log”, “stdout.log”};

Page 22: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Différents types d’attributs

• Deux grandes catégories d’attributs:

– Ceux concernant le job

Définissent le job lui-même.

– Ceux concernant les ressources

Utilisés par l’ordonnanceur (RB) pour définir la ressource utilisée pour l’exécution du job.

Permettent de définir les caractéristiques de calcul requises• Utilisées par l’utilisateur pour construire des demandes précises

( librairies disponibles,etc )• Ces attributs sont définis à l’aide 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,…

Page 23: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Attributs 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é à l’environnement d’exécution.

• InputSandbox (option)– Liste des fichiers se trouvant sur l’UI 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 l’output

sandbox

Page 24: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Attributs 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

d’information de la grille. – S’ils ne sont pas définis dans le JDL, ce sont les valeurs définies par

défaut dans l’UI qui sont utilisées Default: other.GlueCEStateStatus == "Production" (Les ressources utilisables

devront absolument présenter l’attribut demandé)

• Rank

– C’est une préférence, concernant l’ordre de rangement des ressources qui remplissent les « requirements »

– Si non spécifié, utilise la valeur définie sur l’UI Default: - other.GlueCEStateFreeCPUs (le plus grand nombre de CPU

libres)

Page 25: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Attributs 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 l’application pour accéder aux INPUTDATA.

• OutputData (option)– Référant aux données de sorties qui seront récupérables

Page 26: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Exemple de fichier JDL

Executable = “gridTest”;

StdError = “stderr.log”;

StdOutput = “stdout.log”;

InputSandbox = {“/home/joda/test/gridTest”};

OutputSandbox = {“stderr.log”, “stdout.log”};

InputData = “lfn:testbed0-00019”;

DataAccessProtocol = “gridftp”;

Requirements = other.Architecture==“INTEL” && \ other.OpSys==“LINUX” && other.FreeCpus

>=4;

Rank = “other. GlueCEStateFreeCPUs”;

Page 27: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Commande de Job Soumission

• edg-job-submit [–r <res_id>] [-c <config file>] [-o <output file>] [--vo <VO name>] <job.jdl>

-r le job est directement envoyé par le RB sur le CE identifié par <res_id>

-c utilise le fichier de configuration <config file> afin de surcharger les valeurs par défaut de l’UI

-o renvoi l’identifiant de job dans <output file>

--vo la virtual organization sous laquelle le job doit être exécuté

Page 28: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Autres commandes du WMS UI

• edg-job-list-matchListe les ressources correspondantes à la description du job.Permet de connaître le résultat de l’ordonnancement sans soumettre le

job.

• edg-job-cancelAnnule le job.

• edg-job-statusAffiche l’état du job.

• edg-job-get-outputRécupère le contenu de OutputSandbox

• edg-job-get-logging-infoAffiche des informations sur les diverses états pris par le job tout le long

de son existence.Utilisé essentiellement pour le débogage.

Page 29: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Configuration d’une UI

• Les valeurs définissant une User Interface peuvent être modifiées par l’utilisateur si la configuration par défaut n’est pas satisfaisante

• Les principales caractéristiques d’une 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.

Page 30: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Le système d’ordonnancement

• L’ordonnanceur est le cœur 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 d’information.

• Le CE choisi par le RB doit remplir les conditions requises par le job (environnement d’exécution, accès aux données,…)

• Si plus de un CE satisfait les contraintes, c’est celui proposant la meilleure condition pour le requirement rank qui est choisi.

Page 31: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Soumission de job

• Trois familles de scénarios sont possibles.– En utilisant le Ressources Broker, c’est à dire en excluant le cas

ou l’on soumet le job directement au job manager d’un 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 n’effectue aucune recherche de ressources.

Peut ( et généralement c’est le cas) générer des erreurs si on utilise l’attribut InputData.

L’utilisateur est responsable de la cohérence de son job.

Page 32: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Job 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 l’algorithme de recherche de ressource qui comporte deux phases: • Le RB contact le système d’information afin de déterminer

quels CE peuvent satisfaire les demandes.• Si plus de deux sont proposés alors on utilise l’attribut rank

pour faire le choix.

Page 33: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Job soumission avec des données sur la grille

Scénario 3: Le CE n’est pas spécifié et l’on 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ù l’utilisateur 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

Page 34: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Erreurs de commande sur UI

• Les commandes utilisables aux niveaux de l’UI acceptent de nombreux paramètres, les erreurs associées sont:

Argument * is not allowed (L’argument est inconnu)

Argument * must be specified at the end of the command (on a oublié le fichier JDL ou bien l’identifiant 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: <full hostname>;<port number>/jobmanager-<service>. The provided CEID: “http://lx01.absolute.com:10854/jobmanager” has a wrong format. (le format de description du CE est mauvais)

Page 35: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Erreurs de RB

• Lors des appels au RB deux erreurs sont possible:

Resource Broker “grid013g.cnaf.infn.it:7771” not available (la connexion au service du RB n’est pas possible, de nombreuses causes sont possibles)

Unable to get LB address from RB “grid013g.cnaf.infn.it” (Le RB n’est pas capable de donner l'adresse du service de L&B associé)

Page 36: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Erreurs de fichiers JDL

• Lorsque les commandes de l’UI 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 n’y pas de valeur par défaut)

Mandatory Attribute missing in JDL file “Executable” (l’exécutable n’est pas défini)

Multiple “InputSandbox” attribute found in JDL file (l’attribut InputSandbox est multiple)

Page 37: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Renouvellement 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 l’utilisation d’un serveur de proxy. La procédure pour utiliser ce serveur est:1. Créer un proxy

grid-proxy-init

2. Enregistrer ce proxy dans le serveur de proxy :MyProxymyproxy-init –s <server> [-t <cred> -c <proxy>]server nom du serveur de proxycred nombre d’heures durant lesquelles le proxy reste valide dans le serveurproxy durée de vie des proxy renouvelés grid-proxy-init –hours <hours> command

3. Le proxy est AUTOMATIQUEMENT renouvelé par le WMS sans intervention de l’utilisateur

Page 38: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Commandes gLite

• Création d’un proxy:• voms-proxy-init -vo <VO name>

• Informations sur le proxy:• voms-proxy-info -all

• Soumission de jobs:• glite-wms-job-submit [–r <res_id>] [-c <config

file>]

[-o <output file>] [--vo <VO name>] <job.jdl>

• Lister les CE pouvant faire tourner le job:• glite-wms-job-list-match <job.jdl>

Page 39: Plateforme de Calcul pour les Sciences du Vivant  Soumission de jobs sur grille

Plateforme de Calcul pour les Sciences du Vivant

Commandes gLite

• Récupérer le status d’un job:• glite-wms-job-status [–i <file_job_id] [<job_id>]

• Annuler un job:• glite-wms-job-cancel [–i <file_job_id] [<job_id>]

• Récupérer le résultat d’un job « done »:• glite-wms-job-output [--dir <repertoire_resultat>]

[–i <file_job_id] [<job_id>]

• Retrouver les informations sur les jobs soumis:• glite-wms-job-logging-info [–i <file_job_id]

[<job_id>]