MasterValenciaMPI2011.pptx

advertisement
Middleware Avanzado
Soporte a Computación Paralela MPI
Soporte a Interactividad en Grids
Dra. Isabel Campos Plasencia
Científico Titular del CSIC
Instituto de Física de Cantabria
Temas a tratar
• Conceptos básicos de computación Grid ✔
• Middleware de gLite ✔
• Introducción y estado del arte
– La necesidad de ir más allá de glite
• Soporte a MPI en Grids
– Intra-cluster MPI
– Inter-cluster MPI
• Interactividad
– glogin / i2glogin
• Ejercicios prácticos
2
Algunas referencias
gLite: http://www.cern.ch/glite
Desarrollo de middleware avanzado sobre glite:
http://www.i2g.eu
Soporte a MPI
• Aspectos Generales sobre MPI y computación
paralela en
• Soporte a MPI en el Grid
• Ejemplos
4
Ejecución batch monoproceso en Grids
Job
Inp. files
Grid
Scheduler
User
Interface
Global
Services
Middleware
Middleware
Resource
Resource
Grids & e-Science 2009. UIMP. Santander
5
Ejecución batch monoproceso en Grids
Job
Inp. files
Grid
Scheduler
User
Interface
Global
Services
Middleware
Middleware
Resource
Resource
Grids & e-Science 2009. UIMP. Santander
6
Ejecución batch monoproceso en Grids
Grid
Scheduler
User
Interface
Global
Services
Middleware
Middleware
Resource
Job
Resource
Inp. files
Grids & e-Science 2009. UIMP. Santander
7
Ejecución batch monoproceso en Grids
Output
files
Grid
Scheduler
User
Interface
Global
Services
Middleware
Middleware
Resource
Resource
Grids & e-Science 2009. UIMP. Santander
8
Pero…
• Los usuarios necesitan más capacidad de computación
– Usando más de un core por ejecución
– Usando más de un site por ejecución incluso
Ejecución paralela de aplicaciones
• Los trabajos paralelos usan más de un core
• ¿Cómo usarlos de manera eficiente?
– Shared memory: todos los cores acceden a un área común de
la memoria para acceder a los datos
– Message Passing: los cores se intercambian mensajes con los
datos
Grids & e-Science 2009. UIMP. Santander
9
Trabajos paralelos
• Los trabajos paralelos usan más de un core
• ¿Cómo usarlos de manera eficiente?
– Shared memory: todos los cores acceden a un área
común de la memoria para acceder a los datos
– Message Passing: los cores se intercambian
mensajes con los datos
– Cómo especificar cores/procesador en los
procesadores multicore
• Ejecuciones mixtas MPI/OpenMP
Grids & e-Science 2009. UIMP. Santander
10
Introducción y Contexto
• High throughput computing
(HTC)
– Se utilizan muchos recursos
computacionales durante largos
periodos de tiempo
• Acceso a mucho tiempo de cpu
promedio durante largos
periodos de tiempo (meses)
• Optimizar el número de trabajos
ejecutados por unidad de
tiempo.
• Computación en modo granja, o
procesos independientes
– El Grid se diseñó con la idea de
ser una fuente de HTC
• High performance computing
(HPC)
– Disponer simultaneamente de una
gran cantidad de recursos
computacionales
– Lo importante es que la aplicación se
ejecute en el menor tiempo posible.
– Para ello es necesario que los
procesadores individuales que
participan en el cálculo cooperen
¿Cómo hacer que los
procesadores cooperen?
Computación paralela
• Ejecución simultánea de una misma tarea
• Dividida y adaptada al entorno de computación
• Obtener los resultados de una forma más rápida
¿Cómo hacer que los procesadores cooperen?
• En principio dependerá de la arquitectura del sistema y del
procesador
– Cada fabricante de hardware tenía su propia forma
• Librerías específicas
• Lenguajes específicos: Apesse, Occam, etc…
– Ventajas
• Se obtiene el mejor rendimiento posible de cada plataforma
– Inconvenientes
• No es portable. Repetir el mismo esfuerzo de programación para cada
arquitectura.
• A veces era necesario un conocimiento profundo del hardware de la máquina
Ejemplo INMOS
Máquinas basadas en transputers: Occam
WHILE next <> EOF
SEQ
x := next
PAR
in ? next
out ! x * x
CHAN OF [36]BYTE message
CHAN OF COMPLEX32 imp
CHAN OF INT::[]BYTE link
message ! “Hello, World!”
link ! len::[buffer FROM start]
Ejemplo ALENIA
TAO para las máquinas APE
APE100
en DESY
Ejemplo ALENIA
TAO para las máquinas APE
Message Passing Interface (MPI) Forum
En 1992 se creo el MPI Forum para tratar crear una prescripción
independiente del sistema y del procesador
•
•
Ver información en http://www.mpi-forum.org
Participan los más representativos fabricantes de hardware (IBM, Intel, HP, AMD,…)
junto con investigadores en ciencia computacional de todo el mundo
• Objetivos del MPI Forum
– Definir un interfaz de programación (API) uniforme
– Enfocado a conseguir una comunicación entre procesos lo más eficiente
posible
– Asumiendo que el interfaz de comunicación hardware es fiable
– Permita la programación en C y en Fortran de forma cómoda para el usuario
Evolución del trabajo del MPI Forum
•
•
•
•
1994 release de MPI 1.0
– Release inicial
1995 release of MPI 1.1
1997
– Release de MPI 1.2
– Release de MPI 2.0
Futuro
– Hacia el MPI 3.0
MPI - 1
MPI - 2
 Comunicaciones Point-to-point
 Input/Output de ficheros
 Operaciones Collectiva
 Comunicaciones one-sided
 Topologías
 Extensión de macros para C++ y F90
 Manejo de las tipologías de datos
