middleware avanzado soporte a computaci n paralela mpi soporte a interactividad en grids n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Middleware Avanzado Soporte a Computación Paralela MPI Soporte a Interactividad en Grids PowerPoint Presentation
Download Presentation
Middleware Avanzado Soporte a Computación Paralela MPI Soporte a Interactividad en Grids

Loading in 2 Seconds...

play fullscreen
1 / 70

Middleware Avanzado Soporte a Computación Paralela MPI Soporte a Interactividad en Grids - PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on

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 ✔

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Middleware Avanzado Soporte a Computación Paralela MPI Soporte a Interactividad en Grids' - harriet-wheeler


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
middleware avanzado soporte a computaci n paralela mpi soporte a interactividad en grids

Middleware AvanzadoSoporte a ComputaciónParalela MPI Soporte a Interactividad en Grids

Dra. Isabel Campos Plasencia

Científico Titular del CSIC

Instituto de Física de Cantabria

temas a tratar
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
algunas referencias
Algunas referencias

gLite: http://www.cern.ch/glite

Desarrollo de middleware avanzado sobre glite:

http://www.i2g.eu

soporte a mpi
Soporte a MPI
  • Aspectos Generales sobre MPI y computación paralela en
  • Soporte a MPI en el Grid
  • Ejemplos
ejecuci n batch monoproceso en grids
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

slide6

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

ejecuci n batch monoproceso en grids1
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

ejecuci n batch monoproceso en grids2
Ejecución batch monoproceso en Grids

Output

files

Grid

Scheduler

User

Interface

Global

Services

Middleware

Middleware

Resource

Resource

Grids & e-Science 2009. UIMP. Santander

slide9
Pero…
  • Los usuariosnecesitanmáscapacidad de computación
    • Usandomás de un core porejecución
    • Usandomás de un site porejecuciónincluso

Ejecuciónparalela de aplicaciones

  • Los trabajosparalelosusanmás de un core
  • ¿Cómousarlos de maneraeficiente?
    • Shared memory: todos los cores acceden a un áreacomún de la memoriaparaacceder a los datos
    • Message Passing: los cores se intercambianmensajes con los datos

Grids & e-Science 2009. UIMP. Santander

trabajos paralelos
Trabajosparalelos
  • Los trabajosparalelosusanmás de un core
  • ¿Cómousarlos de maneraeficiente?
    • Shared memory: todos los cores acceden a un áreacomún de la memoriaparaacceder a los datos
    • Message Passing: los cores se intercambianmensajes con los datos
    • Cómoespecificar cores/procesadoren los procesadoresmulticore
      • Ejecucionesmixtas MPI/OpenMP

Grids & e-Science 2009. UIMP. Santander

introducci n y contexto
Highthroughputcomputing

(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?

Introducción y Contexto
computaci n paralela
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

¿Cómo hacer que los procesadores cooperen?
ejemplo inmos m quinas basadas en transputers occam
WHILE next <> EOF

SEQ

x := next

PAR

in ? next

out ! x * x

Ejemplo INMOSMáquinas basadas en transputers: Occam
  • CHAN OF [36]BYTE message
  • CHAN OF COMPLEX32 imp
  • CHAN OF INT::[]BYTE link
  • message ! “Hello, World!”
  • link ! len::[buffer FROM start]
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

Message Passing Interface (MPI) Forum
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

Evolución del trabajo del MPI Forum

MPI - 1

MPI - 2

  • Comunicaciones Point-to-point
  • Operaciones Collectiva
  • Topologías
  • Manejo de las tipologías de datos
  • Input/Output de ficheros
  • Comunicaciones one-sided
  • Extensión de macros para C++ y F90
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é es MPI ?
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

¿Qué NO es MPI ?
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”

Conceptos básicos
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
mpi grupos y procesos1
Notar la diferencia entre Proceso y Procesador

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

MPI: Grupos y Procesos

Ejemplo:

Distribución de 8 procesos

en 4 procesadores

CPU1

CPU2

CPU3

CPU4

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

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

MPI: Procesos

Ejemplo:

Distribución de 8 procesos

en 4 procesadores

Master

0

1

2

3

4

5

6

7

Grids y e-Ciencia 2008, IFIC Valencia

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
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: Comunicadores predefinidos
mpi hello world1
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

MPI: Hello World
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)

Tipos de comunicación: punto-a-punto

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 punto1
*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

Tipos de comunicación: punto-a-punto

Envío: MPI_Send()

  • *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

Recepción: MPI_Recv()

tipos de comunicaci n colectivas
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 colectivas1
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

Tipos de comunicación: Colectivas
ejemplo mpi bcast
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
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);

}

configuraci n t pica de un cluster
Configuración típica de un cluster

Nodos Paralelos

Nodos secuenciales

Switch

Switch

Red exterior

Red Interna

importancia de la intranet en el cluster
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é Frecuencianecesita el programa comunicar ?

La respuesta fijalos parametros de la RED

que necesitamos

Cantidad

Frecuencia

MB/s

?

Ancho de Banda

Latencia

alternativas hardware para mpi
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 €)

Myrinet 2000

Latencias entorno a 10 microseg.

Ancho de Banda entorno a 300 MB/s

Precio: 1200 € por tarjeta + Switch (~ 12,000 / 32 puertos)

Infiniband

Latencias entorno a 5 microseg.

Ancho de Banda entorno a 1GB/s

Precio: ~ 10,000 € / 24 puertos

Alternativas hardware para MPI
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
MareNostrum: Myrinet Express

Grids & e-Science 2009. UIMP. Santander

red infiniband
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

