jueves, 31 de octubre de 2013

Mi primer contacto con la programación paralela


Para programar en paralelo se requiere de algunos requisitos en el poder computacional, lo primero obviamente es un multinúcleos: dual core,quad core, etc; pero esas son las mas conocidas.
Para el curso de Algoritmos Paralelos en mi universidad nuestro profesor nos dijo que minimamente necesitábamos una quadcore y por la dificultad del curso era mejor usar una "Máquina Virtual" para evitar poner en riesgo nuestra herramienta de trabajo y aprendizaje NUESTRA COMPUTADORA.
Pues bien la máquina virtual que tengo es una con un sistema operativo Debian y simulando 4 núcleos.

Algo así:


Ahora, ya creada mi máquina virtual y todo instalado correctamente es hora de empezar a programar y como es usual compile mi primer "Hola mundo" en MPI.

El programa se llama hello.c



Mencione MPI, pues bien para esta primera parte del curso usaremos MPI.


¿Qué es MPI?

MPI hace referencia a "Message Passing Interface", algo así como interfaz de paso de mensajes. Este es una librería de funciones (en C) o subrutinas (en Fortran) que se inserta en el código de datos para llevar a cabo la comunicación entre procesos.

¿Cuando usar o no MPI?

MPI debe ser usado en casos como:

-Cuando necesite escribir código portátil
-La necesidad de lograr un alto rendimiento en programación en paralelo; por ejemplo al escribir librerías paralelas.
-Manejas problemas que involucren data irregular o dinámica que no encajen bien en el modelo "data-parallel".

No deberías usar MPI cuando:

-Si se puede usar HPF o un programa paralelo Fortran90.
-Si se pueden usar librerías de más alto nivel(que pueden haber sido escritas usando MPI).
-Si se usa 1 sola computadora con SMP(varios CPUs o cores) podrías usar OpenMP.



Centrándome en la experiencia al inmiscuirme en el mundo de la programación en paralelo encontraba al MPI algo de otro mundo luego ya con el tiempo te das cuenta que es algo así como un "C" un poco diferente, hago esta comparación porque las librerías y todo lo demás esta en C.

Mi primer programa en MPI(o bueno mi primer entendimiento de un programa en MPI no mio):





Estas capturas de pantalla muy bien comentadas explican lo que ocurren en cada linea y las 2 cosas más importantes cuando empieza la paralelización y que se paraleliza.

Gracias


P.D: No olviden visitar esta página para mayor información: http://cc301.domina.pe/


No hay comentarios:

Publicar un comentario