2008-12-07 22 views
7

Tengo un programa C++ que está utilizando la biblioteca openMPI para pasar mensajes entre diferentes procesadores. Es un programa paralelo que utiliza un algoritmo genético para obtener una buena solución para el problema del vendedor ambulante. Estoy tratando de configurar el entorno MPI en mis dos computadoras de doble procesador en mi casa para que pueda ejecutarlo. Cuando creé por primera vez este programa hace un año, pude ejecutarlo bien en un clúster que no había creado yo. El problema que estoy teniendo ahora es que cada vez que lo ejecuto, todos los procesos dicen que son de rango 0. Si tengo 3 nodos, en lugar de que sean nodos 1, 2 y 3, todos son del nodo 0. Si alguien sabe lo que está pasando, seguramente agradecería algo de ayuda. Gracias.OpenMPI: Todos los nodos se ejecutan como nodo 0

+0

¿Quizás podría mostrar qué comandos/scripts usa para configurar los procesos? – Svante

Respuesta

1

Tal vez su inicialización es incorrecta o tiene algún error para verificar el rango. Esta debe ser la forma correcta de hacer esto:

MPI_Init(&argc, &argv); 
MPI_Comm_size(MPI_COMM_WORLD, &size); 
MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
printf("I am process %d of %d.\n", rank, size); 

Pero supongo que lo hiciste bien, así que de acuerdo a Harleqin, mostrando los comandos/scripts que utiliza sería de gran ayuda.

3

Descubrí cuál era el problema. Tenía dos paquetes instalados que usaban el comando mpirun. Creo que fueron paquetes openmpi y mpich. Eliminé openmpi y funcionó.

Cuestiones relacionadas