32
Sistema de colas CONDOR Sistema de colas CONDOR Juan Antonio Ortega Juan Antonio Ortega Ana Silva Ana Silva

Sistema de colas Condor en CICA

Embed Size (px)

DESCRIPTION

Sistema de colas Condor en CICA, por Ana Silva

Citation preview

Page 1: Sistema de colas Condor en CICA

Sistema de colas CONDORSistema de colas CONDOR

Juan Antonio OrtegaJuan Antonio Ortega

Ana SilvaAna Silva

Page 2: Sistema de colas Condor en CICA

Contenidos

Conceptos previos

Cluster CICA

¿Qué es Condor?

¿Qué muestra Condor?

Tipos de máquinas Condor

Tareas Condor (ClassAd)

Universos Condor

Comandos básicos

Page 3: Sistema de colas Condor en CICA

Conceptos previos✗ UMA : acceso uniforme a memoria. La memoria

física se comparte de forma uniforme por todos lo procesadores.

✗ NUMA : acceso no uniforme a memoria. La memoria está distribuida entre los procesadores. Se usa el paso de mensajes para la comunicación entre memorias.

✗ Memoria : Compartida por red (Sistemas de disco, sistema de ficheros compartidos).

Page 4: Sistema de colas Condor en CICA

Conceptos previos✗ MPI : Interfaz de paso de mensajes. Librerías

estándares entre nodos que ejecutan un programa en un sistema de memoria distribuida.

✗ Pool : colección de procesadores que usa Condor.

✗ Paralelización : optimización de aplicaciones para su ejecución en multiprocesadores.

Page 5: Sistema de colas Condor en CICA

¿Qué es un cluster?¿Qué es un cluster?

Conjunto de ordenadores que trabajan de forma conjunta, que permite la distribución de una gran carga de trabajo entre ellos.

¿Por qué usamos clusters?Por su bajo coste frente a una sola máquina con gran potencia de cálculo, es decir, con un gran número de procesadores.

Tipos de clustersAlta disponibilidad: máquinas que siempre deben estar en

servicio. Reparto de carga : máquinas en las cuales hay un acceso

másivo.Alto rendimiento : máquinas de cáculo intensivo.

Page 6: Sistema de colas Condor en CICA

Cluster CICA

Cluster

- ~200 procesadores- Arquitectura 64 bits- 4 GB RAM por nodo- Herramientas de administración: C3, Ganglia- 200 GB de disco por nodo- Sistema de disco Sata-Ethernet “Coraid”Capacidad ~ 6 Teras

- Sistema de ficheros compartidos LUSTRE

- Herramientas software:- Compiladores Intel (Fortran, C++)- Bibliotecas matemáticas: LapackBlas e Intel MKL.- OpenMPI

Page 7: Sistema de colas Condor en CICA

¿Qué es Condor?

✗ Sistema de gestión de carga para tareas de computación intensivas.

✗ Proporciona un sistema de colas, políticas de planificación de ejecución, esquema de prioridades, monitorización y gestión de recursos.

Page 8: Sistema de colas Condor en CICA

¿Para qué sirve Condor?

Es un sistema que nos permite abordar tareas de cálculo que sobrepasan a la capacidad de cálculo de una máquina individual.

Aplicaciones actuales:

✗ Simulaciones de Física Cuántica.

✗ Simulación molecular y de sist. periódicos.

✗ Cálculos de redes neuronales.

✗ Estudios de cambio climático en Andalucía....

Page 9: Sistema de colas Condor en CICA

Máquinas Condor I✗ Submit : máquinas

desde donde los usuarios lanzan sus tareas.

✗ Execute: máquinas donde se ejecutan las tareas.

✗ Central-manager: máquina desde la cual se monitorizan los nodos y las tareas enviadas.

Page 10: Sistema de colas Condor en CICA

Máquinas Condor II

En todas las máquinas la instalación de Condor es “full-install”, sólo se diferenciarán en su fichero de configuración “condor_config”.

En nuestro caso...

Máquina Central-manager y Submit “condor.cica.es”

Resto de máquinas Execute “Cluster CICA”

Los usuarios de Condor tendrán acceso a condor.cica.es, desde la cuál lanzarán las tareas.

Page 11: Sistema de colas Condor en CICA

Definición de trabajos I✗ El envío de tareas se realiza mediante un fichero

de información creado para Condor : CLASSAD

