Title: Aucun titre de diapositive
1Sistema de producción de datos de ATLAS
Julio Lozano Bahilo Universidad de Granada
2Introducción
- Objetivo
- Automatización de las tareas necesarias para
efectuar la generación, simulación y
reconstrucción masiva de datos de ATLAS (DC2)
empleando los recursos disponibles gracias a la
tecnología GRID - Optimización del uso de las CPUs y elementos de
almacenamiento - Estudio exhaustivo en condiciones extremas del
middleware y del hardware estabilidad del
sistema, capacidad de almacenamiento, ancho de
banda, etc - Arquitectura
- Sistema modular lo más simple y flexible posible
- Repositorio con trabajos a ejecutar y todo tipo
de información acerca de los ficheros de entrada,
de salida y de su estado de ejecución
Julio Lozano Bahilo
1/13
3Introducción
- Agente que se comunica con dicho repositorio,
extrayendo la información precisa para crear los
trabajos (jobs) y actualiza la información
presente en él - Agente que intercambia información con el agente
previo y envia los trabajos al GRID por ello
depende del sabor GRID - Sistema de acceso uniforme a los datos empleado
por el agente que gestiona la ejecución de los
trabajos. Transfiere los ficheros de entrada
necesarios y copia los archivos producidos a un
elemento de almacenamiento
Julio Lozano Bahilo
2/13
4Esquema de producción
prodDB
DMS
Don Quijote
Windmill
super
super
super
super
super
jabber
jabber
Legacy
jabber
jabber
jabber
LCG exe
LCG exe
NG exe
G3 exe
LSF exe
Dulcinea
Capone
Lexor
RLS
RLS
RLS
LCG
NG
Grid3
LSF
Julio Lozano Bahilo
3/13
5Base de datos
ProdDB Servidor Oracle en el CERN comunicación
via queries SQL Consta de diferentes tablas
TASK
Colección de trabajos asociados a una misma
transformación
JOBTRANS
LOGICALFILE
JOBDEFINITION
Información sobre los ficheros generados LFN y
GUID de los ficheros de datos y el log
- Transformación
- versión del software
- generación/simulación/reconstrucción
- tipo de datos
Definición abstracta del trabajo, incluyendo
todos los parámetros necesarios para su ejecución
transformación, ficheros de entrada y salida,
etc
JOBEXECUTION
Estado de cada intento de ejecución del trabajo e
información adicional supervisor, ejecutor, CE,
mensaje de error en caso de fallo
Julio Lozano Bahilo
4/13
6Supervisor
- Windmill
- Tanto el supervisor como el ejecutor son paquetes
escritos en Python y corren en un UI ( User
Interface ) - Funcionalidad del supervisor
- Gestionar los trabajos residentes en la base de
datos - Extraer su definición y traspasarla al ejecutor
en formato XML ( tabla jobdefinition ) - Obtener información acerca del estado de los
trabajos enviados a GRID a través del ejecutor y
actualizar la base de datos ( tablas jobexecution
y jobdefinition ) - Verificar la correcta finalización de los
trabajos accediendo a través de Don Quijote al
RLS - Un fichero de configuración determina diversos
parámetros de operación del supervisor. Alguno de
ellos está relacionado con las máquinas
empleadas
Julio Lozano Bahilo
5/13
7Supervisor
- servidor jabber
- Y otros con el tiempo de espera para que el
supervisor realice las operaciones pertinentes - petición de nuevos trabajos
- información de tabajos en espera
- estado actual de procesos en ejecución
- información de trabajos finalizados
tiempos a optimizar
Julio Lozano Bahilo
6/13
8Supervisor
Via de comunicación jabber
supervisores
ejecutores
1. lexor 2. dulcinea 3. capone 4. legacy 5.
rocinante
numJobsWanted executeJobs getExecutorData getStatu
s killJob
Windmill
Don Quijote (gestión de datos)
Base de datos de producción
Julio Lozano Bahilo
7/13
9Supervisor
- Windmill
- La comunicación con el ejecutor se hace en base a
5 mensajes codificados en XML a través de un
servidor jabber - numJobsWanted
- el supervisor pide al ejecutor que haga una
estimación del numero de CPUs disponibles en
maquinas que cumplen los requisitos apropiados (
versión del software, CPU MHzs, memoria RAM ) - executeJobs
- transmite la definición del trabajo al ejecutor
para su posterior envío a un CE - getExecutorData
- obtiene el identificador único de los trabajos
enviados a GRID - getStatus
- recibe información acerca del estado del trabajo
y si ha acabado, ordena al ejecutor que registre
los ficheros de salida - killJob
Julio Lozano Bahilo
8/13
10Ejecutor
- Lexor
- Al igual que el supervisor, está implementado en
Python. Se ejecuta en un UI. - Requiere de una credencial para enviar los
trabajos y esa credencial se debe guardar en un
Proxy Server para que la credencial guardada
localmente sea renovada antes de que expire ( WN
? RB ? PS ) - El ejecutor depende del sabor GRID dado que
utiliza el middleware asociado a cada proyecto
LCG-2 ( basado en EDG ) en nuestro caso - Funcionalidad del ejecutor
- Suministrar información al supervisor
- Numero de CPUs disponibles ( contacta BDII )
- Estado de los trabajos en ejecución
- Estado de los trabajos finalizados
Julio Lozano Bahilo
9/13
11Ejecutor
- Enviar los trabajos a ejecución
- Traducir la descripción del trabajo de XML a JDL
- Enviar trabajo a RB para ejecución en CE
- Un fichero de configuración determina las
máquinas a utilizar ( RB, BDII, Proxy Server ),
el número máximo de trabajos en ejecución y
permite restringir los centros donde corren los
trabajos - El script que se ejecuta en un WN ( Worker Node )
realiza los siguientes pasos - Verifica la instalación del software del
experimento - Copia el paquete de la transformación a efectuar
- Copia los ficheros de entrada a través de DQ
- Ejecuta el programa del experimento para
generar/simular/reconstruir los sucesos - Copia los ficheros de salida a un SE mediante DQ
Julio Lozano Bahilo
10/13
12Ejecutor
El ejecutor para la infra-estructura GRID de LCG
es Lexor. Intercambia mensajes de tipo XML via
jabber con el supervisor y envía los trabajos a
ejecución
Supervisor
Lexor
cliente jabber
XML parser
gestor de trabajos
Workload Management System API
El ejecutor también recupera la información sobre
el estado del trabajo y si acaba correctamente
registra los ficheros de salida. Transmite la
información al ejecutor via XML igualmente
Julio Lozano Bahilo
11/13
13Flujo de tareas
jobdefinition
jobexecution
BDII
ProdDB
UI
UI
Supervisor
Ejecutor
Serv. jabber
numJobsWanted
executeJobs
getExecutorData
getStatus
RLS
DQ
RB
CE
SE
Julio Lozano Bahilo
12/13
14Comentarios
- Ejemplo de empleo de tecnología GRID aplicada a
la producción, procesado y almacenado de datos en
AA.EE. - Se ha sometido la infraestructura GRID ( tanto
middleware como hardware y personal humano ) a un
continuo esfuerzo para mejorar las prestaciones
del sistema - Empleo de diferentes tecnologías para implementar
un sistema en cuya base tenemos la tecnología
GRID - GRID está vivo y coleando y va dando frutos
visibles
Julio Lozano Bahilo
13/13