• Aucun résultat trouvé

Ejecuci´ on de trabajos MPI sobre Condor y SGE

4. Arquitectura base del entorno de trabajo TDP-Shell 56

4.7. Archivos TDP-Shell script

5.1.1. Ejecuci´ on de trabajos MPI sobre Condor y SGE

Condor y SGE ofrecen unos entornos especiales para trabajos distribuidos. Por su parte, Condor ofrece eluniverso paralelo [46] y SGE elentorno paralelo o pe [47]. Dentro de estos entornos distribuidos se pueden configurar de diversos tipos, entre ellos el mpi (MPICH, LAM para Condor y SGE as´ı como OpenMPI para SGE). Para que los entornos de trabajos paralelos de Condor y SGE puedan ejecutar correctamente los trabajos MPI, es necesario que primero puedan poner en marcha el entorno de ejecuci´on que utilizan

5.1. aplicaciones MPI sobre gestores de colas y herramientas de monitorizaci´on 139 las diferentes implementaciones de la librera MPI que soportan. Por ejemplo, antes de ejecutar la aplicaci´on MPI, LAM necesita que est´en en ejecuci´on sus demonios lamd y en el caso de MPICH1, los demonios sshd que necesita la herramienta de conexi´on remota ssh. Por lo tanto, para la correcta puesta en marcha de estos entorno de ejecuci´on de MPI, los dos gestores de colas necesitan obtener cierta informaci´on de ellos (variables de entorno, fichero de m´aquinas, situaci´on de los servidores sshd, lamd u orted, etc).

Para ello tanto Condor como SGE ofrecen unos scripts especiales configurables, para que sus administradores (o usuarios) puedan introducir esta informaci´on. Condor ofrece un script para MPICH1 (mp1script) y otro para LAM lamscript. Por su parte, SGE ofrece, para cada tipo de su entorno paralelo, dos clases de scripts especiales, unos para su inicializaci´on (acciones a realizar antes de la ejecuci´on del script del trabajo distribuido), los cuales suelen denominarse con el prefijo start y otros para su finalizaci´on (acciones a realizar despu´es de la ejecuci´on del script del trabajo distribuido), los cuales suelen denominarse con el prefijo stop. Dentro del entorno distribuido MPI de SGE se ofrecen los scripts de inicio y finalizaci´on para MPICH, LAM y OpenMPI.

Estos scripts especiales que utilizan Condor y SGE, afectan a la manera en que se declaran sus ficheros de descripci´on de trabajos para aplicaciones distribuidas MPI.

Debido a este motivo, es necesario el estudio de las modificaciones que sufren estos ficheros para que el componentetdp consolelos pueda procesar correctamente y obtener el fichero de descripci´on de trabajos global. En el caso de Condor, los ficheros de descripci´on de trabajos para aplicaciones distribuidas MPI se declaran a trav´es de los siguientes comandos:

universe = parallel : Se indica a Condor que el trabajos es del tipo distribuido.

executable = [ mp1script | lamscript] : Como ejecutable se declara el script especifico de la implementaci´on de la librer´ıa MPI : mp1script para MPICH y lamscript para LAM. Este script se encarga del lanzamiento de la aplicaci´on MPI definida en el trabajo (utiliza el comando mprun).

arguments =<Ejecutable de la aplicaci´on MPI>[args]*: Como argumentos al script especifico se le pasan el ejecutable de los procesos de aplicaci´on MPI y sus posibles argumentos.

machine count = n : Este comando indica el n´umero de procesos (n) que

140 5. Arquitectura de TDP-Shell para entornos distribuidos MPI generar´a la aplicaci´on MPI (valor del argumento -np de mpirun).

Para el caso del gestor de colas SGE, la utilizaci´on de shell-scrips como ficheros de descripci´on de trabajos MPI, permite la existencia de una gran variedad de posibilidades a la hora de declarar estos trabajos. Pero existe una forma b´asica (punto de partida de muchos scripts) de realizar esta declaraci´on, la cual se muestra en los siguientes puntos:

1. Declaraci´on de las directiva especial de SGE para entornos distribuidos MPI, la cual es:

-pe mpi n1-n2 : Directiva de SGE a trav´es del cual se le informa de que el trabajo utiliza el entorno paralelo (pe) y que es del tipo MPI, adem´as tambi´en indica que estar´a formado por entre n1 y n2 procesos(n1 y n1 pertenecen a los n´umeros Naturales). Al interpretar esta directiva, SGE ejecuta sus scripts especiales del entorno paralelo MPI. El de inicializaci´on antes de ejecutar el cuerpo principal de shell-script de descripci´on del trabajo MPI y el de finalizaci´on al terminar la ejecuci´on de este shell-script.

2. Declaraciones e informaci´on ´util situada en el cuerpo principal del script:

Fichero $TMPDIR/machines: Fichero, devuelto por el script especial de inicializaci´on del para el entorno MPI de SGE, el cual informa de las m´aquinas escogidas para la ejecuci´on de los procesos de la aplicaci´on MPI definida en el trabajo. Este n´umero de m´aquinas depender´a de los n´umeros n1 y n2 pasados en el comando de SGE -pe. Tanto el nombre del directorio temporal $TMPDIR, como en nombre del fichero, denominado por defecto machines, son configurables a trav´es del el script especial de inicializaci´on del para entornos MPI de SGE.

El Comando mpirun (o mpiexec) es utilizado para poner en marcha la ejecuci´on de la aplicaci´on MPI (como si se tratar´a de un cluster no controlado por un gestor de colas). En caso necesario, se puede utilizar el fichero

