La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INFSO-RI-508833 Enabling Grids for E-sciencE www.eu-egee.org PRÁCTICAS Gestión de trabajos en Glite Álvaro Fernández Casaní (IFIC – CSIC) Curso Grid y.

Presentaciones similares


Presentación del tema: "INFSO-RI-508833 Enabling Grids for E-sciencE www.eu-egee.org PRÁCTICAS Gestión de trabajos en Glite Álvaro Fernández Casaní (IFIC – CSIC) Curso Grid y."— Transcripción de la presentación:

1 INFSO-RI-508833 Enabling Grids for E-sciencE www.eu-egee.org PRÁCTICAS Gestión de trabajos en Glite Álvaro Fernández Casaní (IFIC – CSIC) Curso Grid y E-ciencia - 15-18 Julio 2008

2 Enabling Grids for E-sciencE INFSO-RI-508833 Contenidos Envio directo con Globus Cómo Usar WMS (comandos) JDL (Lenguaje de definición de trabajos) Envio de trabajos simples Trabajos con Requirements: necesidades del trabajo Ranking: elegir los mejores recursos Obtener Información de trabajos enviados Trabajos complejos: –Colecciones –Dags –Mpi JDL avanzado Trabajos que acceden a datos

3 Enabling Grids for E-sciencE INFSO-RI-508833 Globus básico (Autenticación) Obtener proxy VOMS –voms-proxy-init -voms gilda (Sistema Información) Localizar un recurso donde enviar un trabajo: –lcg-infosites --vo gilda ce (Globus) Envio de un trabajo a un sitio y cola especifico: –Comando: globus-job-run -q –globus-job-run iceage-ce-01.ct.infn.it:2119/jobmanager-lcgpbs -q long /bin/hostname –(Fijarse en qué máquina real se ejecuta el programa) Ejercicio: Envio a un sitio sin especificar la cola –¿En qué maquina real se ha ejecutado el programa? Ejercicio: Como enviar un programa que no esta en la maquina remota –¿En qué maquina real se ha ejecutado el programa?

4 Enabling Grids for E-sciencE INFSO-RI-508833 Globus – Errores tipicos GRAM Job submission failed because data transfer to the server failed (error code 10) –Posible fallo: Proxy no contiene extensiones voms GRAM Job submission failed because the connection to the server failed (check host and port) (error code 12) –Posible fallo:  Nombre del servidor mal escrito  Problema con firewall GRAM Job failed because the executable does not exist (error code 5) –Posible fallo: ejecutable no existe en servidor remoto

5 Enabling Grids for E-sciencE INFSO-RI-508833 Usar WMS Trabajos corren en batch mode en el grid. Pasos: 1.Crear Fichero de texto en “Job Description Language” 2.Comprobación opcional: list the compute elements that match your requirements (“list match” command) 3.Enviar el trabajo ~ “glite-wms-job-submit myfile.jdl” Non-blocking – Cada trabajo da un identificador. 4.Comprobar el estado del trabajo (glite-job-status) 5.Obtener el resultado del trabajo (glite-wms-job-output)

6 Enabling Grids for E-sciencE INFSO-RI-508833 Job Description Language (JDL) Basado en el lenguaje classAd para expresar un trabajo y sus requerimientos. Especifican: –Atributos del trabajo: tipo de trabajo, ejecutable, variables a instaurar, ficheros entrada, salida, … –Requerimientos: que satisfagan los recursos para poder ejecutar el trabajo.  Recursos computacionales (CEs): tiempo de cómputo, memoria, potencia…  Datos: ficheros remotos necesarios, SEs donde almacenar los datos producidos, protocolos utilizados por la aplicación. –Preferencias: para ordenar los posibles recursos compatibles. Estas especificaciones sirven para emparejar (match- matching) trabajos con el mejor recurso donde ejecutarse: –Referencias a los atributos de los recursos se prefijan con “other.”

