Cómo utilizar MPI_Spawn y acerca de OpenMPI
- 24 June, 2006 //
- google SoC, informática //
- Tags :
- 0 Comments
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.