27
FP6−2004−Infrastructures−6-SSA-026409 www.eu-eela.org E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM FES Cuautitlán Tutorial en grid, visualización, y cómputo de alto rendimiento Ciudad de México, Octubre 23 al 26 de 2007 Basada en la presentación de Claudio Cherubino en el 4º Tutorial EELA

FP62004Infrastructures6-SSA-026409 E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Embed Size (px)

Citation preview

Page 1: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

FP6−2004−Infrastructures−6-SSA-026409

www.eu-eela.org

E-infrastructure shared between Europe and Latin America

Jobs Especiales

Moisés Hernández Duarte

UNAM FES CuautitlánTutorial en grid, visualización, y cómputo de alto rendimientoCiudad de México, Octubre 23 al 26 de 2007Basada en la presentación de Claudio Cherubino en el 4º Tutorial EELA

Page 2: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 2

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Agenda

• Jobs MPI en gLite

• DAG (Directed Acyclic Graph)

• Colección de Jobs

• Jobs Paramétricos

Page 3: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 3

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Un vistazo a MPI

• La ejecución de jobs paralelos es una característica esencial para las aplicaciones informáticas modernas.

• La biblioteca mas utilizada para soportar jobs paralelos es MPI (Message Passing Interface)

• En la actualidad, los jobs paralelos pueden ser ejecutados sólo en un Computing Element (CE) específico; – Aún cuando existen varios proyectos relacionados con la

posibilidad de ejecutar jobs paralelos en Worker Nodes (WN’s) que pertenezcan a diferentes CE’s.

Page 4: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 4

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Requerimientos & configuraciones

• Para garantizar que el job MPI pueda ejecutarse, deben satisfacerse los requerimientos siguientes:– El software MPICH debe estar instalado y colocado en la

variable de ambiente PATH de cada WN perteneciente al CE.

– Para su ejecución, algunas aplicaciones MPI requieren un sistema de archivos compartido entre los WN’s.

La variable VO_<name_of_VO>_SW_DIR deberá contener el nombre de un directorio en caso de sistema de arhcivos compartido (SHARED).

La variable VO_<name_of_VO>_SW_DIR deberá contener “.” si no hay sistema de archivos compartido (NO SHARED).

Page 5: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 5

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

• Desde el punto de vista del usuario, los jobs que serán ejecutados como MPI se especifican estableciendo el atributo JDL JobType en MPICH además de especificar el atributo NodeNumber.

Ejem.:

JobType = “MPICH”;

NodeNumber = 4;

Este atributo define el número de CPU’s requerido para la aplicación

Page 6: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 6

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

• Cuando se incluyen los dos atributos previos en el archivo JDL, la User Interface (UI) automaticamente agrega la siguiente expresión:

a la expresión Requirements del archivo JDL con la intensión de encontrar el mejor recurso donde el job pueda ser ejecutado.

(other.GlueCEInfoTotalCPUs >= NodeNumber) &&

Member (“MPICH”,other.GlueHostApplicationSoftwareRunTimeEnvironment)

Page 7: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 7

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Crear el archivo “mpi-test.jdl” dentro de $HOME/gLite/Other y colocar el siguiente código dentro del archivo:

[

Type = "Job";

JobType = "MPICH";

Executable = “cpi";

NodeNumber = 2;

StdOutput = “cpi.out";

StdError = “cpi.err";

InputSandbox = {"cpi"};

OutputSandbox = {“cpi.err",“cpi.out"};

RetryCount = 0;

]

Ejercicio MPI

Page 8: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 8

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Envío de jobs MPI

[glite-tutor] /home/jmoises > glite-job-submit -o id mpi-test.jdl

Selected Virtual Organisation name (from proxy certificate extension): gilda

Connecting to host glite-rb.ct.infn.it, port 7772Logging to host glite-rb.ct.infn.it, port 9002

========== glite-job-submit Success ====================== The job has been successfully submitted to the Network

Server. Use glite-job-status command to check job current status.

Your job identifier is:

- https://glite-rb.ct.infn.it:9000/bsrbbzbcXZWSzU3iUYlm6g

The job identifier has been saved in the following file: /home/jmoises/id==========================================================

Page 9: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 9

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Estado y Salida MPI

Consultar el estado del job ejecutando el comando siguiente:

