Descarga la aplicación para disfrutar aún más
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
Compartir