✗ El ClassAd lo debe crear el usuario para cada tarea que se vaya a lanzar.

✗ Debe informar de la tarea en sí, su ejecutable, sus argumentos, los ficheros de datos a procesar, los requerimientos de la máquina que necesite usar...

✗ Condor, se encarga de preparar el entorno, copiando en el nodo donde se envíe la tarea el ejecutable, creando ficheros de salida y un log, previamente definido por el usuario.

Page 12: Sistema de colas Condor en CICA

Definición de trabajos II✗ Supongamos lo siguiente:

Mi ejecutable es programa.exeNecesita los argumentos arg1 arg2Debe ejecutarse sobre Linux 64 bitsLo lanzamos a la cola

✗ Crearíamos un fichero con la siguiente información,

executable = programa.exerequirements = (Arch == “X86_64” && OpSys == “LINUX”)arguments = arg1 arg2Queue

Page 13: Sistema de colas Condor en CICA

Atributos para ClassAd✗ Al ejecutar condor_q -l , Condor nos mostrará

una lista con los atributos que cumple el cluster para las tareas. (Memoria en uso, prioridad...)

✗ Ejecutando condor_status -l Condor mostrará los atributos referidos a las características de los nodos. (Sistema operativo, arquitectura...)

✗ Ambas clases de atributos podrán usarse para la creación del ClassAd, ya sea como requerimiento o valor determinado.

Page 14: Sistema de colas Condor en CICA

Universos Condor I

✗ ¿Qué es un universo para Condor?

Es un entorno de ejecución.

Conjunto de recursos que Condor pone a disposición de las tareas que van a ejecutarse en el cluster.

Page 15: Sistema de colas Condor en CICA

Universos Condor II

Condor para definir sus tareas, las agrupa por universo. Contamos con los siguientes :

✗ Universo Standard

✗ Universo Vanilla

✗ Universo Parallel

✗ Universo Java

Page 16: Sistema de colas Condor en CICA

Universo Standard

Se usa para lanzar tareas que han sido especialmente preparadas para su ejecución bajo Condor.

Les hace adquirir características, como por ejemplo: migrar de nodo.

Page 17: Sistema de colas Condor en CICA

Ejemplo Universo Standard

Ejemplo:#include <stdio.h>int main(void){ printf("hello,Condor\n"); return 0;}

gcc -c hello.c -o hello.o

condor_compile gcc hello.o -o hello

############################################# # Submit description file for hello program # ############################################# Executable = hello Universe = standard Output = hello.out Log = hello.log Queue

Page 18: Sistema de colas Condor en CICA

Universo Vanilla

Se usa para lanzar tareas que no han sido “condorizadas”.

Es el universo más usado.

Si una tarea se puede lanzar bajo cualquiera de los demás universos, se puede lanzar bajo el Universo Vanilla.

Devolverá los resultados a un fichero de salida.

Page 19: Sistema de colas Condor en CICA

Ejemplo de universo Vanilla

Ejemplo:############################################ ## Example condor submit file for Matlab ## ############################################Universe = vanillaExecutable = /afs/engr.wisc.edu/apps/bin/matlabArguments = -nodisplay -nojvm

Input = condor.inputOutput = condor.outputError = condor.errorLog = condor.log

should_transfer_files = yes when_to_transfer_output = on_exit_or_evict

Queue

Page 20: Sistema de colas Condor en CICA

Universo Parallel

El universo Parallel permite la ejecución de tareas MPI.

Necesita el atributo machine_count, que indica el número de máquinas que se van a usar para ejecutar esa tarea.

✗ Planificador dedicado: Este universo se basa en que debe existir un elemento (llamado planificador dedicado) definido por el administrador del sistema, que hará una reserva de recursos en el cluster antes de lanzar la tarea.

Page 21: Sistema de colas Condor en CICA

Ejemplo Universo Parallel

Ejemplo:

######################################## Example submit description file ### for LAM MPI #######################################

universe = parallelexecutable = lamscript

arguments = my_lam_linked_executable arg1 arg2machine_count = 4Scheduler = [email protected]

should_transfer_files = yeswhen_to_transfer_output = on_exittransfer_input_files = my_lam_linked_executable

queue

Page 22: Sistema de colas Condor en CICA

Universo Java

Es el universo para la gestión de tareas en java.

Se basa en la máquina virtual Java. La cual Condor prepara para la ejecución de la tarea.

