2011-09-15 27 views
6

que sigue es mi código en MPI, que lo funciono durante un CPU Core i7 (quad core), pero el problema es que me muestra que se está ejecutando bajo 1 procesador CPU, que tiene que ser 4.MPI ¿Número de procesadores?

int main(int argc, char *argv[]) 
{ 
    int rank, size; 

    MPI_Init(&argc, &argv); 

    MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    MPI_Comm_size(MPI_COMM_WORLD, &size); 

    printf("Hello world! I am %d of %d\n", rank, size); 

    MPI_Finalize(); 

    return 0; 
} 

Me preguntaba si el problema es con la biblioteca MPI o algo más?

Este es el resultado que me muestra:

Hello world! I am 0 of 1 

Otros detalles: Windows 7 - Professional x64

+0

¿cómo está ejecutando el programa? –

+1

Es posible que desee agregar cómo está ejecutando el código; por lo general, los ejecutables MPI deben ejecutarse utilizando un comando como 'mpirun -np 4 mympiexecutable' para que se ejecuten en 4 procesadores, por ejemplo, pero realmente no lo hago conocer las versiones de Windows MPI. – Aesin

Respuesta

9

A primera vista parece que se está ejecutando el programa directamente. ¿Intentó usar mpiexec -n 2 o -n 4?

+0

sí, lo hice y funciona bien, pero copié ese ejemplo de un libro que decía que si, por ejemplo, tienes una CPU de doble núcleo, obtendrías 2 para el resultado. Así que aquí tengo una CPU de cuatro núcleos, así que debería obtener 4 en el resultado. – Gabriel

+0

Si lo ejecuta sin usar explícitamente un contenedor mpi, se ejecutará asumiendo un único núcleo. –

+0

¿Puedes explicarlo más? ¿cómo? – Gabriel