You are on page 1of 7

INSTITUTO POLITECNICO NACIONAL

CENTRO DE INOVACIN Y DESARROLLO


TECNOLGICO EN CMPUTO

Materia:
Arquitecturas Avanzadas y Paralelas

Trabajo:
Segundo examen parcial: Programacin paralela a travs de openOMP
y MPI

Titular de la materia:
M. en C. Adauto Israel Ortiz Romero

Alumnos:
Alba Jurez Jos Norberto
Macias Igari Rubn
Rodrguez Meza Juan Antonio

Enero 2016
Segundo examen parcial

-1-
Segundo examen parcial

Introduccin.
Debido a la necesidad de resolver problemas de mayor grado de complejidad
como lo son: problemas relativos a ingeniera, investigacin, modelos
econmicos, simulaciones de procesos etc., por medio de computadoras, es que
surge lo que hoy en da se conoce como cmputo paralelo. La idea principal
radica en el uso concurrente de procesadores, es decir, en lugar de utilizar un
procesador para resolver una tarea, siempre y cuando esta tarea pueda dividirse
en tareas ms pequeas, se utilizan varios procesadores que trabajan de
manera paralela para resolver ms rpido mencionadas tareas.
El contorno de este trabajo se muestra como sigue. Primero, se da el concepto
de programacin paralela mediante openOMP y MPI, as como alguna de sus
caractersticas. Despus, se presentan dos programas uno mediante openOMP,
para resolver la tarea del clculo de PI. De igual forma, se presenta un programa
por MPI para la multiplicacin de matrices. Seguido a esto, se muestran los
tiempos de ejecucin para diferentes nmeros hilos para openOMP y procesos
para MPI. Finalmente, se presentan las conclusiones.

openOMP (Open Multi-Processing)


Es una coleccin de directivas, libreras y variables de entorno. OpenOMP es un
modelo portable de programacin paralela, es decir, los programas estn
compuestos de threads (hilos), los cuales comparten datos. Las caractersticas
principales de openOMP son:

La creacin sencilla de hilos.


Soporta el modelo paralelismo de datos.
Paralelismo incremental.
Combina cdigo secuencial y paralelo en un mismo cdigo fuente.
Escalable.
La mayora de las construcciones en openOMP son directivas de compilacin o
programas. Debido a que las construcciones son directivas, un programa en
openOMP puede ser compilado por compiladores que no soporten open OMP.

MPI (Message Passing Interface)


MPI es una especificacin para programacin de paso por mensajes, que
proporciona una librera de funciones para fortran, c y c++. Mencionadas
funciones se utilizan para la comunicacin de datos entre procesos. Las
caractersticas ms importantes de MPI son:

Es un lenguaje estandarizado.
Es portable.
Coordinar la ejecucin de un programa en mltiples procesadores con
memoria distribuida.
Amplia funcionalidad.
Existencia de implementaciones libres.
Los procesos invocan diferentes funciones MPI que permiten:
Iniciar, gestionar y finalizar procesos MPI.
Comunicar datos entre dos procesos.

-2-
Segundo examen parcial

Realizar operaciones de comunicacin entre grupos de procesos.


Crear tipos arbitrarios de datos.

Calculo de PI
El clculo del nmero de PI puede ser resuelto usando diferentes metodologas.
Para este ejemplo en particular se utiliz la siguiente integral definida: =
1 1
0 1+2 . Para resolver dicha integral se utiliz el mtodo de la suma de Riemman.
Gracias a que la solucin de la integral antes mencionada puede ser aproximada
utilizando sumatorias, entonces la solucin de la integral puede ser una tarea
paralelizable, y por tanto programable utilizando open OMP. A continuacin se
presenta el programa realizado en openOMP.

Programa 1. Calculo de PI aproximando una integral en openOMP.

Multiplicacin de Matrices
El programa de multiplicacin de matrices, realiza los siguientes pasos en
general. a) Se inicializa el tamao de las matrices, b) se rellenan las matrices
matrix1 y matrix2 con valores de 1 y 2, respectivamente, c) se divide la tarea en
varios procesos, d) se reparte el clculo de las operaciones y d) finalmente, se
renen los resultados obtenidos para mostrar el resultado final. El programa de
multiplicacin de matrices se muestra a continuacin:

-3-
Segundo examen parcial

Programa 2. Multiplicacin de matrices mediante programacin en MPI.

-4-
Segundo examen parcial

Tiempo de ejecucin.
La Figura 1 muestra los tiempos obtenidos para el clculo de PI usando
openOMP. Por otro lado, la Figura 2 presenta los tiempos de ejecucin para la
multiplicacin de matrices utilizando programacin MPI.

Figura 1. Tiempos de ejecucin con openOMP.

Figura 2. Tiempos de ejecucin con MPI.

Conclusiones
Como puede apreciarse en las Figuras 1 y 2, los tiempos de ejecucin de los
programas (compilados en una mquina virtual), varan. Por ejemplo para el
caso de openOMP se hicieron pruebas para 2, 6, 10 y 14, aqu se puede apreciar
una gran reduccin del tiempo de ejecucin usando 2 hilos, en comparacin con
14 hilos. Para este caso en particular la reduccin del tiempo fue de 10 segundos
aproximadamente. Por otro lado, para para el segundo caso usando MPI,
tambin existe un reduccin en los tiempo de ejecucin.

Es importante destacar que la mejora de una tarea compleja dividida en sub-


tareas ms pequeas, se ve reflejada en la gran cantidad de datos a manejar, es
decir, supongamos que se requiere realizar la suma de dos operandos A y B en
este caso, y se desea guardar el resultado en C, es evidente que un programa
secuencial ser mucho ms rpido si nicamente se tratasen de estos datos en
comparacin con un programa que haga lo mismo en forma paralela, esto se
debe en mayor medida a los componentes que requieren ser cargados tanto en
openOMP como MPI, para su funcionamiento, mientras que en un programa

-5-
Segundo examen parcial

secuencial slo se requiere utilizar las bibliotecas y componentes que se


necesiten.

Referencias
[1]http://ocw.uc3m.es/ingenieria-informatica/arquitectura-de-computadores-
ii/otros-recursos-1/or-f-008.-curso-de-openmp. Recuperado: 8 de enero de
2016.
[2]http://www.sc-camp.org/2011/_pdf/OpenMP%20
%20sccamp%202011.pdf. Recuperado: 8 de enero de 2016.
[3] http://atc2.aut.uah.es/~rduran/Areinco/pdf/n_tema7.pdf. Recuperado: 10
de enero 2016.
[4]http://mmc.geofisica.unam.mx/acl/femp/HPC/MPI/MPIBasico2.pdf.
Recuperado: 10 de enero 2016.

-6-

You might also like