Vous êtes sur la page 1sur 25

TALLER No.

1. condor_version: Permite ver la informacin de la versin de Condor.

Nota: La versin de Condor utilizada para este ejercicio fue la 7.4.2

2. condor_config_val BIN: Permite ver dnde est Condor instalado y el resto de comandos
disponibles.

Nota: Condor est ubicado en la ruta: /opt/condor742/bin

3. ls `condor_config_val BIN`: Permite ver los comandos disponibles.

4. echo $CONDOR_CONFIG: Permite ver variable de entorno $CONDOR_CONFIG, que


contiene la ruta del archivo de configuracin.

5. more $CONDOR_CONFIG: Permite observar el contenido del Archivo.

6. condor_config_val -v CONDOR_HOST: Tambin se puede saber qu maquina es, con el


comando condor_config_val.

Nota: Este comando muestra que estamos trabajando sobre la mquina masterg4 y su respectiva ubicacin.

7. condor_config_val config: Podemos ver dnde se encuentran todos los archivos de


configuracin.

Nota: Los archivos de configuracin de Condor para este ejercicio estn en la ruta: /opt/condor742/local.masterg4/condor_config.local

8. cat /opt/condor742/local.masterg0/condor_config.local | grep DAEMON_LIST: Muestra la


lista de demonios en el archivo de configuracin e indica los servicios que tiene activos esta mquina.

9. ps aux | grep condor | grep -v grep: Muestra qu servicios de Condor se estn ejecutando

Informacin sobre el pool

1. condor_status: Este comando permite comprobar el estado del pool (coleccin de


procesadores). Nos muestra los tres nodos asociados a la mquina maestra masterg4.

2. condor_status h: Permite obtener informacin ms detallada del pool.

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.

Informacin sobre los trabajos:

1. condor_q: Controla el estado de nuestros trabajos Permite obtener informacin sobre los
trabajos (jobs) que se estn ejecutando en el pool.

Nota: En este caso no se est ejecutando ningn job.

2. condor_q global: Permite obtener informacin sobre los trabajos en todas las colas.

3. condor_q h: Permite ver las posibilidades que ofrece este comando.

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

1.0 no se ha iniciado ciclo e negociacin y por esto no se ha detectado un nodo para


ejecutarla. 2.0 Condor no detecto ningn nodo. H: Hold significa que ocurri un error y la tarea no se puede ejecutar, este cdigo significa que uno o mas nodos no estn procesando las tares. R: Running significa que en este momento la tarea fue ejecutada en algn o algunos nodos.

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.

Se cre el archivo limpia.sh con el contenido definido

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.

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, para este caso hola.log

Comprobar el resultado de la ejecucin del trabajo en el archivo hola.out

1. Qu pasa si dejamos el parmetro Queue como Queue 2?


Queue significa las veces en que se va ejecutar un trabajo si colocamos Queue2 significa que el trabajo se ejecutara dos veces en cada nodo.

2. Qu conclusiones pueden sacar de esto?


Que si queremos que un trabajo se ejecute una cantidad de terminada de veces podemos acompaar este parametro ( Queue ), con la cantidad de veces a ejecutarse o igualmente escribiendo el parametro la cantidad de veces a ejecutarce. TALLER No. 3 y 4 Ejemplo 2 El segundo ejemplo, est ubicado en el directorio imprimir. Entramos al directorio imprimir y creamos el script imprimir.sh el contenido es:

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.

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. 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.

2. Qu conclusiones pueden sacar de esto?

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.

1. Qu conclusiones pueden sacar de este ltimo proceso?

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

Cambie los permisos a localPrimos para ejecutarlo

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

strip primos 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

Vous aimerez peut-être aussi