Logo Studenta

tema 03

¡Este material tiene más páginas!

Vista previa del material en texto

TEMA: 
OpenMP y MPI.
ING. ROQUE PIZANGO TAPULLIMA
¿Que es OpenMP?
Es:
• Abreviacion de (Open Multi-Processing)
• Interfaz de Programacion
• Son 3 componentes integrados al Sistema Operativo
Docente: Ing. Roque F. Pizango Tapullima
¿Que es OpenMP?
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Directivas de compilador (fork/Join):
• Serializar secciones de código.
• Dividir bloques de código entre thread.
• Sincronizar thread.
• Distribuir iteraciones.Docente: Ing. Roque F. Pizango Tapullima
OpenMP
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.
• Sincronizar thread.
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Variables de Entorno:
• Fijar el número máximo de thread.
• Fijar el tamaño de stack por thread.
• Fijar afinidad de thread a procesadores.
• Planificación de thread.
• Administrar paralelismo anidado.
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
No es una herramienta que brinda…
• La paralelización automática.
• El control al acceso a datos.
• La sincronización de E/S.
• La uniformidad por fabricantes.
• Paralelismo en entornos distribuidos
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Objetivos de OpenMP
• Estandarización.
• Simple y Robusto.
• Fácil de usar.
• Portable.Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Docente: Ing. Roque F. Pizango Tapullima
• 1 ”#pragma omp” Comienzo de la directivas 
OpenMP.
• 2 “nombre de la directiva” identifica la que se 
utilizara.
• 3 “parámetros” es opcional, no hay orden 
establecido.
• 4 “\n” nueva línea antes del bloque de código 
que aplica la directiva.
Estructura de las Directivas
• #pragma omp parallel private(numprocs, myid)
OpenMP
OpenMP brinda
• Paralelismo para la Complejidad del algoritmo
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Ejemplo directiva SECTION, programa secuencial
Docente: Ing. Roque F. Pizango Tapullima
Programa
FunFun
A
Fun
C
Fun
B
Fun
D E
Fun
GF
Ejecución en el tiempo
OpenMP
Ejemplo directiva SECTION, programa paralelo
Docente: Ing. Roque F. Pizango Tapullima
Programa
Fun
C
Fun
B
Fun
D
Fun
E
Fun
F
Ejecución en el tiempo
Master thread Master thread
Fun
G
Fun
A
OpenMP
#pragma omp sections [ clause...] '/n’
• Private(variables).
• Firstprivate(variables).
• Lastprivate(variables).
• Reduction(operador:variables).
• Nowait.
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
OpenMP brinda
• Paralelismo para el volumen de los datos
Docente: Ing. Roque F. Pizango Tapullima
OpenMP
Ejemplo directiva FOR, programa secuencial
Docente: Ing. Roque F. Pizango Tapullima
Programa
for ( i=1 ; i < 6 ; i++ )
i=1 i=2 i=3 i=4 i=5 i=6
Ejecución en el tiempo
OpenMP
Ejemplo directiva FOR, programa paralelo
Docente: Ing. Roque F. Pizango Tapullima
Programa
i=1
i=4
Ejecución en el tiempo
Master thread
i=5
i=6
i=3
i=2
OpenMP
Ejemplo directiva FOR, programa secuencial
Docente: Ing. Roque F. Pizango Tapullima
Programa
aux = 0;
for ( i=1 ; i < 6 ; i++ )
i=1
aux += …
i=2
aux += …
i=3
aux += …
i=4
aux += …
i=5
aux += …
i=6
aux += …
Ejecución en el tiempo
OpenMP
Ejemplo directiva REDUCE, programa paralelo
Docente: Ing. Roque F. Pizango Tapullima
Master threadPrograma
i=1
aux=2
i=4
aux=5
Ejecución en el tiempo
+
i=5
aux=1
i=6
aux=4
i=3
aux=6
i=2
aux=5
aux = 2aux = 7aux =aux = 1aux = aux = 23
MPI
Es una especificación para los desarrolladores y
usuarios de bibliotecas de pasaje de mensajes.
Docente: Ing. Roque F. Pizango Tapullima
MPI
OpenMPI es la biblioteca que representa la
especificación MPI.
• Thread-safe.
• Open-Source.
• Desarrollada por consorcio de académicos, investigadores y
compañías Software.Docente: Ing. Roque F. Pizango Tapullima
MPI
Esqueleto de 
programa
MPIDocente: Ing. Roque F. Pizango Tapullima
#include <mpi.h> 
• Declaración variables
• main() {
MPI_Init(…)
• Bloque paralelo
MPI_ …
• Bloque paralelo
MPI_Finalize()
• }
MPI
MPI utiliza procesos pesados (no hilos) y cada 
uno representa a una tarea independiente, que 
ejecuta en un contexto formado por una o más 
computadoras.
Docente: Ing. Roque F. Pizango Tapullima
P1
P4
P2 P3
P5
P8
P6 P7
P9 P12
P10 P11
P13
P17
P14 P15
P18
P98 P99
…
P16
P19
MPI
La comunicación por nodos se realiza por ssh.
El programa paralelo debe existir en cada nodo
Docente: Ing. Roque F. Pizango Tapullima
MPI
Comunicación por paso de mensajes
Docente: Ing. Roque F. Pizango Tapullima
MPI
Ejemplo mensajería Sincrónicas 1 a 1
Docente: Ing. Roque F. Pizango Tapullima
P1 P2 P3
send recv
send recv
send
sendrecv
recv
MPI
Ejemplo mensajería Asincrónicas 1 a 1
Docente: Ing. Roque F. Pizango Tapullima
P1 P2 P3
lsend
lrecv
lsend
lrecv
lsend
lsendlrecv
lrecv
MPI
Colectivas
Docente: Ing. Roque F. Pizango Tapullima
MPI
Ejemplo Mensajería Colectivas: Broacast
Docente: Ing. Roque F. Pizango Tapullima
P1 P2 P3
A A
bcast
A
P4
A
bcast bcast bcast
MPI
Ejemplo Mensajería Colectivas: Scatter
Docente: Ing. Roque F. Pizango Tapullima
P1 P2 P3
A B
scatter A
B
C
P4
C
scatter scatter scatter
MPI
Ejemplo Mensajería Colectivas: Gather
Docente: Ing. Roque F. Pizango Tapullima
P
1
P
2
P
3
gather
1
P
4
1 2
3
gather
gather
gather
2
3
MPI
Ejemplo Mensajería Colectivas: Reduction
Docente: Ing. Roque F. Pizango Tapullima
P
1
P
2
P
3
reduce
1
P
4
+
reduce
reduce reduce
1
2 3
36
MPI
Ventajas:
• El poder de computo escala automáticamente con la cantidad
de nodos.
• No se requiere coherencia para acceder a memoria.
• Es más rentable.
Docente: Ing. Roque F. Pizango Tapullima
MPI
Desventajas:
• El programador debe encargarse de comunicar los datos
compartidos.
• Puede ser complicado usar estructuras de datos basados en
memoria compartida.
• No se garantiza rendimiento uniforme entre nodos.Docente: Ing. Roque F. Pizango Tapullima
CONSULTAS:
roquer.pizango@unapiquitos.edu.pe
Docente: Ing. Roque F. Pizango Tapullima
Google DriveGmail Hangouts Google Meet

Continuar navegando

Materiales relacionados

62 pag.
37 pag.
39 pag.
tema 01

Cesar Vallejo

User badge image

Jhunior Obregon