Seminaire Grille21 Novembre 2005 www euegee org Job

  • Slides: 27
Download presentation
Seminaire Grille-21 Novembre 2005 www. eu-egee. org Job Soumission N. Lajili Présentation faite à

Seminaire Grille-21 Novembre 2005 www. eu-egee. org Job Soumission N. Lajili Présentation faite à partir des slides de Fokke Dijkstra EGEE is a project funded by the European Union under contract IST-2003 -508833

Plan • Description du Workload Management System • Soumission d’un Job sur la grille

Plan • Description du Workload Management System • Soumission d’un Job sur la grille Le cycle de vie du job Préparation d’un job Exemple de soumission Langage de description des jobs (JDL) Role de WMS Chiffrage

Le WMS • Les utilisateurs soumettent leur jobs via le Workload Management System •

Le WMS • Les utilisateurs soumettent leur jobs via le Workload Management System • Le but du WMS est d’ordonnancer, distribuer les jobs et de gérer les ressources d’une grille de calcul. • Il permet aux utilisateurs de : Soumettre un job De le mettre en exécution Suivre le statut de ce job Récupérer les résultats de ce job • Le WMS essaie d’optimiser l’utilisation des ressources de la grille

Sous-ensembles du WMS • WMS est composé des modules suivants: 1. User Interface (UI)

Sous-ensembles du WMS • WMS est composé des modules suivants: 1. User Interface (UI) : point d’entrée pour les utilisateurs 2. Resource Broker (RB) : l’ordonnanceur, en charge 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 service (LB) : Base de données [My. SQL] qui enregistre les statuts de tous les jobs soumis

Job Submission Scenario Replica Location Service (RLS) Information System (IS) Resource Broker (RB) Logging

Job Submission Scenario Replica Location Service (RLS) Information System (IS) Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting Resource Broker (RB) Storage Element (SE) Job Status Logging & Bookkeeping (LB) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status Information System (IS) submitted

A Job Submission Example Replica Location Service (RLS) Job Status Information System (IS) submitted waiting ready scheduled Resource Broker (RB) Logging & Bookkeeping (LB) Broker. Info Job Status Storage Element (SE) Job Submission Service (JSS) Computing Element (CE) running

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting ready scheduled Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting ready scheduled Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting ready scheduled Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Computing Element (CE) running

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting ready scheduled Resource Broker (RB) Logging & Bookkeeping (LB) Storage Element (SE) Job Submission Service (JSS) Output Sandbox running done outputready Computing Element (CE)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS)

A Job Submission Example Replica Location Service (RLS) Job Status submitted Information System (IS) waiting ready Output Sandbox Resource Broker (RB) Storage Element (SE) Job Status Logging & Bookkeeping (LB) scheduled Job Submission Service (JSS) running done outputready Computing Element (CE) cleared

Préparation d’un job • Pour pouvoir soumettre un job on doit : Donner une

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: • 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 (facultatif)

Comment faire un Job Description • Version minimale ( mytest. jdl) Executable = “/bin/echo”;

Comment faire un Job Description • Version minimale ( mytest. jdl) Executable = “/bin/echo”; Arguments = “Bonjour”; Std. Error = “stderr. log”; Std. Output = “stdout. log”; Output. Sandbox = {“stderr. log”, “stdout. log”}; • On spécifie ici : Le programme et ses arguments On définie les STDOUT et STDERR On dit que faire des outputs

Exemple de Job Soumission • Créer un proxy : grid-proxy-init Entrer son mot de

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 (Job. Id) • Requête de status : edg-job-status Job. Id 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 “Output. Ready” on peut récupérer les output : edg-job-get-output Job. Id Et le système retourne le nom d’un répertoire temporaire ( sur l’UI) ou se trouvent nos fichiers de sortie

La soumission [fokke@mu 7 hello]$ grid-proxy-init Your identity: /O=dutchgrid/O=users/O=sara/CN=Fokke Dijkstra Enter GRID pass phrase

