Muchas veces resulta confuso el trabajar con MPI al momento de programar instrucciones en forma paralela, es un reto el tratar de entender el funcionamiento exacto de las funciones de MPI tales como «MPI_Send» y «MPI_Recv» entre otras.
Comparto un ejemplo sencillo sobre la programación en paralelo de la multiplicación de un vector de tamaño N por una matriz de tamaño NxN..
El problema consiste en distribuir el trabajo de la multiplicación en 8 procesos diferentes, segun un diagrama de cubo de 8 nodos (los nodos son los procesos). Segun el proceso de multiplicar un vector por una matriz se debe ir multiplicando cada fila de la matriz por el vector, acumulando la suma del producto posición por posición, al final se suma el resultado de cada fila y dicha suma es el resultado final (se puede encontrar información sobre esto en: http://pcmap.unizar.es/~jsayas/matrices.pdf).
Para resolver dicho problema se hace una divisón del numero de filas para el numero de procesos (en este caso 8), de forma que se reparta el trabajo de una forma mas o menos equitativa para todos los procesos, en este caso el proceso maestro trabajara la primera fila realizando la divisón del trabajo del resto de filas para los procesos esclavos.
El archivo con el codigo fuente completo se adjunta a continuación:
Esteban said,
May 11, 2012 @ 1:11 am
hola, me gustaria compilar tu codigo fuente.
pero tengo problemas en configurar la depuracion con la libreria MPI,
en que entorno/plataforma ejecutas tus codigos .c????
Angel said,
May 11, 2012 @ 3:21 pm
se lo trabaja en Linux y puedes ejecutar los .c con la ayuda de la libreria MPICH, saludos
ariadna said,
junio 8, 2012 @ 2:38 am
mpicc -o nom_ejecutable nom_prog.c para compilar
mpirun -np 4 ./nom_ejecutable donde np 4 es el número de procesos
seo search engine tools said,
enero 20, 2013 @ 11:02 am
Thanks for some other great article. The place else may just anyone get that type of info
in such a perfect means of writing? I’ve a presentation next week, and I’m
on the search for such info.
toniesamowite.pl said,
marzo 7, 2013 @ 1:53 am
For hottest news you have to pay a visit the web and on world-wide-web I found this web page as a
most excellent web site for newest updates.
Francine said,
abril 6, 2013 @ 5:13 am
It’s amazing for me to have a site, which is useful in favor of my know-how. thanks admin
financial information said,
May 14, 2013 @ 4:48 pm
Having read this I thought it was very enlightening.
I appreciate you taking the time and energy to put this
short article together. I once again find myself spending way
too much time both reading and commenting. But so what, it was still worth it!
dom said,
junio 5, 2013 @ 7:41 am
Very nice post. I definitely love this site. Stick with it!
kancelaria prawna wroclaw said,
junio 11, 2013 @ 5:44 pm
Very shortly this web page will be famous among all blogging
people, due to it’s pleasant articles