You are on page 1of 95

Com putacin de Altas

Prestaciones (H PC)
Parte 1 O penM P y M PI
Sistemas Operativos Avanzados Waldo A. Valiente

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

Tipos de Arquitecturas
No Confi gurables
Confi gurables

- (2da clase)

Re Confi gurables
Adaptables

- (1ra clase)

- (3ra clase)

Com putacin Secuencial


~-~ Modelo Von Neumann ~-~

Com putacin Secuencial


V E N TA J A S :
Programacin es ms sencilla (!).
D E S V E N TA J A S :
Secuencialidad de trabajo.
No se aprovechan todos los recursos.

Com putacin Secuencial

N ecesidad de Paralelism o
Limitaciones fsicas computacin
secuencial.

Complejidad en problemas.

N ecesidad de Paralelism o
Ejemplo: Tiempo de ejecucin secuencial
del algoritmo X.
T = tc

[ P r (n) ]

T = Tiempo de resolucin del Algoritmo (s).


tc = Tiempo de computo de una operacin.
Pr(n) = Nmero operaciones del Algoritmo.
a = Complejidad del problema.

N ecesidad de Paralelism o
Utilizando un procesador Galileo Gen 1:
T = tc

[ P r (n) ]

t c 1 / 1 . 2 5 M I P S ( Pro c e s a d o r G a l i l e o G e n 1
(400MHz)).
C o n u n p ro b l e m a d e 1 0 0 o p e r a c i o n e s
aritmticas:
Cuando a = 1

(1/1.25M)

[ 100 ]

= 80 s.

N ecesidad de Paralelism o
Utilizando un procesador Intel Core i7:
T = tc

[ P r (n) ]

t c 1 / 8 3 0 0 M P I S ( Pro c e s a d o r C o re i 7 ( 2 . 4 G H z ) ) .
C o n u n p ro b l e m a d e 1 0 0 o p e r a c i o n e s
aritmticas:
Cuando a = 1; (1/8.3G)
ns.

[ 100 ]

= 35-9 = 12

N ecesidad de Paralelism o
Problemas de gran dimensin.
Ahora cuando aumenta a 10 veces:
Galileo G1 : (1/1.25M) x [ 100 ]

10

= 8E13 = 2536

milenios.
Core i7 : (1/8.3G) x [ 100 ]

10

= 3,510 = 3,8 siglos.

Velocidad de respuesta (Tiempo Real).

Ley M oore

Paralelism o en m onoprocesador
Procesador Vectorial

Paralelism o en m onoprocesador
Procesador Escalar Segmentado
t
B

Instruccin 1

Instruccin 2
A

Instruccin 3

1 core de 4 seg. (Bsqueda, Decodificacin,


Ejecucin y Almacenamiento)

Paralelism o en m onoprocesador
Procesador Escalar Supersegmentado

Paralelism o en m onoprocesador
Procesador Escalar Superescalar
t

Paralelism o en m onoprocesador
Procesadores VLIW
t

Paralelism o en m onoprocesador
Tcnicas multihilos

H H
COR
E

Pentium 4

Paralelism o en
Taxonoma Flynn

m ultiprocesadores

Paralelism o en
SISD

m ultiprocesadores

Paralelism o en
SIMD

m ultiprocesadores

Paralelism o en
MISD

m ultiprocesadores

Paralelism o en
MIMD

m ultiprocesadores

Paralelism o en

m ultiprocesadores

MIMD

H H
COR
E

H H
COR
E

i3

COR
E
COR
E

i5

COR
E

H H
COR
E

H H
COR
E

COR
E

H H
COR
E

H H
COR
E

i7

Paralelism o en
MIMD

m ultiprocesadores

Paralelism o en

m ultiprocesadores

Memoria Compartida (threads/OpenMP)

Paralelism o en

m ultiprocesadores

Memoria Distribuida (Ada/MPI)

Paralelism o en

m ultiprocesadores

Memoria Compartida Distribuida


(OpenMP+MPI)

Paralelism o en

m ultiprocesadores

Taxonoma Flynn ( Ta n e n b a u m )