[glite-tutor] /home/jmoises > glite-job-status -i id

…………………………………………….

Cuando el estado del job es “DONE”, puedes obtener la salida con el comando siguiente:

[glite-tutor] /home/jmoises > glite-job-output -i id

……………………………………………

Page 10: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 10

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

• LCG-2 User Guide Manuals Series– https://edms.cern.ch/file/454439/LCG-2-UserGuide.pdf

• http://oscinfo.osc.edu/training/

• http://www.netlib.org/mpi/index.html

• http://www-unix.mcs.anl.gov/mpi/learning.html

• http://www.ncsa.uiuc.edu/

MPI en la web…

Page 11: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 11

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Workload Manager Proxy

Page 12: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 12

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Un vistazo a WMProxy

• WMProxy (Workload Manager Proxy) – Es un servicio nuevo que brinda acceso a la funcionalidad

Workload Management System (WMS) de gLite a través de una interfaz simple basada en Web Services.

– Ha sido diseñada para manejar eficientemente un gran número de peticiones para envío y control de jobs en el WMS.

– La interfaz del servicio cumple con los estándares de Web Services y la arquitectura SOA, en particular se apega al WS-I desarrollado en C++ utilizando gsoap 2.7.6b.

Page 13: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 13

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Nuevos tipos de petición

• El soporte para nuevos tipos descansa fuertemente en convertidores JDL, recientemente desarrolados y en el soporte de envío DAG– Todas las conversiones JDL se realizan en el servidor– Un único envío para varios jobs

• Todos los nuevos tipos de petición pueden ser monitoreados y controlados a través de un sólo manejador (el id de la petición)– Sin embargo a cada sub-job se le puede controlar y hacer seguimiento

en forma independiente a través de su propio id.

• Comandos/API’s de cliente WMS más “Inteligentes” – Permite envíos de DAGs, colecciones de jobs y jobs paramétricos

explotando el concepto de “cajón compartido”– Permite generación y envío automático de colecciones y DAG’s desde

conjuntos de archivos JDL localizados en directorios especificados por el usuario en la UI

Page 14: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 14

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

WMProxy : envío & monitoreo

• Para el envío de jobs con WMProxy, es obligatorio delegar credenciales:

• Los comandos de envío/monitoreo son ligeramente diferentes, pero la mayoría de las “viejas” opciones están soportadas

glite-wms-job-delegate-proxy -d del_ID

glite-wms-job-submit -d del_ID collection.jdl

glite-wms-job-status jobID

glite-wms-job-output \

https://glite-rb.ct.infn.it:9000/LHIIGaCVdl7Olm

sz0jpI_g

Page 15: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 15

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

El job DAG

• Un job DAG es un conjunto de jobs donde la entrada, salida o ejecución de uno o más jobs puede depender de otros jobs

• Las dependencias están representadas a través de Directed Acyclic Graphs, donde los nodos son jobs, y las flechas identifican las dependencias

nodeA

nodeB nodeC NodeF

nodeD

Page 16: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 16

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Estructura JDL

Page 17: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 17

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Atributo: Nodes

Page 18: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 18

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Atributo: Dependencies

Page 19: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 19

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

DAG jdl[ type = "dag"; max_nodes_running = 4; nodes = [ nodeA = [ file ="nodes/nodeA.jdl" ; ]; nodeB = [ file ="nodes/nodeB.jdl" ; ]; nodeC = [ file ="nodes/nodeC.jdl" ; ]; nodeD = [ file ="nodes/nodeD.jdl"; ]; dependencies = { {nodeA, nodeB}, {nodeA, nodeC}, { {nodeB,nodeC}, nodeD } } ];]

La descripción del nodo también puede hacerse

aquí, en lugar de utilizar archivos

separados

Page 20: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 20

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Colección de Job

• Una colección de jobs es un conjunto independiente de éstos, que el usuario desea enviar y monitorear a través de una sóla petición

• Los jobs de una colección se envían como nodos DAG sin dependencias

• El JDL es una lista que describe los sub-jobs

[ Type = "collection"; VirtualOrganisation = “gilda";

nodes = { [ <job descr 1 >], [ <job descr 2 >], …};

]

Page 21: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 21

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

‘Scattered’ Input Sandboxes

