EGEE is a project funded by the European Union under contract IST Job Soumission N.Lajili Seminaire Grille-21 Novembre Présentation faite à partir des slides de Fokke Dijkstra
Séminaire Grille, Novembre 2004 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
Séminaire Grille, Novembre 2004 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
Séminaire Grille, Novembre 2004 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 [MySQL] qui enregistre les statuts de tous les jobs soumis
Job Submission Scenario UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS)
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Job Submit Event Input Sandbox Job Status submitted Replica Location Service (RLS)
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Job Status submitted waiting
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Job Status submitted waiting ready Job Status
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Job Status submitted waiting ready BrokerInfo scheduled Job Status running
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Job Status submitted waiting ready scheduled Input Sandbox running
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Job Status submitted waiting ready scheduled Job Status running
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) submitted waiting ready scheduled running Job Status done Job Status
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) submitted waiting ready scheduled running done Job Status outputready Output Sandbox
A Job Submission Example UI JDL Logging & Bookkeeping (LB) Resource Broker (RB) Job Submission Service (JSS) Storage Element (SE) Computing Element (CE) Information System (IS) Replica Location Service (RLS) Output Sandbox cleared submitted waiting ready scheduled running done Job Status outputready Job Status
Séminaire Grille, Novembre 2004 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)
Séminaire Grille, Novembre 2004 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”};
Séminaire Grille, Novembre 2004 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
Séminaire Grille, Novembre 2004 La soumission 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: 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: - ********************************************************************************************* JobId
Séminaire Grille, Novembre 2004 Connaître le statut hello]$ edg-job-status ************************************************************* BOOKKEEPING INFORMATION: Status info for the Job : Current Status: Done (Success) Exit code: 0 Status Reason: Job terminated successfully Destination: mu6.matrix.sara.nl:2119/jobmanager-pbs-long reached on: Tue Jun 1 08:14: *************************************************************
Séminaire Grille, Novembre 2004 Récupérer les sorties hello]$ edg-job-get-output Retrieving files from host: mu3.matrix.sara.nl ( for ) ********************************************************************************* JOB GET OUTPUT OUTCOME Output sandbox files for the job: - have been successfully retrieved and stored in the directory: /tmp/jobOutput/fokke_Nz6PWWJCjtT7YY3PJWDu5Q ********************************************************************************* hello]$ cat /tmp/jobOutput/fokke_Nz6PWWJCjtT7YY3PJWDu5Q/std.out Goede Morgen
Séminaire Grille, Novembre 2004 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,…
Séminaire Grille, Novembre 2004 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)
Séminaire Grille, Novembre 2004 Exemple de fichier JDL Executable = “gridTest”; StdError = “stderr.log”; StdOutput = “stdout.log”; InputSandbox = {“/home/joda/test/gridTest”}; OutputSandbox = {“stderr.log”, “stdout.log”}; InputData = “lfn:testbed ”; DataAccessProtocol = “gridftp”; Requirements = other.Architecture==“INTEL” && \ other.OpSys==“LINUX” && other.FreeCpus >=4; Rank = “other.GlueHostBenchmarkSF00”;
Séminaire Grille, Novembre 2004 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.
Séminaire Grille, Novembre 2004 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 MySQL
Séminaire Grille, Novembre 2004 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: 5MG ➢ Durée de vie des données stokées avant archivage : 1an à 6 mois.
Séminaire Grille, Novembre 2004 Informations utiles The LCG-2 User Guide ClassAd