M edicin Rendim iento

Rendimiento:

M edicin Rendim iento

Speed-UP:

M edicin Rendim iento


Rendimiento
Speed-UP
ptimo:

MFLOPS

Sec.
Nro core (ej. 2)

M edicin Rendim iento

Speed-UP:

M edicin Rendim iento

Efi ciencia:

M edicin Rendim iento


Ley de Amdahl:

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

O penM P
Es
Ab r ev iaci n d e (O p en Multi-P ro ce ssing) .

Interfaz de programacin
Con 3 componentes principales.

O penM P
Tres componentes:
D ir e ctiv as d e co mp ilado r .

Bibliotecas de funciones.
Variables de entorno.

O penM P
Directivas de compilador ( fork/Join )
Crear regin paralela.
Serializar secciones de cdigo.
Dividir bloques de cdigo entre thread.
Sincronizar thread.
Distribuir iteraciones.

O penM P
Bibliotecas de funciones
Fijar y usar el id thread.
Consultar el id del padre y total de
hermanos.
Estado del bloque (si es paralelo y en
que nivel).
Administrar bloqueos y anidamientos.

O penM P
Variables de Entorno
Fijar el nmero mximo de thread.
Fijar el tamao de stack por thread.
Fijar afi nidad de thread a procesadores.
Planifi cacin de thread.
Administrar paralelismo anidado.

O penM P
No es una herramienta que brinda
La p aralizacin auto m tica .

El control al acceso a datos.


La sincronizacin de E/S.
La uniformidad por fa bricantes.
Paralelismo en entornos distribuidos.

O penM P
Objetivos de OpenMP
Estandarizacin.
Simple y Robusto.
Fcil de usar.
Portabilidad.
Paralelismo en entornos distribuidos.

O penM P
OpenMP brinda
Paralelismo a nivel de cdigo.

O penM P
Ejecucin secuencial

Programa

S1

S
2

S
3

S
4

Ejecucin en el tiempo

S5

S
6

S
7

O penM P
Ejecucin OpenMP c o n 4 h i l o s c o n 2 re g i o n e s
y 7 secciones.
S
1

S
5

S
2

Main
thread

S
6

Master thead

S
3

fork

S
4

Master thread

S
7

Join

fork
Ejecucin en el tiempo

Join

O penM P
OpenMP brinda
Paralelismo a nivel de datos.

O penM P
Ejecucin secuencial

Programa

for ( i = 1; i < = 6 ; i+ + )
i1

i2

i3

i4

i5

Ejecucin en el tiempo

i6

O penM P
Ejecucin OpenMP regin paralela for con
4 hilos.

i1
i2

Main
thread

i3

Master thead

i4
i5

fork

i6

Join

Ejecucin en el tiempo

O penM P
Ventajas:

O penM P
Desventajas:

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

M PI
Es una especifi cacin para los
desarrolladores y usuarios de bibliotecas
de pasaje de mensajes.

M PI
OpenMPI es la biblioteca que representa
la especifi cacin MPI.
Thread-safe.
Open-Source.
Desarrollada por consorcio de
acadmicos, investigadores
y compaas Software

M PI
#include <mpi.h>
Declaracin variables
main() {

Esquele
to
de
program
a
MPI

MPI_Init()
Bloque paralelo

MPI_
Bloque paralelo

MPI_Finalize()
}

M PI
OpenMPI utiliza procesos ( thread) y cada
uno representa a una tarea independiente
que ejecuta dentro del contexto
MPI_COMM_WORLD.

M PI
La comunicacin por nodos se realiza por
ssh.
El programa paralelo debe existir en cada
nodo.

M PI
Paso de mensajes

M PI
P2P Sincrnicas

M PI
P2P Asincrnicas

M PI
Colectivas

M PI
Colectivas broacast
1

M PI
Colectivas scatter
1

1 2 3 4

M PI
Colectivas gather
1

1 2 3 4

M PI
Colectivas reduction
1

+
1
0

M PI
Ventajas:

M PI
Desventajas:

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