¿Qué es MPI ?
• Es la especificación de un interfaz de programación (API):
Define la forma del Interfaz y su semántica
• MPI es vendor neutral y (de facto) Standard
• MPI lo define el MPI-Forum
• MPI especifica la forma de los interfaces para C, C++ y Fortran
70/90
• MPI no está acabado. Hay un progreso continuado hacia
nuevas versiones.
¿Qué NO es MPI ?
• MPI no es Magia
“He instalado XXX-MPI in 4 de mis maquinas y mi aplicación no se
ejecuta más rápido !?!” (pregunta típica)
• MPI no es una implementación de nada, es sólo un estándar
– OpenMPI, MPICH, LAMMPI son implementaciones del estándar MPI
• MPI no es el Santo Grial
– Hay muchos problemas cuya solución no se adecúa al paradigma de paso de
mensajes entre procesos
– Es muy fácil escribir una aplicación MPI cuyo rendimiento sea peor que su
versión secuencial
– MPI funciona bien en sistemas de memoria compartida pero, tal vez Open MP
es mejor solución, dependiendo del problema
Conceptos básicos
• Todas las funciones/símbolos MPI functions/symbols
contienen el prefijo “MPI_”
– Para usar MPI en los programa en C hay que incluir mpi.h
– Para usar MPI en Fortran hay que incluir mpif.h
• La compilación y linkado es dependiente de la
implementación
– Las implementaciones más populares de MPI
ofrecen al usuario compiladores preparados
• mpicc, mpicxx, mpiCC, mpif70, ....
• Cargan automaticamente los flags y las librerías
necesarias
• Tipicamente en un Makefile se sustituye el nombre del
compilador
– “mpicc” en lugar de “gcc”
MPI: Grupos y procesos
• En el paradigma MPI la ejecución
de un binario (ej. una aplicación)
se divide en N partes,
denominadas procesos
– Los procesos a su vez están
agrupados en grupos
– Cada proceso dentro un
grupo está identificado por
un número, el rango (rank)
del proceso
– Rank = 0,…,(N-1)
MPI: Grupos y Procesos
Ejemplo:
Distribución de 8 procesos
en 4 procesadores
•
Notar la diferencia entre Proceso y
Procesador
CPU1
CPU2
CPU3
CPU4
– Un mismo procesador puede ejecutar
varios procesos
•
Cada proceso puede en principio
ejecutar un binario diferente
– MIMD (multiple instruction multiple
data)
•
En general es siempre el mismo
binario el que ejecuta código
diferente basándose en su rango
•
El caso más común es que todos los
procesos ejecuten el mismo binario
mpirun –np 8
–machinefile hostnames.txt
./miprog
Genera 8 procesos elementales
Distribuídos entre 4 CPUs
MPI: Procesos
•
Notar la diferencia entre Proceso y
Procesador
– Un mismo procesador puede ejecutar
varios procesos
•
Ejemplo:
Distribución de 8 procesos
en 4 procesadores
Master
Cada proceso puede en principio
ejecutar un binario diferente
0
1
2
3
– MIMD (multiple instruction multiple
data)
•
•
En general es siempre el mismo
binario el que ejecuta código
diferente basándose en su rango
4
El caso más común es que todos los
procesos ejecuten el mismo binario
Grids y e-Ciencia 2008, IFIC Valencia
5
6
7
MPI: Comunicadores
• Un comunicador es el objeto que sirve para comunicar (~
socket)
– Un grupo
– Un contexto de comunicación
• Los contextos son únicos
• Dividen toda la comunicación MPI en espacios
disjuntos
MPI: Comunicadores predefinidos
Comunicadores predefinidos
• MPI_COMM_WORLD
– Envuelve a todos los procesos de la
ejecución MPI
• MPI_COMM_SELF
•
– Envuelve solo a los procesos que
están en un determinado contexto
MPI_COMM_NULL
– Ningún proceso
• El usuario puede crear sus propios
comunicadores de acuerdo a las
necesidades del programa
Funciones importantes
• MPI_comm_size
– Devuelve el número de procesos
en el grupo
• MPI_comm_rank
– Devuelve el rango del proceso
que hace la llamada
• MPI_comm_free
– Elimina un comunicador
MPI: Hello World
MPI: Hello World
Comentarios
• MPI_Init
– Inicializa el sistema MPI
– Es necesario llamarlo al principio del programa,
antes de invocar ninguna otra función MPI
• MPI_Finalize
– Deshabilita el sistema MPI
– Tras esta llamada no se puede llamar a MPI
• Las funciones MPI devuelven siempre un código de error que
se puede chequear
Tipos de comunicación: punto-a-punto
•
Intercambio de datos entre dos
procesos
– Se produce mediante el envío de un
mensaje
– El proceso fuente envía el mensaje
– El proceso receptor tiene que
recibirlo (activamente)
int MPI_Send(void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm);
int MPI_Recv(void *buf, int count, MPI_Datatype datatype,
int source, int tag, MPI_Comm comm, MPI_Status *status )
Tipos de comunicación: punto-a-punto
•
•
•
•
•
•
•
•
*buf: puntero a los datos a enviar
count: número de elementos a
enviar
datatype: tipo de dato
dest: Identificación del proceso
destino
tag: etiqueta de la comunicación
comm: Identificación del comunicador
•
•
•
•
•
•
•
*buf: puntero para la recepción de los datos
count: número de elementos
datatype: tipo de dato
source: Identificación del proceso origen
tag: etiqueta de la comunicación
comm: Identificación del comunicador
*status: puntero para acceso a información
sobre mensaje
Envío: MPI_Send()
Recepción: MPI_Recv()
Tipos de comunicación: Colectivas
MPI_Bcast() Un proceso distribuye
un mismo dato al resto de los procesos
MPI_Scather() Un proceso distribuye
datos al resto de los procesos particionando
MPI_Gather() Un proceso recoge datos
de varios procesos
Tipos de comunicación: Colectivas
• MPI_Reduce
Realiza una operación
matemática distribuida y se
devuelve el resultado al root de la
operación
El programador puede añadir sus
propias operaciones
Ejemplos de funciones empleadas
en operaciones colectivas:
MPI_MAX
MPI_MIN
MPI_SUM
MPI_PROD
MPI_LAND logical AND integer logical
MPI_BAND bit-wise AND integer,
MPI_BYTE integer, MPI_BYTE
MPI_LOR logical OR integer logical
MPI_BOR bit-wise OR integer
Ejemplo MPI_Bcast
Char msg[100];
if(my_rank==source)
{
sprintf(msg,"\n Esto es un mensaje del proceso %d a todos los demás",source);
MPI_Bcast(msg,100,MPI_CHAR,source,MPI_COMM_WORLD);
printf("\n Mensaje enviado a todos desde %d",source);
}
else
{
MPI_Bcast(msg,100,MPI_CHAR,source,MPI_COMM_WORLD);
printf("\n Mensaje recibido en %d desde %d",my_rank,source);
printf(msg);
}
Ejemplo MPI_Reduce
int value;
int result;
value = my_rank;
MPI_Reduce(&value,&result,1,MPI_INT,MPI_SUM,source,MPI_COMM_WORLD);
if(my_rank==source)
{
printf("\n Resultado de la suma colectiva %d", result);
}
Sistemas, Hardware y MPI
Configuración típica de un cluster
Nodos Paralelos
Switch
Nodos secuenciales
Red Interna
Switch
Red exterior
Importancia de la intranet en el cluster
Durante el cálculo necesitan intercambiar datos a través
de la red de procesadores que conforma el cluster
¿ Cuánto y con qué Frecuencia necesita el programa comunicar ?
La respuesta fija los parametros de la RED
que necesitamos
Cantidad
Frecuencia
MB/s
?
Ancho de Banda
Latencia
Alternativas hardware para MPI
I.
Gigabit Ethernet (GE)
 Latencias del orden de los 100 microseg.
 Ancho de Banda en el rango 50-100 MB/s
 Precio: 80 € /puerto + Switch ( > 1500 €)