• El Cajón de entrada (Input Sandbox) puede contener– Rutas de archivo en la máquina UI– URI apuntando archivos en un servidor gridFTP/HTTPS remoto

InputSandbox = {"gsiftp://neo.datamat.it:2811/var/prg/sim.exe","https://ghemon.cnaf.infn.it:8443/data/idat_1","file:///home/pacio/myconf“ };

• También se puede especificar una URI básica que se aplique a todos los archivos sandbox

InputSandboxBaseURI = "gsiftp://matrix.datamat.it:2811/var";

• Sólo los archivos locales (file://) se suben al nodo WMS• Los archivos apuntados por las URI’s son directamente

descargados en el WN por el JobWrapper justo antes de iniciar el job

Page 22: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 22

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

‘Scattered’ Output Sandboxes

• El JDL ha sido enriquecido con nuevos atributos para especificar los destinos de los archivos listados en la lista de atributos de la OutputSandboxOutputSandbox = { "jobOutput",

"run1/event1","jobError" };

OutputSandboxDestURI = {"gsiftp://matrix.datamat.it/var/jobOutput","https://grid003.ct.infn.it:8443/home/cms/event1",

"gsiftp://matrix.datamat.it/var/jobError" };

• También se puede definir una URI básica que se aplique a todos los archivos sandbox files

OutputSandboxBaseDestURI = "gsiftp://neo.datamat.it/home/run1/";

• Los archivos son copiados por el JobWrapper al destino especificado, cuando el job completa su ejecución, sin transitar por el nodo WMS

Page 23: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 23

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Job collection example

[ type = "collection"; InputSandbox = {"date.sh"}; RetryCount = 0; nodes = { [ file ="jobs/job1.jdl" ; ], [ [

Executable = "/bin/sh"; Arguments = "date.sh"; Stdoutput = "date.out"; StdError = "date.err"; OutputSandbox ={"date.out", "date.err"};]

], [ file ="jobs/job3.jdl" ; ] };]

Todos los nodos compartirán esta Input Sandbox

Page 24: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 24

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Jobs Paramétricos

• Un job paramétrico es aquel en el que uno o mas de sus atributos son parametrizados

• El valor de los atributos varía de acuerdo al parámetro

• El monitoreo/manejo del Job se realiza siempre a través de un jobID único, como si el job fuera sencillo

[ JobType = "Parametric"; Executable = "/bin/sh"; Arguments = "md5.sh input_PARAM_.txt"; InputSandbox = {"md5.sh", "input_PARAM_.txt"}; StdOutput = "out_PARAM_.txt"; StdError = "err_PARAM_.txt"; Parameters = 4; ParameterStart = 1; ParameterStep = 1; OutputSandbox = {"out_PARAM_.txt", "err_PARAM_.txt"};]

Page 25: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 25

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Jobs Paramétricos / 2

• El parámetro puede ser también una lista de cadenas• InputSandbox (si existe) debe ser coherent con los

parámetros[ui-test] /home/giorgio/param > cat param2.jdl[ JobType = "Parametric";

Executable = “/bin/cat"; Arguments = “input_PARAM_.txt”;

InputSandbox = "input_PARAM_.txt"; StdOutput = "myoutput_PARAM_.txt"; StdError = "myerror_PARAM_.txt"; Parameters = {earth,moon,mars}; OutputSandbox = {“myoutput_PARAM_.txt”};

]

[ui-test] /home/giorgio/param > ls

inputEARTH.txt inputMARS.txt inputMOON.txt param2.jdl

Page 26: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 26

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Referencias

• JDL attributes specification for WM proxy– https://edms.cern.ch/document/590869/1

• WMProxy quickstart– http://egee-jra1-wm.mi.infn.it/egee-jra1-wm/wmproxy_client_quickstart.shtml

• WMS user guides– https://edms.cern.ch/document/572489/1

Page 27: FP62004Infrastructures6-SSA-026409  E-infrastructure shared between Europe and Latin America Jobs Especiales Moisés Hernández Duarte UNAM

Tutorial para Usuarios, Ciudad de México, 23 y 24 de Octubre de 2007 27

E-infrastructure shared between Europe and Latin America

FP6−2004−Infrastructures−6-SSA-026409

Gracias . . . !