7 Enabling Grids for E-sciencE INFSO-RI-508833 JDL-file attributes  Executable – sets the name of the executable file;  Arguments – command line arguments of the program;  StdOutput, StdError - files for storing the standard output and error messages output;  InputSandbox – set of input files needed by the program, including the executable;  OutputSandbox – set of output files which will be written during the execution, including standard output and standard error output; these are sent from the CE to the WMS for you to retrieve  ShallowRetryCount – in case of grid error, retry job this many times (“Shallow”: before job is running)

8 Enabling Grids for E-sciencE INFSO-RI-508833 Especificar un trabajo básico con JDL Los atributos mínimos que tienen que ser especificados: –Nombre del ejecutable –Ficheros donde escribir la salida y la salida de error standard del trabajo –Los argumentos del trabajo si son necesarios –Los ficheros que deben ser transferidos del UI al WN y viceversa [ Executable = “ls -al”; StdError = “stderr.log”; StdOutput = “stdout.log”; OutputSandbox = {“stderr.log”, “stdout.log”}; ]

9 Enabling Grids for E-sciencE INFSO-RI-508833 Executable = “gridTest”; StdError = “stderr.log”; StdOutput = “stdout.log”; InputSandbox = {“/home/joda/test/gridTest”}; OutputSandbox = {“stderr.log”, “stdout.log”}; Requirements = other.GlueCEPolicyMaxCPUTime > 480; ShallowRetryCount = 3; Example JDL file http://trinity.datamat.it/projects/EGEE/wiki/wiki.php?n=JDL.AboutJDL

10 Enabling Grids for E-sciencE INFSO-RI-508833 Hands on! – Envio de trabajos simples https://grid.ct.infn.it/twiki/bin/view/GILDA/SimpleJobSu bmissionhttps://grid.ct.infn.it/twiki/bin/view/GILDA/SimpleJobSu bmission Ejercicio 1) Simple JDL: crear el fichero jdl de ejemplo Ejercicio 2) Credentials delegation: delegar el proxy de usuario al WMS con el nombre sugerido –¿Por qué es necesario delegar tus credenciales? –¿Por qué es necesario este paso en particular y no se hace automáticamente? Ejercicio 3) Job List Match: Comprobar si hay recursos disponibles para el jdl enviado –¿Qué se comprueba en este caso? (más detalles luego)

11 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 4) Job Submission: enviar el jdl que representa el trabajo –¿Qué representa el identificador que obtenemos? –Guardar el identificador en un fichero como se indica Ejercicio 5) Job status: comprobar el estado del trabajo –Comprobar el estado con el identificador –Comprobar el estado con el fichero de identificadores generado en 4) –Utilizar la opcion “-v”. ¿Qué otra información se obtiene? Ejercicio 6) Job output: obtener el resultado del trabajo –Cuando el estado sea “Done” se puede obtener el resultado –De nuevo utilizar el identificador o el fichero –¿Qué se obtiene como resultado? ¿A qué corresponde? Ejercicio 7) Job Cancel: cancelar trabajos –Enviar otro trabajo. Cancelarlo con su identificador. Comprobar es estado de la misma manera que 5)

12 Enabling Grids for E-sciencE INFSO-RI-508833 Estados del trabajo Flag Meaning SUBMITTED submission logged in the Logging & Bookkeeping service WAITjob match making for resources READYjob being sent to executing CE SCHEDULEDjob scheduled in the CE queue manager RUNNING job executing on a Worker Node of the selected CE queue DONEjob terminated without grid errors CLEAREDjob output retrieved ABORTjob aborted by middleware, check reason

13 Enabling Grids for E-sciencE INFSO-RI-508833 Hands on! Atributos JDL https://grid.ct.infn.it/twiki/bin/view/GILDA/MoreOnJDL Ejercicio 1) Input / Output sandbox –Mejor para datos hasta 10 MB. ¿Cómo se envian estos ficheros? –Ejecutable siempre debe estar en el Input Sandbox Ejercicio 2) Requerimientos –Requerimientos computacionales (del CE) expresados con el atributo Requirements. –Expresión que debe evaluarse a cierto en el contexto en el que se evalúe:  Del trabajo, haciendo referencia a atributos propios (self.)  Del recurso, haciendo referencia a atributos de éste (other.) –Los atributos del recurso siguen el schema GLUE (lista a continuación…) –En la práctica sólo el último valor del atributo Requirements se tiene en cuenta. –Si no se especifica, el UI pone el valor por defecto:  Requirements = other.GlueCEStateStatus == “Production” ;