II.
Myrinet 2000
 Latencias entorno a 10 microseg.
 Ancho de Banda entorno a 300 MB/s
 Precio: 1200 € por tarjeta + Switch (~ 12,000 / 32 puertos)
III. Infiniband
 Latencias entorno a 5 microseg.
 Ancho de Banda entorno a 1GB/s
 Precio: ~ 10,000 € / 24 puertos
Red Myrinet
• Componentes de una red Myrinet (Myrinet 2000)
Cada nodo tiene una tarjeta PCI-X con una o dos conexiones (490MB/s
y 900 MB/s respectivamente)
Las tarjetas se conectan con un cable Myrinet (fibra óptica) a un
switch multi-puerto (hasta 32 puertos por switch).
Para redes mayores: combinaciones de switches (Myrinet Network in
a box)
• Software Myrinet (libre)
Detecta la red Myrinet presente de manera automática (no hay que
configurar el switch)
GM: software de paso de mensajes de bajo nivel sobre el que
funcionan aplicaciones de alto nivel como MPI
• Myrinet Express (MX)
 Conectado a un slot PCI-Express
Red Myrinet
MareNostrum: Myrinet Express
Grids & e-Science 2009. UIMP. Santander
41
Red Infiniband
Tecnología que trata de dar respuesta a las necesidades de I/O
Compartidas en clusters de ordenadores conectados a Storage
Area Networks  desconectar el I/O al exterior, del resto de
procesos de la máquina
Arquitectura de Infiniband
Infiniband
Pentium 4
System
Bus
@ 25Gb/s
@ 8Gb/s
PCI
Express
Switch
IB
@ 20Gb/s
PCI
Express
@ 80 Gb/s
South Bridge
@ 8Gb/s
HCA
System Logic
System Logic
South Bridge
Slot
PCI-X
@ 25Gb/s
@ 25Gb/s
System Logic
Hub
Link
Pentium 4
Pentium 4
PCI
Express
4X IB
@ 20Gb/s
@ 20Gb/s
I/O Bridge
Con HCA
HCA
Switch
IB
12X IB
@ 60Gb/s
4X IB
@ 20Gb/s
Switch
IB
Integración de Infiniband
Ejemplo de Hardware Infiniband
Hardware Infiniband
Comparación de latencias entre
Infiniband y Gigabit Ethernet
Comparación de Anchura de Banda
entre Infiniband y Gigabit Ethernet
Puntos importantes
• Los ordenadores paralelos dedicados a un problema
específico han pasado a la historia
– La existencia de un hardware de interconexión asequible y de MPI
como protocolo de comunicación independiente del Hardware ha
simplificado la situación
• Clusters Linux del orden de 1000 cores con tecnología de
intranet tipo infiniband existen en muchos centros de
investigación de tamaño medio y grande
• Las aplicaciones MPI se pueden catalogar según la intensidad
del uso del switch de intranet. Hay dos límites:
– Aplicaciones MPI modo granja (procesos
practicamente desacoplados)
– Aplicaciones MPI intensivas en comunicación
MPI en el GRID
Grids & e-Science 2009. UIMP. Santander
51
Soporte a MPI en el Grid
¿Porqué?
• Muchas áreas de aplicaciones requieren soporte a MPI
– Ciencias de la tierra, fusion, astrofísica, Química Computacional…
– Se pueden obtener resultados significativos usando 10s-100s of
CPUs
• Muchos clusters de hecho están listos para usar MPI
– En modo local mediante envío directo
– Sistemas de ficheros compartidos, intranets de alto rendimiento
• Es necesario proveer de ese acceso a través del middleware
Grid
Soporte a MPI en el Grid
¿Porqué?
• Muchas áreas de aplicaciones requieren soporte a MPI
– Ciencias de la tierra, fusion, astrofísica, Química Computacional…
– Se pueden obtener resultados significativos usando 10s-100s of
CPUs
• Muchos clusters de hecho están listos para usar MPI
– En modo local mediante envío directo
– Sistemas de ficheros compartidos, intranets de alto rendimiento
• Es necesario proveer de ese acceso a través del middleware
Grid
Problemas a resolver
No es un entorno homogéneo
 Sistemas de ficheros no
