Programación paralela en C con MPI – Multiplicación de un vector por una matriz

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:

matrizVector.c

matrizVector.pdf

9 respuestas so far »

  1. 1

    Esteban said,

    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????

  2. 2

    Angel said,

    se lo trabaja en Linux y puedes ejecutar los .c con la ayuda de la libreria MPICH, saludos

  3. 3

    ariadna said,

    mpicc -o nom_ejecutable nom_prog.c para compilar

    mpirun -np 4 ./nom_ejecutable donde np 4 es el número de procesos

  4. 4

    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.

  5. 5

    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.

  6. 6

    Francine said,

    It’s amazing for me to have a site, which is useful in favor of my know-how. thanks admin

  7. 7

    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!

  8. 8

    dom said,

    Very nice post. I definitely love this site. Stick with it!

  9. 9

    Very shortly this web page will be famous among all blogging
    people, due to it’s pleasant articles


Comment RSS · TrackBack URI

Deja un comentario