Cluster
-Nodos Homogenios
-SO nico
-Centralizado
-Mejora rendimiento
dedicando + recursos

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

G RID
-Heterogneos
-Mltiples SO.
-Equipos dispersos.
-Mejora el
rendimiento
compartiendo
recursos sub-

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

Com putacin en la N ube


-Heterogenios y
dispersos.
-Esta orientado a
Comercial / Servicio.
-No colaborativo.
-Se alquilan recursos.

Com putacin en la N ube

Agenda Clase 1
Arquitecturas.
O p e n M P.
MPI.
C l u s t e r.
GRID.
Computacin en la Nube.
Tr a b a j o P r c t i c o .

Trabajo Prctico
Repaso del trabajo prctico HPC

Trabajo Prctico (O penM P)


Pasos para usar openMP en Linux :
apt-get install binutils
apt-get install build-essential

Trabajo Prctico (O penM P)


Pasos para usar openMP en Windows:
Compilador C MINGW
h t t p : / /t d m - g c c . t d r a g o n . n e t / d o w n l o a d

Trabajo Prctico (M PI)


Pasos para usar MPI en Linux :
apt-get install ssl
apt-get install ssh
apt-get install openmpi-bin openmpi-doc
libopenmpi-dev

Trabajo Prctico (M PI)


Pasos para usar MPI en Windows:
Compilador C MINGW
h t t p : / /t d m - g c c . t d r a g o n . n e t / d o w n l o a d
Biblioteca MPI:
h t t p s: / /
w w w. m i c r o s o f t . c o m / e n - u s / d o w n l o a d / d e t a i l s . a s p x ?
id=36045

Trabajo Prctico (M PI)


Pasos para compilar MPI en Windows :
Tu t o r i a l p a r a g e n e r a r b i b l i o t e c a d e c o m p i l a c i n :
h t t p : / / w w w. s y m s c a p e . c o m / c o n fi g u r e - m s m p i - f o r- m i
ngw-w64
N o t a : E n e l p u n t o C re a t e l i b m s m p i . a o n L i n u x
los comandos utilizados los tiene TDM .
- gendef
- dlltool

Trabajo Prctico (O penM P)


Analizar ejemplo hello_openMP.
Ve r c o m p i l a c i n .
Ve r c d i g o .
Ve r e j e c u c i n .

Trabajo Prctico (M PI)


Analizar ejemplo hello_MPI.
Ve r c o m p i l a c i n .
Ve r c d i g o .
Ve r e j e c u c i n .

Com putacin de Alto Rendim iento

Com putacin de Alto Rendim iento

Com putacin de Alto Rendim iento


Continuar en la clase 2

Bibliografa
Libro- Introduccin a la programacin paralela
Te s i s - Ve r i fi c a c i n d e C o v e r i n g A r r a y s u t i l i z a n d o
Supercomputacin y Computacin Grid Cap. 3.
L i b ro I n t ro d u c c i n a l a C o m p u t a c i n Pa r a l e l a C a p .
1,2.
A r t c u l o - Pro g r a m a c i n Pa r a l e l a y D i s t r i b u i d a .
h t t p : / /w w w. o p e n m p . o r g / m p - d o c u m e n t s / o p e n m p - 4 . 5 . p d f
https://
w w w. m p i - f o r u m . o r g / d o c s / m p i - 3 . 1 / m p i 3 1 - r e p o r t . p d f
Libro Introduccin a las arquitecturas paralelas
Md 1

D iseo de ttulo y contenido con grfi


co
Chart Title
6
5
4
3
2
1
0

Categora 1

Categora 2
Serie 1

Categora 3
Serie 2

Serie 3

Categora 4

D iseo de dos contenidos con tabla


Primera vieta aqu

Grupo A

Grupo B

Segunda vieta aqu

Clase 1

82

95

Tercera vieta aqu

Clase 2

76

88

Clase 3

84

90

D iseo de dos contenidos con Sm artArt

Primera vieta aqu


Segunda vieta aqu
Tercera vieta aqu

Haga clic en el icono para aadir


una imagen

You might also like