$TMPDIR/machines para informar de las m´aquinas donde se va a ejecutar los procesos de la aplicaci´on MPI. Por ejemplo, para la versi´on MPICH1 se utiliza el argumento especial de mpirun -machinefile $TMPDIR/machines, para informarle de la direcci´on y nombre del fichero que contiene la descripci´on de estas de m´aquinas.

5.1. aplicaciones MPI sobre gestores de colas y herramientas de monitorizaci´on 141 Una vez estudiado como definir aplicaciones distribuidas MPI a trav´es de los archivos de descripci´on de trabajos de Condor y SGE, el ultimo punto de estudio es como estos gestores de colas, ponen en ejecuci´on los procesos de las aplicaciones MPI definidas en sus respectivos trabajos. Este estudio es importante porque definir´a la manera en que Condor y SGE van a ejecutar los componentes tdp agent cuando gestionan este tipo de aplicaciones distribuidas bajo el entornoTDP-Shell. Como se ver´a a continuaci´on, el procedimiento que siguen ambos gestores de colas son muy similar y se ha resumido en los siguientes pasos:

1. Localizar las m´aquinas que tengan los suficientes recursos para ejecutar los procesos de la aplicaci´on MPI definida en el trabajo del usuario (figura 5.1, punto segundo ).

Una vez localizadas, los scripts especiales del entorno distribuidos MPI de Condor y SGE informan a los entornos de ejecuci´on de la distribuci´on de MPI que utilizan (MPICH, LAM u OpenMPI) de estas m´aquinas seleccionadas, normalmente a trav´es de un fichero, denominado de m´aquinas, con el formato que se ha explicado al principio de este apartado. En Condor el encargado de localizar las m´aquinas con suficientes recursos es un planificador especial ,denominado dedicado [48], instalado en una m´aquina del conjunto que controla dicho gestor. En SGE, el proceso de selecci´on de las m´aquinas se realiza dentro del script de inicializaci´on del entorno distribuido mpi, el cual procesa el fichero especial de SGE, denominado sge hostfile, que contiene la lista de todas las m´aquinas de su cluster que pueden ejecutar procesos de las aplicaciones MPI. Este fichero, creado normalmente por el administrador del sistema, se le puede pasar como argumento a los scripts de inicializaci´on o estar definido en una variable de entorno especial de SGE (la forma de hacerlo la definir´a el script de inicializaci´on).

2. Ejecutar en las m´aquinas seleccionadas en el punto anterior, los demonios (o componentes remotos) de las herramientas de conexi´on remota (sshd para el caso de ssh y MPICH1) o los demonios (lamd para LAM y orted para OpenMPI) propios de la implementaci´on de MPI utilizada (figura 5.2, punto 1). En el caso de LAM, para ejecutar sus demonios remotos, los scripts especiales del entorno distribuido MPI de los gestores de colas utilizan el programa lamboot, pas´andole como argumento el fichero de m´aquinas generado en el paso 1. Hay que destacar que Condor, despu´es de la selecci´on de las m´aquinas del paso 1, ejecuta en una m´aquina el proceso cuyo

142 5. Arquitectura de TDP-Shell para entornos distribuidos MPI

Figura 5.1: Selecci´on de las m´aquinas con los suficientes recursos

c´odigo ejecutable se ha declarado en el comando execute del fichero de descripci´on de trabajos enviado por el usuario. En este caso, el c´odigo de este proceso ser´a el script especial del entorno paralelo (mp1script o lamscript), consiguiendo de esta manera que su ejecuci´on realice las acciones explicadas en este paso para el entorno de ejecuci´on de la librer´ıa MPI escogida.

3. Una vez est´an activos estos demonios ya se puede ejecutar la aplicaci´on MPI del trabajo definido por el usuario. La manera de proceder respecto a esta ejecuci´on es diferente en cada gestor de colas. Condor utiliza su script especial del el entorno MPI para ejecutarla. Este script llama al programa mpirun, cuyo argumento del c´odigo ejecutable de los procesos de la aplicaci´on MPI es obtenido gracias a que tambi´en se le pasa como argumento de este script especial de Condor (como se ha explicado en la declaraci´on de los archivos de descripci´on de trabajos MPI de este punto 5.1.1). SGE por su lado, utiliza su metodolog´ıa de ejecuci´on standard, ejecutando en una m´aquina de las seleccionadas, el script que define el trabajo paralelo MPI que usuario le ha enviado y el cual contiene, entre otros comandos, el programa mpirun y el ejecutable de dicha aplicaci´on MPI (figura 5.2, punto 2 ).

5.1. aplicaciones MPI sobre gestores de colas y herramientas de monitorizaci´on 143

Figura 5.2: Ejecuci´on de los procesos MPI bajo el control del gestor de colas

Una vez entre en ejecuci´on el programa mpirun, este se encargar´a de la correcta puesta en marcha de los procesos de la aplicaci´on MPI, como si hubiera sido ejecutado directamente por el usuario y no a trav´es del gestor de colas . En la figura 5.2, se pueden observar las diferencias que existen entre LAM, OpenMPI con MPICH respecto a la metodolog´ıa seguida en ejecuci´on los diferentes procesos MPI, sobre todo con el proceso padre. En la implementaci´on de MPICH este proceso es ejecutado por mpirun para que posteriormente se encargue de la ejecuci´on de los procesos hijos (figura 5.2, punto 3a y 3 ), por el contrario en el caso de LAM y OpemMPI son sus respectivos demonios lamd y orted, los encargados de la ejecuci´on de todos los procesos MPI (figura 5.2, puntos 3b y 3 ).

5.1.2. Monitorizaci´ on de aplicaciones MPI sobre Paradyn, Gdb