14 Enabling Grids for E-sciencE INFSO-RI-508833 Atributos Glue Relevantes Atributos relevantes de los recursos en el esquema Glue del Information System Comprobar con el comando: “lcg-info --list-attrs” State (objectclass GlueCEState) GlueCEStateRunningJobs: number of running jobs GlueCEStateWaitingJobs: number of jobs not running GlueCEStateTotalJobs: total number of jobs (running + waiting) GlueCEStateStatus: queue status: queueing (jobs are accepted but not run), production (jobs are accepted and run), closed (jobs are neither accepted nor run), draining (jobs are not accepted but those in the queue are run) GlueCEStateWorstResponseTime: worst possible time between the submission of a job and the start of its execution GlueCEStateEstimatedResponseTime: estimated time between the submission of a job and the start of its execution GlueCEStateFreeCPUs: number of CPUs available to the scheduler

15 Enabling Grids for E-sciencE INFSO-RI-508833 Atributos Glue Relevantes (2) Policy (objectclass GlueCEPolicy) GlueCEPolicyMaxWallClockTime: maximum wall clock time available to jobs submitted to the CE, in seconds (previously it was in minutes) GlueCEPolicyMaxCPUTime: maximum CPU time available to jobs submitted to the CE, in seconds (previously it was in minutes) GlueCEPolicyMaxTotalJobs: maximum allowed total number of jobs in the queue GlueCEPolicyMaxRunningJobs: maximum allowed number of running jobs in the queue GlueCEPolicyPriority: information about the service priority

16 Enabling Grids for E-sciencE INFSO-RI-508833 Atributos Glue Relevantes (3) Architecture (objectclass GlueHostArchitecture) GlueHostArchitecturePlatformType: platform description GlueHostArchitectureSMPSize: number of CPUs Processor (objectclass GlueHostProcessor) GlueHostProcessorVendor: name of the CPU vendor GlueHostProcessorModel: name of the CPU model GlueHostProcessorVersion: version of the CPU GlueHostProcessorOtherProcessorDescription: other description for the CPU […]

17 Enabling Grids for E-sciencE INFSO-RI-508833 Atributos Glue Relevantes (4) Application software (objectclass GlueHostApplicationSoftware) GlueHostApplicationSoftwareRunTimeEnvironment: list of software installed on this host Main memory (objectclass GlueHostMainMemory) GlueHostMainMemoryRAMSize: physical RAM GlueHostMainMemoryVirtualSize: size of the configured virtual memory Benchmark (objectclass GlueHostBenchmark) GlueHostBenchmarkSI00: SpecInt2000 benchmark GlueHostBenchmarkSF00: SpecFloat2000 benchmark Network adapter (objectclass GlueHostNetworkAdapter) […] GlueHostNetworkAdapterOutboundIP: permission for outbound connectivity GlueHostNetworkAdapterInboundIP: permission for inbound connectivity

18 Enabling Grids for E-sciencE INFSO-RI-508833 Ejemplos de Requirements Ejercicio 2b) Crear varios trabajos con los siguientes requerimientos construyecto el “Requirement” adecuado: –Enviar a un CE especifico ( de la lista obtenida con job-list-match) –other.GlueCEUniqueId –Usar un gestor de colas específico “PBS” y que el número total de CPUS sea al menos 10 –other.GlueCEInfoLRMSType == “PBS” && other.GlueCEInfoTotalCPUs > 10 –Utilizar el operador “Member” para requerir que el sitio de destino tenga instalado el entorno “POVRAY-3.5” –Member(“POVRAY-3.5”, other.GlueHostApplicationSoftwareRunTimeEnvironment) –Expresiones regulares. Buscar CEs de Padova solamente (Dominio “pd.infn.it”) –RegExp(“pd.infn.it”, other.GlueCEUniqueId) –Unión de expresiones con el operador and (&&) y OR (||).  Que tenga instalado “MPICH”, que pueda correr trabajajos que duren mas de 24 horas ( señalado en segundos), y que permitan conectividad hacia fuera