infiniband
Infiniband

Pentium 4

Pentium 4

Pentium 4

System

Bus

@ 25Gb/s

@ 25Gb/s

@ 25Gb/s

System Logic

System Logic

System Logic

@ 8Gb/s

Hub

Link

PCI

Express

@ 20Gb/s

PCI

Express

@ 80 Gb/s

South Bridge

South Bridge

I/O Bridge

Con HCA

Slot

PCI-X

@ 8Gb/s

PCI

Express

@ 20Gb/s

HCA

HCA

12X IB

@ 60Gb/s

4X IB

@ 20Gb/s

4X IB

@ 20Gb/s

Switch

IB

Switch

IB

Switch

IB

puntos importantes
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

MPI en el GRID

Grids & e-Science 2009. UIMP. Santander

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é?
soporte a mpi en el grid porqu1
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

Hay muchos factores a la hora de dar soporte a

trabajos MPI que se han solucionado a nivel de clusters

individuales y SuperComputers, etc… que tienen que ser

reanalizados cuando se quiere implementar MPI

en el Grid

problemas a resolver
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 ficheromachinefile

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
situaci n t pica en el grid
Situación típica en el Grid

Workload Management System

Feed by Grid Info System

CE

OpenMPI-IB

NFS dirs

PBS

Site C

JobType=mpich-gm

CE

CE

MPICH-GM

GPFS

LoadLeveler

Site A

Site B

OpenMPI

Non-shared dir

SGE

el lenguaje del grid scheduler tiene que ser traducido a la sintaxis del scheduler local
El lenguaje del Grid Scheduler tiene que ser traducido a la sintaxis del scheduler local

Local Site B

UI

WMS

WN

CE

General Grid Scheduler

Local Scheduler

Translate?

NO,

Of course!

Translate?

NO

Translate?

YES, but how?

WMScannot be updated

often without compromising

the whole job submission

procedure

ejemplo con sun grid engine
#/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 1

nodo2 1

nodo3 1

nodo4 1

Ejemplo con Sun Grid Engine

BATCH

Workload Management System

Executable = “myprog”;

Arguments = “arguments”;

JobType = “MPI”;

ProcNumber = 4;

StdOutput = “std.out”;

StdError = “std.err”;

InputSandBox = {“myprog”};

OutputSandBox = {“std.out”,

¨ “std.err”};

¿?

machinefile

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

Diseño de una capa de software intermedio: Objetivos
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

Consideraciones de diseño de mpi-start
mpi start for users
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

EGI UF, Vilnius 2011

mpi start for admins
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

EGI UF, Vilnius 2011

mpi start flow
MPI-Start flow

START

Scheduler Plugin

NO

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

Hooks Plugins

Dump Env

EXIT

EGI UF. Vilnius, Apr 2011.

using mpi start variables
Using MPI-Start: variables

EGI UF. Vilnius, Apr 2011.

using mpi start variables1
Using MPI-Start: variables

EGI UF. Vilnius, Apr 2011.

funcionamiento de mpi start intra cluster

MPI

-

start

Open

-

MPI

Funcionamiento de MPI-START intra-cluster

MPI Job

Submission

Plugin

Migrating

Desktop

Roaming

Access

Server

Cross

Broker

MPI-start invocation

Matchmaking

Web server

SERVICES

Information

Index

Replica

Manager

Internet

gLite

gLite

CE

CE

WN

WN

mpi inter cluster pacx mpi
PACX-MPI esun middleware para ejecutar MPI en una red de ordenadores paralelos

Lanzasub-trabajos MPI en cada

Los unifica enun único trabajo MPI (grande)

PACX sigueel standard de MPI

Lasaplicaciones solo necesitan ser recompiladas!

MPI inter-cluster: PACX-MPI

Application

PACX MPI (job)

Cluster 1

Cluster 2

Open MPI (job)

Open MPI (job)

pacx mpi comunicaci n entre procesos
Pacx-MPImapealos MPI “ranks” deltrabajo grande a losprocesos MPI que se ejecutanen cada cluster

Pacx-MPImapea dos procesos “ocultos” adicionalesen cada cluster que sonlos usados para comunicar datos entre clusters

Rank 0 deltrabajo MPI local esel“out” daemon

Rank 1 deltrabajo MPI local esel “in” daemon

5

3

2

4

Worker Nodes

Worker Nodes

4

2

3

5

CE

CE

Pacx MPI comunicación entre procesos
pacx mpi comunicaci n entre procesos1
Comunicación interna

Lacomunicación interna entre procesosejecutandoseenelmismo cluster local se realiza a través de laimplementación local MPI (optimizada)

Comunicación externa

Envíamensajeal “out” daemon usando MPI local

El “out” daemonenvíaelmensajealhost de destino por lared usando TCP

El “in” daemonrecibeelmensaje por TCP yloenvía a su destino usando el MPI local.

5

3

2

4

Worker Nodes

Worker Nodes

4

2

3

5

CE

CE

Pacx MPI comunicación entre procesos

Grids & e-Science 2009. UIMP. Santander

funcionamiento de mpi start inter cluster con pacx mpi

PACX

-

MPI

MPI

-

start

MPI

-

start

Open

-

MPI

Open

-

MPI

Funcionamiento de MPI-START inter-cluster con PACX-MPI

MPI Job

Submission

Plugin

PACX MPI Coordination

Migrating

Desktop

Roaming

Access

Server

Cross

Broker

MPI-start invocation

Start up server

Web server

SERVICES

Information

Index

Replica

Manager

Internet

gLite

gLite

CE

CE

WN

WN