sun grid engine en entornos grid - ific.uv.esific.uv.es/grid/cursogrid/talks/isabelcampos02.pdf ·...
TRANSCRIPT
Sun Grid Engine en entornos Grid
Isabel CamposBIFI
Sun Grid Engine en entornos Grid
DESARROLLO DE LA CHARLA
✔ El Proyecto Sun Grid Engine (SGE)✔ Instalación de SGE en clusters✔ Uso de SGE en entornos GRID
– Conectividad en entornos de trabajo locales– Uso de SGE como jobmanager en Globus– Sistema de transferencia de trabajos en un Grid.
Isabel Campos
El proyecto Sun Grid Engine ✔ Desarrollado por Sun Microsystems junto con iniciativas Open
Source✔ Año 2000: Sun compra Gridware (en particular su sistema
propietario de batch, CODINE )✔ Sun inicia dos proyectos
– Una versión comercial (http://www.sun.com/gridware)• Plataformas: PCs, Silicon, Sun, IBM, HP, MAC.• OS: Linux, Solaris, IRIX, AIX, MACos, Windows…• Linux Kernel 2.2, 2.4, 2.6• Software de visualización: Accounting Reporting Console (ARco)• Precio: (N1 Grid Engine version 6)
– Cluster hasta 50 nodos 10,000$– Hasta 250 nodos 30,000$– Hasta 2,000 nodos 80,000$
El proyecto Sun Grid Engine– Versión libre bajo la disciplina Open Source
• http://gridengine.sunsource.net• Oficialmente soportado para:
– Linux x86, kernel 2.4, glibc >= 2.2 – Linux AMD64 (Opteron), kernel 2.4, glibc >= 2.2– Silicon Graphics IRIX 6.5– Sun MicrosystemsSolaris (Sparc and x86) 7, 8 en 32bit y 64bit – AppleMac OS/X, CompaqTru64 Unix 5.0, 5.1, Hewlett PackardHP
UX 11.x, IBM AIX 4.3, 5.1
• Funciona además (con modif. mínimas) para– x86_64 (Xeon EMT64) – kernels 2.6– IA64 (Itanium)
Instalación de SGE Open Source
✔ Descarga de software:– http://gridengine.sunsource.net– Descarga del binario de la plataforma correspondiente, o bien– Descarga de las fuentes & compilar
✔ Nodo Master instalación desde los binarios– mkdir /usr/local/sys/sge & tar xf sgeversionplataforma.tar– Añadir entrada en /etc/services (privilegios de root)
• sge_commd puerto_libre/tcp
– Editar un fichero con los nombres de los nodos a controlar– Script de inicialización va por defecto a /etc/init.d/rcsge– Efecto visible: sge_commd, sge_qmaster y sge_sched están
corriendo
Instalación de SGE
✔ Nodos de Ejecución y de control– mkdir /usr/local/sys/sge– mount master:/usr/local/sys/sge /usr/local/sys/sge– . /usr/local/sys/sge/settings.sh – ./install_execd en cada nodo desde ese directorio– Efecto visible sge_execd, sge_commd y sge_sheperd están
corriendo– Las colas se configuran graficamente, (y se clonan)– En el nodo interactivo del cluster no hay sge_execd ni
sge_sheperd .
Instalación de SGE
✔ Monitorización y control– . /usr/local/sys/sge/settings.sh – Con entorno X11
• Lanzar ”qmon &”
– Sin entorno X11• Comandos en linea de configuración de colas (qconf y qmod)• Sobre los trabajos (qsub, qstat, qdel,…)• Administración: qacct
Instalación de SGE
✔ Configuración de Complejos (complex attributes) de una cola
✔ Configuración del entorno paralelo– Definición de colas paralelas
✔ Configuración de usuarios✔ Cómo controlar la login de usuarios a los nodos de
ejecución usando SGE: – protocolo de inicialización/stop
Instalación de SGE Open Source
sge_commd
sge_commd Nodo de envío
sge_commd sge_qmaster
sge_schedd
??
sge_execdsge_sheperd
Nodo master
Nodos de ejecución
Nodo interactivo
Nodo servidor
Nodo de computación
Instalación de SGE Open Source
SGE Job monitoring
Instalación de SGE Open Source
✔Trabajo en serie
#/bin/sh#$ o $HOME/mydir/myjob.out#$ N myjob#$ M [email protected]#$ l emt64=yes. /etc/profile.sge. intel81.setupcd mydir./myprog
✔Trabajo en Paralelo
#/bin/sh#$ o $HOME/mydir/myjob.out#$ N myjob#$ pe mpi 410#$ M [email protected]. /etc/profile.sge. /etc/mpi.setup –e mpicd mydirmpirun –np $NSLOTS ./myprog
Integración de SGE en entornos GRID (I)
✔ Conectividad en entornos de trabajo locales
bifi.unizar.es
Integración de SGE en entornos GRID (I)✔ Etapas
– Instalar SGE en todos los PCs declarando a uno master– Instalar un Globus gatekeeper para autenticar y transferir– Alternativamente: usar sshd y RSA autenticación– Instalar todos los demas PCs como execution hosts y clientes de
globus
✔ Tarea organizativa importante– Desarrollo de scripts de control del sistema: pclab_bifi.sh
• ./pclab_bifi.sh exepath scriptpath outpath (parametros del PC local)• Busca un nodo libre usando “qstat”• Transfiere el directorio exepath y scriptpath usando gsissh (sin password)• Controla cuando acaba la ejecución (max 8 horas) y usa de nuevo gsissh
para transportar resultados a outpath
Integración de SGE en entornos Grid (II)
✔ Collaboración entre el London escience UK y la empresa Sun Microsystems– Pagina del proyecto:
• http://www.lesc.imperial.ac.uk/projects/epicgtsge.html
– Configuración del Globus jobmanager para enviar trabajos usando el sistema de colas de SGE
– Chequeado para SGE v5.3 – Provee de un script que lee la descripción RSL del trabajo y la traduce
al lenguaje de batch scripts que entiende SGE– Tipos de trabajo aceptados: single, multiple y MPI
Integración de SGE en entornos Grid (II)
✔ Integración con Globus 2.x– Ficheros:
• globus_gram_job_manager_setup_sge0.11.tar.gz• globus_gram_reporter_setup_sge0.8.tar.gz
– Instalación: • $GPT_LOCATION/sbin/gptbuild file.tar.gz• $GPT_LOCATION/sbin/gptpostinstall
Integración de SGE en entornos Grid (II)
✔ Integración con Globus 3.x– Ficheros:
• globus_gram_job_manager_setup_sge0.11.tar.gz • mmjfs_sge_setup0.0.tar.gz • mjs_sge_setup0.0.tar.gz
– Instalación: • $GPT_LOCATION/sbin/gptbuild file.tar.gz• $GPT_LOCATION/sbin/gptpostinstall
– Chequeo: managedjobglobusrun factory HOSTNAME:PORT type SGE –file \\
${GLOBUS_LOCATION}/etc/test.xml output
Esquema de funcionamiento de SGE con Globus
Gatekeeper
Usuarios Globus
Cluster
globusjobsubmit
Sistema de transferencia de trabajos en un GRID
✔ Desarrollado por el EPCC en colaboración con Sun Microsystems– http://gridengine.sunsource.net/project/gridengine/tog.html
• Objetivo:
permitir en intercambio de recursos entre dos organizaciones de forma controlada.
• Requerimientos
1. SGE instalado en ambos sitios (A y B)2. Globus instalado en ambos sitios (A y B)3. Globus Java CoG en el sitio que tiene la cola de TOG (ej. A)4. En B, SGE configurado como el job manager de Globus5. Firewall: puertos determinados abiertos
Sistema de transferencia de trabajos en un GRID
Grid Engine
TOG
Globus
Grid Engine
Globus
A B
Usuarios de¨”A” pueden usar los recursos de “B” gracias al TOG
Requisitos de ambos sistemas: sitio local A
✔ Configurando A: – Submit host de Grid Engine en A: submit.A.com; – Execution host en A, con un cliente Globus instalado– $GLOBUS_LOCATION= /usr/local/gtII;
– Globus Java CoG instalado, $COG_INSTALL_PATH en /usr/local/cog; – $SGE_ROOT = /opt/SGE; – Cada usuario en A, tiene un certificado autorizandole a usar los recursos
de B; – El firewall esta abierto
• en el 2119 para el Globus Gatekeeper,• el 62000 to 64000 para job manager y la transferencia de datos
Requisitos de ambos sistemas: Sitio remoto B✔ Configurando B:
– Grid Engine instalado con $SGE_ROOT = /opt/sge
– Queue name: resource_B.q • Un slot al menos para los usuarios de A
– Globus instalado en $GLOBUS_LOCATION = /usr/local/gtII; – Los usuarios de A están certificados en resource.B.com usando
Globus; – Directorio ENTERPRISE_HOME para usuarios de A localizado en el
directorio /remote/A; – Configurado como Grid Engine submit host. – Configurado con jobmanagertge job manager. – Firewall abierto en los puertos
» 2119 Globus Gatekeeper; » 2811 GridFTP daemon; » o 60000 to 62000 for job manager y data transfer
Chequeando la configuración de Globus
% echo "test" > test.txt % globusurlcopy file:///home/alice/test.txt \> gsiftp://globus.B.com/remote/A/alice/test_copy.txt % globusurlcopy \ gsiftp://globus.B.com/remote/A/alice/test_copy.txt \ file:///home/alice/test2.txt % cat test2.txt test
Sistema de transferencia de trabajos TOG✔ Instalación de TOG en el sitio A
cp tog.tar $SGE_ROOTcd $SGE_ROOTtar xzvf tog.tar.gz
Directorio $SGE_ROOT/tog/
✔ Configuración de Grid Engine en A para usar TOGCrear los Complex: tog_host y tog_queueCrear una cola destinada a TOG
tog_host complex
El tog_queue complex
Configuración de una cola TOG✔ La cola configurada TOG en el sitio local A es un “proxy” hacia el
sitio remoto B✔ La configuración se hace como una cola normal de SGE
( usando el interface qmon )✔ Se añaden los Complex que hemos definido para tog
Envío de trabajos:gridproxyinitqsub q proxy.queue script.sh
Fichero de Input y Output deben ser especificados en el script#% input_file = input1#% output_file = out/output
Documentación accesible en http://bifi.unizar.es/~isabel/downloads
✔ Esta presentación: sge_valencia.pdf✔ Instalación de SGE desde fuentes: notas_sge.pdf✔ Documento de instalación de TOG: tog.pdf
Muchas Gracias