Cómo utilizar MPI_Spawn y acerca de OpenMPI

OpenMPI me ha decepcionado. He descubierto un bug en MPI_Spawn: Cuando utilizas MPI_Spawn para crear nuevas instancias del mismo programa que esta ejecutando MPI_Spawn, estas nuevas instancias se bloquean y abortan la ejecución en la llamada MPI_Init, y sin embargo… ¡los valores de retorno son 0! Es decir, el proceso que ejecutó MPI_Spawn recibe un falso positivo: piensa que los procesos se crearon correctamente.

Contaré como lo descubrí­: Después de una tarde de frustración, decido instalar LAM/MPI (una implementación de MPI mucho más madura, aunque ahora en mantenimiento debido a que sus miembros estan trabajando en OpenMPI). Después de configurarla (dirí­a que es un poco más complicado que OpenMPI) compilo el mismo código fuente que utilizaba para las pruebas de MPI_Spawn cuando utilizaba OpenMPI. Grande es mi sorpresa cuando funciona sin problemas.

El código fuente del programa de prueba se puede descargar aquí­: Spawntest

Además de MPI_Spawn, también muestra el uso de MPI_Bcast para enviar el mismo mensaje a los procesos creados con el MPI_Spawn. Próximamente, uso de MPI_Scatter para distribuir un conjunto de datos entre los procesos.

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

Leave a Reply