19 Enabling Grids for E-sciencE INFSO-RI-508833 Ejemplos de Ranking Ejercicio 3) JDL with rank: mostrar preferencias. –Atributo Rank expresa preferencias en la selección de CEs. –Se debe evaluar a un número de coma flotante –Usualmente se seleccionará el CE con mayor valor calculado (Ver políticas y algoritmos de selección más adelante) –Si no se especifica, se define un valor por defecto en el UI:  Rank == -other.GlueCeStateEstimatedResponseTime –Probar a ver que rango calculado tiene con  “glite-job-list-match –rank” –Hace referencias a atributos del CE, o funciones definidas.  ( el “último” valor de las cpus libres). Hay que tener en cuenta que se publicas por cola (CE representa un “endpoint”: gatekeeper+cola). other.GlueCeStateFreeCPUs  Si hay trabajos esperando, se elige el CE que tenga menor número de ellos, y si no se elige el CE que tenga mayor número de cpus libres (other.GlueCEStateWaitingJobs == 0 ? other.GlueCEStateFreeCPUs : - other.GlueCEStateWaitingJobs

20 Enabling Grids for E-sciencE INFSO-RI-508833 Hands On! Informacion trabajos enviados Ejercicios sobre información de trabajos enviados ( a partir de su identificador) Ejercicio 1) Obtener jdl de un trabajo enviado –Obtener el jdl original de un trabajo enviado anteriorment: glite- wms-job-info –j –¿Es exactamente igual al trabajo que se envió? ¿Qué atributos se han añadido o quitado? Ejercicio 2) Probar lo mismo con la opcion –jdl –Obtiene el jdl que se ha generado en el WMS para enviar el trabajo realmente Ejercicio 3) Obtener información de un proxy delegado –glite-wms-job-info -p –glite-wms-job-info -d

21 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 4) ya hemos visto como ver el estado actual de un trabajo (Job Status) –comprobar el estado actual de algún identificador enviado anteriormente Ejercicio 5) Historial de un trabajo: –Ver los estados por los que ha pasado un trabajo: glite-wms-job- logging-info –Comprobar los eventos y el tiempo. Fijarse en la hora ( formato CEST) –Utilizar la opcion –v para obtener más información de cada evento –¿Quien registra el evento Running? –¿Quién registra ReallyRunning?¿Qué ha pasado entre estos dos eventos? –El evento Done, ¿significa que el trabajo ha acabado bien?

22 Enabling Grids for E-sciencE INFSO-RI-508833 Hands On! Trabajos complejos https://grid.ct.infn.it/twiki/bin/view/GILDA/WmProxyUse Ejercicio 1) Job Collections: –Ejecutar colección de ejemplo –Obtener resultados en un directorio con la opcion “—dir” de glite- wms-job-get-output Ejercicio 1b) Opción linea comandos –collection –Podemos enviar todos los jdl de un directorio con la opcion glite- wms-job-submit –collection –Crear un directorio nuevo y poner varios jdl anteriores, y enviarlos –Obtener el resultado –Comprobar el jdl enviado realmente con el comando glite-wms- job-info visto anteriormente. ¿Qué se ha enviado?

23 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 2) DAG jobs –Ejecutar DAG de ejemplo –Comprobar el estado y que se respetan las restricciones expresadas en el jdl. –Probar a hacer un joblistmatch de un dag. ¿ Se pueden ver los recursos compatibles ? –Probar a hacer un dag que no se pueda ejecutar en ninguna parte ( ej: Poner en Requirements que se ejecute en un sitio que no existe). ¿Cuál es el error que nos da al comprobar el estado? Ejercicio 3) Parametric jobs –Ejecutar trabajos paramétricos de ejemplo –Más información aquí: –http://trinity.datamat.it/projects/EGEE/wiki/wiki.php?n=JDL.JDLT ypes