compartidos
Muchos sites no tienen
soporte a sistemas de ficheros
compartidos
Muchas implementaciones MPI
esperan encontrar el
ejecutable en el nodo donde
se ejecuta el proceso
En general el setup es muy
variado
• MPI no establece un standard de
cómo iniciar un programa
– No hay una sintaxis común para
mpirun
– MPI-2 define mpiexec como
mecanismo de lanzamiento, pero el
soporte a mpiexec es opcional en
todas las implementaciones
– Los Brokers tienen que manejar
distintas implementaciones MPI:
MPICH, OpenMPI, LAMMPI,
– Schedulers distintos (PBD, SGE,…) y
distintas implementaciones MPI en
cada site tienen distintas maneras de
especificar el fichero machinefile
Situación típica en el Grid
Workload Management System
Feed by Grid Info System
CE
OpenMPI
Non-shared dir
SGE
CE
CE
OpenMPI-IB
NFS dirs
PBS
MPICH-GM
GPFS
LoadLeveler
Translate?
NO,
Of course!
WMS
Translate?
NO
WMS cannot be updated
often without compromising
the whole job submission
procedure
CE
WN
Local Scheduler
UI
General Grid Scheduler
El lenguaje del Grid Scheduler tiene que ser traducido
a la sintaxis del scheduler local
Translate?
YES, but how?
Ejemplo con Sun Grid Engine
Executable = “myprog”;
Arguments = “arguments”;
JobType
= “MPI”;
ProcNumber = 4;
StdOutput = “std.out”;
StdError
= “std.err”;
InputSandBox = {“myprog”};
OutputSandBox = {“std.out”,
¨
“std.err”};
#/bin/sh
#$ -o $HOME/mydir/myjob.out
#$ -N myjob
#$ -pe mpi 4
. /etc/profile.sge
. /etc/mpi.setup –e mpi
cd mydir
mpirun –np 4 ./myprog
nodo1
nodo2
nodo3
nodo4
1
1
1
1
Diseño de una capa de software
intermedio: Objetivos
MPI-START
• Especificar un interface único a la capa superior de
middleware para describir un trabajo MPI
• Ser capaz de dar soporte a implementaciones MPI distintas y
nuevas, sin tener que cambiar el middleware del Grid
• Soportar las operaciones básicas de distribución de ficheros
• Dar soporte al usuario para manejar sus datos pre- y post-run
Consideraciones de diseño de mpi-start
• Portable
– MPI-START debe ser capaz de ejecutarse bajo cualquier sistema
operativo que soporte el middleware
• Script en bash
• Arquitectura modular y extensible
– Instalable como un Plugin
– Independiente de path absolutos para poder adaptarse a las distintas
configuraciones locales de los site
• Posibilidad de “inyección remota” con el trabajo
– Dar al usuario cierta potencia de trabajo independiente del site
• Opciones de debug remoto avanzadas
Arquitectura de mpi-start
MPI-Start for users
• Single interface for all parallel jobs:
– No need to learn a different command line option every time a MPI
version changes
– No need to learn how each scheduler manages the hosts
• Control of process mapping:
– One process per host
– N processes per host
– K total processes
• File distribution
– No need to worry (much) about shared or not filesystems
• Customizable with hooks
– Compilation
– input preparation
– management of output
11 Apr 2011
EGI UF, Vilnius 2011
61
MPI-Start for admins
• Single interface for all parallel jobs:
– No need to configure a different Execution
Environment / Run Time Environment for each type
of job
• Easy to deploy for admins without much
experience:
– Default MPI installations paths for SL5(current target
for EMI) installations detected
– Yaim module for configuration
• Customizable with hooks for sites with specific
requirements
11 Apr 2011
EGI UF, Vilnius 2011
62
MPI-Start flow
START
NO
Scheduler Plugin
Do we have a scheduler plugin for the current environment?
Ask Scheduler plugin for a machinefile in default format
NO
Execution Plugin
Do we have a plugin for the selected MPI?
Activate MPI Plugin
Prepare mpirun
Trigger pre-run hooks
Start mpirun
Trigger post-run hooks
Dump Env
EXIT
EGI UF. Vilnius, Apr 2011.
Hooks Plugins
63
Using MPI-Start: variables
VARIABLE
I2G_MPI_APPLICATION
I2G_MPI_APPLICATION_ARGS
I2G_MPI_TYPE
I2G_MPI_VERSION
I2G_MPI_PRE_RUN_HOOK
I2G_MPI_POST_RUN_HOOK
MEANING
The application binary to execute.
The command line parameters for the
application
The name of the MPI implementation to use.
Specifies the version of the MPI
implementation specified by I2G_MPI_TYPE.
If not specified the default version will be
used.
This variable can be set to a script which must
define the pre_run_hook function.
This variable can be set to a script which must
define the post_run_hook function
EGI UF. Vilnius, Apr 2011.
64
Using MPI-Start: variables
VARIABLE
MEANING
I2G_MPI_START_VERBOSE
Set to 1 to turn on the additional output.
I2G_MPI_START_DEBUG
I2G_MPI_APPLICATION_STDIN
Set to 1 to enable debugging output
Set to 1 to trace every operation that is
performed by mpi-start
Standard input file to use.
I2G_MPI_APPLICATION_STDOUT
Standard output file to use.
I2G_MPI_APPLICATION_STDERR
Standard error file to use.
I2G_MPI_SINGLE_PROCESS
Set it to 1 to start only one process per node.
I2G_MPI_PER_NODE
Number of processes to start per node.
I2G_MPI_NP
Total number of processes to start.
I2G_MPI_START_TRACE
EGI UF. Vilnius, Apr 2011.
65
Funcionamiento de MPI-START intracluster
Migrating
Desktop
Roaming
Access
Server
Cross
Broker
Replica
Manager
Internet
gLite
gLite
CE
CE
MPI -start
Open -MPI
WN
MPI-start invocation
Matchmaking
Web server
SERVICES
Information
Index
MPI Job
Submission
Plugin
WN
MPI inter-cluster: PACX-MPI
• PACX-MPI es un middleware para ejecutar MPI en una
red de ordenadores paralelos
– Lanza sub-trabajos MPI en cada
– Los unifica en un único trabajo MPI (grande)
• PACX sigue el standard de MPI
– Las aplicaciones solo necesitan ser recompiladas!
Application
PACX MPI (job)
Open MPI (job)
Cluster 1
Open MPI (job)
Cluster 2
67
Pacx MPI comunicación entre procesos
• Pacx-MPI mapea los MPI “ranks” del trabajo grande a
los procesos MPI que se ejecutan en cada cluster
• Pacx-MPI mapea dos procesos “ocultos” adicionales en
cada cluster que son los usados para comunicar datos
entre clusters
5
3
4
2
CE
CE
2
4
3
5
Worker Nodes
Worker Nodes
– Rank 0 del trabajo MPI local es el “out” daemon
– Rank 1 del trabajo MPI local es el “in” daemon
68
Pacx MPI comunicación entre procesos
– Comunicación interna
• La comunicación interna entre procesos ejecutandose en el mismo cluster
local se realiza a través de la implementación local MPI (optimizada)
– Comunicación externa
5
3
4
2
CE
CE
Grids & e-Science 2009. UIMP. Santander
2
4
3
5
Worker Nodes
Worker Nodes
• Envía mensaje al “out” daemon usando MPI local
• El “out” daemon envía el mensaje al host de destino por la red usando TCP
• El “in” daemon recibe el mensaje por TCP y lo envía a su destino usando el
MPI local.
69
Funcionamiento de MPI-START intercluster con PACX-MPI
Migrating
Desktop
MPI Job
Submission
Plugin
Replica
Manager
MPI-start invocation
Start up server
Internet
gLite
gLite
CE
WN
Cross
Broker
Web server
SERVICES
Information
Index
PACX MPI Coordination
Roaming
Access
Server
PACX -MPI
MPI -start
MPI -start
Open -MPI
Open -MPI
WN
CE
Download