✔ Condor dispone del comando condor_status -java que permite ver los nodos que disponen de java y con cuál versión cuentan.

Page 23: Sistema de colas Condor en CICA

Ejemplo Universo Java

Ejemplo public class Hello {public static void main( String [] args ){             System.out.println("Hello, world!\n");}}

javac Hello.java

###################################### Example 1                         ## Execute a single Java class,      ## not on a shared file system       ######################################universe       = javaexecutable     = Hello.classarguments      = Hello

output         = Hello.outputerror          = Hello.error

should_transfer_files = YESwhen_to_transfer_output = ON_EXIT

queue

Page 24: Sistema de colas Condor en CICA

ClassAd Condor-CICA

Dada a la arquitectura y configuración del cluster CICA hay atributos que serán comunes en el ClassAd:

✗ Universe : siempre habrá que indicarlo en el ClassAd.

✗ requirements : indicará las caracteristicas de los nodos executes. En nuestro caso su valor siempre será:requirements = (Arch == “X86_64” && OpSys == “LINUX”)

✗ should_transfer_files : este atributo es necesario cuando no se tiene memoria compartida, como es el caso del cluster CICA. Por lo que su valor será “YES”.

Page 25: Sistema de colas Condor en CICA

ClassAd Condor-CICA✗ when_to_transfer_output : este atributo indicará

cuando transfiere la ejecución los ficheros de salida. En nuestro caso indicaremos “ON_EXIT”, que nos dará los resultados al término de la tarea.

✗ Scheduler : Tan solo cuando lancemos tareas al universo Parallel indicaremos en este atributo el siguiente valor:Scheduler=“[email protected]

✗ queue : indica que la tarea será puesta en la cola. Es un parámetro obligatorio.La ejecución de la tarea no será secuencial, sino paralela.

Page 26: Sistema de colas Condor en CICA

En resumen

universe = universe executable = executable

arguments = arg1 arg2 ...

requirements = (Arch == "X86_64" && OpSys == "LINUX")

log = logfile output = outfile.$(NODE)error = errfile.$(NODE)

should_transfer_files = yes when_to_transfer_output = on_exit Scheduler = "[email protected]" queue

Page 27: Sistema de colas Condor en CICA

Comandos básicos✗ Comprobación del estado de los nodos

condor_statusMostrará una lista con todos los nodos del sistema de colas y su ocupación en ese instante.Se podrá ejecutar en cualquier nodo.

✗ Comprobación de la cola de tareas condor_qMostrará la lista de tareas pendientes, en ejecución o retenidas que están en cola.Tan solo se podrá ejecutar en el Central-Manager. O bien añadiendo -global desde cualquier otro nodo.

Page 28: Sistema de colas Condor en CICA

Comandos básicos

✗ Borrado de las tareas lanzadascondor_rm [número de tarea]Eliminará las tareas que el propio usuario ha lanzado.

✗ Lanzado de tareascondor_submit ClassAdSe debe ejecutar desde el directorio donde se encuentren todos los ficheros que usen el ClassAd (ejecutable, argumentos, ficheros transferidos...)

Page 29: Sistema de colas Condor en CICA

Estado de los nodos

Cuando ejecutamos condor_status se muestran los siguientes valores,

✗ StateUnclaimed : Sin reclamo, no está reservado.Claimed : reclamado, pasará a Busy.Owner : está siendo usado por el S.O.

✗ ActivityIdle : Ocioso, no está ejecutando ninguna tarea.Busy : Ocupado, está ejecutando alguna tarea.

Page 30: Sistema de colas Condor en CICA

Estado de las tareas

Cuando ejecutamos condor_q se muestran los siguientes valores,

✗ State (ST)I : Idle, pendiente de asignación de máquina.H : Held, retenida, ya sea por error en el ClassAd o bien por error en la ejecución.R : running, en ejecución.X : executed, ya ha sido ejecutada y se está eliminando de la cola.

Page 31: Sistema de colas Condor en CICA

En Desarrollo

✗ Acceso a los recursos de cluster mediante una interfaz Web.

✗ Automatización de la creación de ClassAds mediante una interfaz Web.

✗ Sistema de autentificación global mediante un servidor de LDAP.

Page 32: Sistema de colas Condor en CICA

Gracias por la atención

Preguntas

Correo: [email protected]

Web: supercomputacion.cica.es