Title: Envo de Trabajos Paralelos al Tesbed de Crossgrid
1Envío de Trabajos Paralelos al Tesbed de Crossgrid
- V Taller de Altas Energías
- 03 - 14 Julio 2006, Santander
- Irma Díaz Merino
- Consejo Superior de Investigaciones Científicas
- Instituto de Física de Cantabria, IFCA
- (Centro Mixto CSIC-Universidad de Cantabria)
- Santander ESPAÑA
2Contenidos
- Introducción
- Testbed de CrossGrid
- Objetivos principales
- Distribución
- Recursos de cada institución
- Funcionamiento
- Requisitos para la utilización del Testbed
- Computación Paralela
- Por qué es necesaria la computación Paralela?
- MPI (Message Passing Interface)
- Introducción
- Funciones Básicas
- Implementación de MPICH
- Ejemplo MPI
3Testbed de Crossgrid
- Objetivos principales
- Proporcionar infraestructura de recursos
distribuidos - Dar soporte a la construcción del testbed en los
distintos centros a través de Europa - Controlar los servicios de red requeridos por el
testbed - Integrar el middleware y el software requerido
por las distintas aplicaciones - Asegurar un nivel de interoperabilidad con otros
testbed Grid (DataGrid, EGEE) - Coordinar las versiones de software facilitando
la documentación y soportes apropiados
4Testbed de Crossgrid
- Distribución
- Recursos de computación distribuidos a través de
Europa - 16 instituciones repartidas por 9 países
europeos
International Testbed Map
5Testbed de Crossgrid
- Los distintos centros del testbed proporcionaban
- Servicios Grid, basados en
- Globus
- EDG (DataGrid project)
- LCG (LHC Computing Grid)
- CrossGrid
- Miles de Gflops de poder de procesamiento y
varios Terabytes de almacenamiento distribuido
6Testbed de Crossgrid
- Recursos de cada institución
I
7Testbed de Crossgrid
8Requisitos
- Cuenta en una máquina UI
- cgui.ifca.org.es
- Certificado de CrossGrid
- .globus
- usercert.pem Permiso de lectura para todos los
usuarios - userkey.pem Permiso de lectura para el usuario
- Organización Virtual (VO)
- cg
- cgtut
9Computación paralela
- La que se realiza usando procesos separados.
- Interactúan intercambiando información.
- Existen diversos tipos de computación paralela.
Todas usan distintos datos en cada proceso - Paralelismo en los datos (data-parallel)
Mismas operaciones en datos distintos. También
llamado SIMD (Single Instruction, Multiple Data).
Máquinas vectoriales. - SPMD (Single Program, Multiple Data) Mismo
programa, datos distintos. - MIMD (Multiple Instruction, Multiple Data)
Programas y datos diferentes. - SPMD y MIMD son esencialmente lo mismo porque
cualquier programa MIMD puede implementarse como
SPMD. - MPI se utiliza principalmente para SPMD/MIMD.
- HPF (High Performance Fortran) es un ejemplo de
una interfaz de programación SIMD.
10Por qué es necesaria?
- Límites físicos en la mejora de las máquinas.
- Los sistemas de alto rendimiento especializados
resultan muy caros. - La computación paralela en clusters de PCs
resulta más asequible. - Y hace más fácil compartir los recursos (como en
el grid). - Muchos problemas pueden ser resueltos mucho más
rápidamente gracias a la paralelización. Sin
embargo, esta no es siempre una buena solución,
depende mucho del tipo de problema a resolver.
11MPI (Message Passing Interface)
- Es una interfaz estándar (1993) para la
programación usando el paradigma de paso de
mensajes. - Sirve tanto para grandes computadores de memoria
compartida, como para clusters o redes de
ordenadores heterogéneos (incluido el grid
computing). - Definida para C, C y FORTRAN.
- Comprende una gran cantidad de funciones (128),
macros, etc. - Pero con 6 funciones básicas se puede empezar a
programar usando MPI.
12MPI Funciones Básicas
- Funciones necesarias para programar en MPI
- MPI_Init Inicializa la ejecución del entorno
MPI. - MPI_Comm_size Para averiguar el número de
procesos. - MPI_Comm_rank Identifica el proceso.
- MPI_Send Envía un mensaje.
- MPI_Recv Recibe el mensaje.
- MPI_Finalize Finaliza la ejecución del entorno
MPI. - Referencia del estándar en
- http//www-unix.mcs.anl.gov/mpi/
13MPI Implementación MPICH
- MPICH es una implementación gratuita de MPI 1.2
- Es una implementación muy portable. Valida para
Supercomputadores de memoria distribuida,
Sistemas de memoria compartida, Clusters, Grid... - El Testbed de CrossGrid soporta
- MPICH-P4 (Intracluster)
- Usando JobTypeMPICH en el archivo JDL, y
especificando NodeNumber (número de nodos
necesarios para ejecutar el trabajo) - MPICH-G2 (Intercluster)
- Usando JobTypeMPICH-G2 en el archivo JDL y
NodeNumber. - Es una implementación grid de MPICH mediante el
device globus2 - Completamente rediseñada desde la anterior
versión MPICH-G - http//www3.niu.edu/mpi/
14MPICH-P4 y Grid
15MPICH-G2 y Grid
16Ejemplo
Executable "gaussPar.exe"
JobType MPICH NodeNumber
5 VirtualOrganisation "cg"StdOutput
"std.out" StdError
"std.err" InputSandbox
"gaussPar.exe" OutputSandbox
"std.out","std.err","histograms.xml" Arguments
10
17gaussPar.exe
- Gauss.c programa que genera la distribución
gaussiana. (MPI, C) - Se crea el archivo Makefile
- Con este fichero se obtiene el ejecutable
gaussPar.exe
MPI_DIR/opt/mpich-1.2.4/ch_p4 MPICC(MPI_DIR)/bi
n/mpicc all gaussPar.exe default
gaussPar.exe gaussPar.exe Gauss_MPI.o (MPICC)
-o gaussPar.exe Gauss.o -Llib lm Gauss_MPI.o
Gauss_MPI.c (MPI) -c Gauss_MPI.c clean
gaussPar.exe Gauss_MPI.o rm gaussPar.exe
Gauss_MPI.o
18Más información
- Proyecto Crossgrid
- http//www.eu-crossgrid.org
- Tutorial
- http//www.eu-crossgrid.org/tutorial/EGC_2005_CGTu
torial/CG4-Tutorial.pdf - JDL
- http//server11.infn.it/workload-grid/docs/DataGri
d-01-NOT-0101-0_6-Note.doc - MPI
- http//www-unix.mcs.anl.gov/mpi/
- http//www.llnl.gov/computing/tutorials/workshops/
workshop/mpi/MAIN.html - http//www.lam-mpi.org/
- .