La soumission [[email protected] 7 hello]$ grid-proxy-init Your identity: /O=dutchgrid/O=users/O=sara/CN=Fokke Dijkstra Enter GRID pass phrase for this identity: Creating proxy. . . . . Done Your proxy is valid until: Tue Jun 1 22: 11: 46 2004 [[email protected] 7 hello]$ edg-job-submit mytest. jdl Selected Virtual Organisation name (from UI conf file): tutor Connecting to host mu 3. matrix. sara. nl, port 7772 Logging to host mu 3. 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_job. Id) is: - https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q *********************************************** Job. Id

Connaître le statut [fokke@mu 7 hello]$ edg-job-status https: //mu 3. matrix. sara. nl: 9000/Nz

Connaître le statut [[email protected] 7 hello]$ edg-job-status https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q ******************************* BOOKKEEPING INFORMATION: Status info for the Job : https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q Current Status: Done (Success) Exit code: 0 Status Reason: Job terminated successfully Destination: mu 6. matrix. sara. nl: 2119/jobmanager-pbs-long reached on: Tue Jun 1 08: 14: 25 2004 *******************************

Récupérer les sorties [fokke@mu 7 hello]$ edg-job-get-output https: //mu 3. matrix. sara. nl: 9000/Nz

Récupérer les sorties [[email protected] 7 hello]$ edg-job-get-output https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q Retrieving files from host: mu 3. matrix. sara. nl ( for https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q ) ***************************************** JOB GET OUTPUT OUTCOME Output sandbox files for the job: - https: //mu 3. matrix. sara. nl: 9000/Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q have been successfully retrieved and stored in the directory: /tmp/job. Output/fokke_Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q ***************************************** [[email protected] 7 hello]$ cat /tmp/job. Output/fokke_Nz 6 PWWJCjt. T 7 YY 3 PJWDu 5 Q/std. out Goede Morgen

Différents types d’attributs • Deux grandes catégories d’attributs: Ceux concernant le job Définissent le

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, …

Attributs de ressources • Requirements Besoins du job vis à vis des ressources de

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. Glue. CEState. Status == "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. Glue. CEState. Free. CPUs (le plus grand nombre de CPU libres)

Exemple de fichier JDL Executable = “grid. Test”; Std. Error = “stderr. log”; Std.

Exemple de fichier JDL Executable = “grid. Test”; Std. Error = “stderr. log”; Std. Output = “stdout. log”; Input. Sandbox = {“/home/joda/test/grid. Test”}; Output. Sandbox = {“stderr. log”, “stdout. log”}; Input. Data = “lfn: testbed 0 -00019”; Data. Access. Protocol = “gridftp”; Requirements = other. Architecture==“INTEL” && other. Op. Sys==“LINUX” && other. Free. Cpus >=4; Rank = “other. Glue. Host. Benchmark. SF 00”;

Role du RB • L’ordonnanceur est le cœur du WMS. • Il doit trouver

Role du RB • 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.

Role du L&B • Logging and Bookeeping Service: Collecte l'information sur le gestionnaire de

Role du L&B • Logging and Bookeeping Service: Collecte l'information sur le gestionnaire de batch de chaque site et sur les jobs actifs à un moment donné Permet de faire des statistiques sur l’utilisation de la grille Fonctionne avec une BD de type My. SQL

Chiffrage pour le L&B • Une BD est implémentée pour le service L&B ➢

Chiffrage pour le L&B • Une BD est implémentée pour le service L&B ➢ ➢ Nombre de jobs/jour : 2300 Nombre de requetes à la BD L&B/jour : ➢ ➢ ➢ Nombre de tables : 3 Taille moyenne de la BD: 5 MG Durée de vie des données stokées avant archivage : 1 an à 6 mois.

Informations utiles • The LCG-2 User Guide https: //edms. cern. ch/file/454439/1/LCG-2 -User. Guide. pdf

Informations utiles • The LCG-2 User Guide https: //edms. cern. ch/file/454439/1/LCG-2 -User. Guide. pdf • Class. Ad https: //www. cs. wisc. edu/condor/classad