Escucha dinámica de mensajes con MPI_Iprobe

A continuación veremos un ejemplo en el que el proceso maestro no sabe cuantos mensajes recibirá de los procesos hijos. Para ello hace uso de la función MPI_Iprobe que permite detectar si hay un mensaje en el buffer de recepción pero es no bloqueante, por lo que es muy util para este tipo de cometidos

Sigue leyendo

Implementación de la función MPI_Alltoall con MPI

A continuación vemos como implementar la función MPI_Alltoall usando funciones de comunicación punto a punto con mpi_send y mpi_recv.

Nótese que necesitamos usar MPI_Scatter o bien la función mi_scatter que hemos implementado en una entrada anterior

Si te ha servido el ejemplo y lo deseas no olvides dejar un donativo. Gracias Sigue leyendo

Implementar semáforos binarios con MPI

A continuación vemos como implementar la funcionalidad de wait y signal utilizando operaciones de comunicación mediante paso de mensajes, es decir como usar semáforos con mpi. Para ello, la gestión del recurso compartido y el semáforo la realizará el proceso de rango cero. Los procesos esclavos, es decir aquellos con rango mayor que cero deberán realizar la captura (llamando a la función wait) y liberación (llamando a la función signal) del recurso, y después finalizar su ejecución. Cada vez que un proceso capture el recurso compartido se deberá imprimir por pantalla la frase “Proceso N: recurso capturado” (siendo N el identificador de rango del proceso).

Si te ha servido el ejemplo y lo desas no olvides dejar un donativo. Gracias
Sigue leyendo