24 Enabling Grids for E-sciencE INFSO-RI-508833 Hands On! Trabajos MPI https://grid.ct.infn.it/twiki/bin/view/GILDA/MPIJobs Ejercicio 1) Realizar el envío del trabajo mpi –El ejecutable hay que descargarselo –Comprobar estado del trabajo –Comprobar cual es el jdl enviado realmente (como hemos visto anteriormente) –Cuantas Cpus podriamos requerir, ¿Dónde podemos ver esto?

25 Enabling Grids for E-sciencE INFSO-RI-508833 Hands on! JDL Avanzado Ejercicio 1) Atributos Prologue / Epilogue  Prologue: ejecutable que se lanza antes del Programa real ( para establecer entorno, comprobaciones);  PrologueArguments: argumentos a pasar al anterior  Epilogue / EpilogueArguments: idéntico para cuando acaba el trabajo –Sirve para establecer entorno, y para realizar tareas despues (por ejemplo guardar ficheros en servidores remotos como se verá en las prácticas. –Crear un jdl a partir de uno anterior ( por ejemplo el MPI) que realice:  Con Prologue, que devuelva siempre resultado correcto (/bin/true)  Con Epilogue, que guarde el fichero generado en un servidor remoto ( lcg-cr –v )

26 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 2) ShallowRetryCount –Reenvio de trabajos fallidos  RetryCount: numero de veces a reenviar, si falla el programa mismo  ShallowRetryCount: si falla algun componente grid –Ej: si falla “Prologue” se utiliza ShallowRetryCount –Si falla el programa mismo, o el “Epilogue” se utiliza RetryCount –Para comprobarlo, modificar el programa anterior para que:  Prologue siempre falle (/bin/false)  Cambiar el numero de repeticiones para que lo reintente 2 veces

27 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 3) Job Perusal –Es posible obtener partes de ficheros generados antes de que acabe todo el trabajo. –Simular la creacion de ficheros con el siguiente script: –cat generate10files_1perminute.sh #!/bin/bash # 10 files for fich in `seq 1 10`; do # 60 seconds per file file=fichero_$fich echo -n -e "\nGenerating file: $file." for i in `seq 1 6`; do dd if=/dev/zero of=/tmp/$file_$$ count=1 bs=1k 2> /dev/null cat /tmp/$file_$$ >> $file rm /tmp/$file_$$ echo -n "." sleep 10 done

28 Enabling Grids for E-sciencE INFSO-RI-508833 Crear el jdl: cat hostname-wmsproxy-jobperusal.jdl #Perusal file enable # Executable = "generate10files_1perminute.sh"; Arguments = ""; StdOutput = "std.out"; StdError = "std.err"; InputSandbox = {"generate10files_1perminute.sh"}; OutputSandbox = {"std.out","std.err","fichero_1","fichero_10"}; PerusalFileEnable = true; Ejecutar el trabajo, cuando esté corriendo obtener los ficheros que se van generando (antes de finalizar el trabajo):

29 Enabling Grids for E-sciencE INFSO-RI-508833 Primero activar el fichero que queremos bajar glite-wms-job-perusal --set -f Después, obtener ese fichero: glite-wms-job-perusal --get -f Util para trabajos largos o que generen ficheros grandes ( se pueden obtener partes de un fichero también)

30 Enabling Grids for E-sciencE INFSO-RI-508833 Ejercicio 4) Brokerinfo –Realiza un script que utilice el comando Brokerinfo para saber:  El CE donde se está ejecutando  El SE que tiene cerca ese SE  La Vo con la que se ha mandado el trabajo

31 Enabling Grids for E-sciencE INFSO-RI-508833 Acceso a Datos Se verá más en detalle en la práctica de ata management: https://grid.ct.infn.it/twiki/bin/view/GILDA/JobDataWMS 1)Copiar un fichero a un sitio remoto 1) lfc-mkdir /grid/gilda/users/$USER 2) lcg-cr -l /grid/gilda/users/alferca/fich1 2)Hacer un trabajo que requiera ese fichero


Descargar ppt "INFSO-RI-508833 Enabling Grids for E-sciencE www.eu-egee.org PRÁCTICAS Gestión de trabajos en Glite Álvaro Fernández Casaní (IFIC – CSIC) Curso Grid y."

Presentaciones similares


Anuncios Google