Académique Documents
Professionnel Documents
Culture Documents
2. condor_config_val BIN: Permite ver dnde est Condor instalado y el resto de comandos
disponibles.
Nota: Este comando muestra que estamos trabajando sobre la mquina masterg4 y su respectiva ubicacin.
Nota: Los archivos de configuracin de Condor para este ejercicio estn en la ruta: /opt/condor742/local.masterg4/condor_config.local
9. ps aux | grep condor | grep -v grep: Muestra qu servicios de Condor se estn ejecutando
3. condor_status -l | more: Comprueba el ClassAd (tareas de Condor) de las mquinas del pool
Para cada mquina se obtiene la siguiente informacin: Name El nombre. OpSys El sistema operativo. Arch La arquitectura. State Su estado actual Claimed cuando ha sido reclamada para ejecutar un trabajo, Unclaimed cuando no est ejecutando trabajo. Activity Es Busy or Idle. LoadAv La carga media de la mquina. Mem La memoria de la mquina en megabytes. ActivityTime Tiempo durante el cual la mquina ha estado haciendo lo que indica actualmente.
1. condor_q: Controla el estado de nuestros trabajos Permite obtener informacin sobre los
trabajos (jobs) que se estn ejecutando en el pool.
2. condor_q global: Permite obtener informacin sobre los trabajos en todas las colas.
4. condor_rm id: Permite borrar los trabajos que estn en la cola, hay que enviarle como
parmetro el id del trabajo a eliminar de la cola.
La informacin que se proporciona para cada trabajo es la siguiente: ID Identificador el trabajo (Cluster.Proceso). OWNER nos india el dueo del trabajo. SUBMITTED Fecha en la que el trabajo fue enviado. RUN_TIME Tiempo durante el cual el trabajo ha estado en ejecucin ST Estado del trabajo (I significa idle y R running) PRI Indica la prioridad del trabajo, desde -20 a +20, donde los nmeros mayores significan mayor prioridad. SIZE El tamao del ejecutable en megabytes. CMD El nombre del ejecutable. En caso que la tarea no haya terminado su ejeciion condor_q mostrara su estados I, H, R. I: Idle indica que la tarea no ha iniiado su ejecuin esto por os causas
TALLER No. 2 Enviando trabajos a Condor Crear un directorio ejercicio1 y dentro de este crear la estructura de directorios para todos los ejercicios que se realizarn en las prcticas. Esto se hace desde el usuario condor y en el master nicamente.
Esto permite al ejecutar limpia.sh, borrar todos los archivos generados por condor en las ejecuciones.
Ejemplo 1 El primer ejemplo, es el clsico hola mundo. Entramos al directorio hola y creamos el script hola.sh el contenido es:
Le damos permisos de ejecucin y verificamos que funciona. Ahora creamos el archivo de descripcin llamado hola.sub del trabajo para que condor lo ejecute.
Ahora utilizamos el comando condor_submit para ejecutar el trabajo sobre el pool de condor.
Con condor_q verificamos si el trabajo queda en estado held quiere decir que hubo un problema durante la ejecucin. Compruebe el log para obtener ms obtener ms detalles. Cuando el trabajo ha terminado su ejecucin desaparece de la lista. Para comprobar lo que ocurri durante la ejecucin del trabajo se puede mirar el contenido del archivo de log, para este caso hola.log
Este script imprime los parmetros que se enven como argumentos. Le damos permisos de ejecucin y verificamos que funciona.
Ahora creamos el archivo de descripcin llamado imprimir.sub y crearemos este archivo con unas nuevas opciones.
Como veremos se hace uso de la macro $(Process) la cual es sustituidapor reemplazandola por el numero del proceso. De esta forma se puede parametrizar los archivos que utiliza cada trabajo. La opcin Arguments permite especificar argumentos al programa ejecutable.
condor
La opcin Queue, en este caso, se pone varias veces para enviar varios trabajos para que condor lo ejecute. El archivo imprimir.sub tiene el siguiente contenido:
Ahora utilizamos el comando condor_submit para ejecutar el trabajo sobre el pool de condor. A continuacin esperamos a que se termine de ejecutar.
Con condor_q verificamos si el trabajo queda en estado held quiere decir que hubo un problema durante la ejecucin.
Cuando el trabajo ha terminado su ejecucin desaparece de la lista. Para comprobar lo que ocurri durante la ejecucin del trabajo se puede mirar el contenido del archivo de log.
Hay comprobar el resultado de la ejecucin del trabajo en el archivo respectivo. 1. Qu pasa si a dejamos el parmetro del ltimo Queue como Queue 4? pego Se encolara cuatro veces en cada peticin esto es si se le colaca al final del submit Queue4. Con el parmetro Queue indica que se va a ejecutar el trabajo una vez, al especificar un numero: Queue 4 o escribir 4 veces Queue el trabajo se ejecutara tantas veces como lo hayamos escrito.
Ejemplo 4 Ahora se va a crear un nuevo archivo de descripcin de trabajo para ejecutar 8 veces el shell script el archivo se llama imprimir8.sub y tiene el siguiente contenido: Enviando trabajos tenemos que especificar algunas opciones para que Condor sea capaz de manejar adecuadamente nuestro trabajo. Estas opciones incluyen que comandos se van a ejecutar cuantas veces y con que entrada, sala de cada comando requisitos dde la maquina donde se v a ejecutar, esta informacin se especifica en el fichero de descripcion el envio. Universe: Elegimos un universo, por defecto se usara el universo Vanilla.
Executable: se especifica ruta y el nombre del archivo ejcutable. Log: Archivo done Condor almacenara un histrico de lo que ha ocurrido a nuestro trabajo e informacin como su cdigo de saliada . Output: Archivo donde se escribir la salida del comando, si no se especifica , se utilizara el comando /ev/null. Error: Archivo done se escribir la salida de rror del comando stderr si no se especifica , se utilizara el omando /ev/null. Queue 8: Indica a Condor que se va a ejecutar ocho veces este trabajo
Ahora utilizamos el comando condor_submit para ejecutar el trabajo sobre el pool de condor. Una vez guarao este fichero, le indicamos a condor que lo ejecute de la siguiente manera:
A continuacin esperamos a que se termine de ejecutar. Con condor_q verificamos si el trabajo queda en estado held quiere decir que hubo un problema durante la ejecucin. Compruebe el log para obtener ms obtener ms detalles. Cuando el trabajo ha terminado su ejecucin desaparece de la lista. Para comprobar lo que ocurri durante la ejecucin del trabajo se puede mirar el contenido del archivo de log. Hay comprobar el resultado de la ejecucin del trabajo en el archivo respectivo.
Verifique donde se han ejecutado los trabajos, esto lo puede hacer con: cat *.log | grep executing
Si se vuelven a enviar estos trabajos se pueden observar los procesos que se crean. Con el comando ps aux | grep condor puede verificar que en la mquina de envo se crea un proceso condor_shadow por cada trabajo enviado, cuyo cometido es monitorizar la ejecucin de cada uno de ellos.
Universo standard Hasta ahora hemos estado enviando trabajos dentro del universo vanilla. Condor soporta otros universos que proporcionan interesante caractersticas. Este universo es el menos restrictivo on los trabajos que se pueden enviar( aepta cualquier programa escrito en cualquier lenguaje). La parte negativa no permite checkpointing o llamadas al sistema remotas En concreto, el universo standard es muy til para trabajos que se ejecutan durante mucho tiempo ya que condor hace checkpoints de ellos que luego permiten pausarlos y restaurarlos. El universo stardard ofrece dos grandes ventajas respecto al universo vanilla: 1. Los trabajos puede ser restaurados desde el instante en el que se hizo un checkpoint, ya que un checkpoint de un programa significa guardar el disco en su estado actual de ejecuion antes de parar el proceso, gracias a este un programa puede parar (guardandoce su estado en un fichero), y
mas adelante se puede volver a ejecutar desde el punto exacto en que se aborto, para que un programa pueda ser enviado a este universo ha de estar enlazado con libreras de condor, Esto permite que si el trabajo se ejecuta en una mquina que falla se puede continuar su ejecucin en otra sin tener que empezar desde el principio 2. El acceso a archivos es redirigido de forma transparente desde la mquina donde se ejecuta el trabajo a la mquina desde la que se envi el trabajo. Las transferencias de archivos no son necesarias, los archivos se crean en la mquina de envo Para poder utilizar el universo standard es necesario recompilar los programas con las libreras de condor. Debido a que condor no funciona en modo kernel sino en modo usuario, no todos los programas se pueden ejecutar en el universo stardard, hay limitaciones Ver documentacin de condor apartado Current Limitations. http://www.cs.wisc.edu/condor/manual/v6.7/1_4Current_Limitations.html Cree o entre al directorio compila
Cree el archivo primos.c el contenido es: #include <stdio.h> #include <sys/times.h> int contadorPrimos; int checkIsPrime(int numero) { int i; if (numero==1) return(0); for (i=2;i<numero;i++) { if (numero%i==0) return(0); } return(1); } int main(int argc, char *argv[]) { int i,inicio, final; clock_t start, end; if (argc!=3) { printf("Cantidad incorrecta de parametros\n"); printf("... <numero inicial> <numero final>\n"); } else { inicio=atoi(argv[1]); final=atoi(argv[2]); printf("Rango: inicio=%d ... final=%d\n",inicio,final); contadorPrimos=0;
start=times(NULL); for (i=inicio;i<=final;i++) { if (checkIsPrime(i)) { contadorPrimos++; //printf("%d es primo\n",i); } } end=times(NULL); printf("Total de primos: %d (%ld)\n",contadorPrimos,end-start); } return 0; }
Luego compile una versin para usarlo a nivel local gcc -o localPrimos primos.c
Pruebelo ./ localPrimos 0 10
Verifique el tiempo gastado ahora de 0 a 4000 y de 0 a 1000000 de manera local, esta medida esta en TICKS o ciclos de reloj de la CPU usada en un proceso.
Duracin: 8
Duracin: 2 55
Para poder ejecutar el trabajo sobre el universo standard hay que enlazar el programa con las libreras de condor. Compile para condor condor_compile gcc -o primos primos.c Los warnigs que aparecen tras la compilacin se pueden ignorar. Es conveniente eliminar la informacin de depuracin del ejecutable
ls -l primos
Verifique el tamao del archivo A pesar de eliminar la informacin de depuracin, el ejecutable sigue ocupando bastante debido o a que contiene las libreras de condor. Cree primos.sub
Cree la estructura del directorio en todos los nodos, copie el ejecutable primos en ese directorio de todos los nodos Con contro+d guardamos el archivo y verificamos el contenido. Si no usamos should_transfer_files = YES debe crear la estructura del directorio en todos los nodos.
Enve el Job, verifique donde se corren los jobs, cual fue el tiempo total y el promedio gastado. Borre los archivos de salida una vez analizada la informacin Cree un nuevo archivo descriptor primos1.sub y distribuya la carga de trabajo en los procesadores que tenga, ahora buscaremos la cantidad de primos que hay entre 0 y 1000000, al terminar verifique donde se corren los jobs, cual fue el tiempo total y el promedio gastado. Universe = standard Executable = primos Log = primos.$(Process).log Output = primos.$(Process).out Error = primos.$(Process).error should_transfer_files = YES when_to_transfer_output = ON_EXIT Arguments = 0 250000
Queue Arguments = 250001 500000 Queue Arguments = 500001 750000 Queue Arguments = 750001 1000000 Queue