2011-09-15 11 views
6

seguito è il mio codice in MPI, che corro sopra una CPU Core i7 (quad core), ma il problema è che mi dimostra che è in esecuzione in 1 CPU processore, che deve essere 4.MPI Numero di processori?

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; 
} 

Mi chiedevo se il problema è con la libreria MPI o sth else?

Ecco il risultato che mi mostra:

Hello world! I am 0 of 1 

Ulteriori informazioni: Windows 7 - Professional x64

+0

come stai eseguendo il programma? –

+1

Si potrebbe voler aggiungere come si sta eseguendo il codice - in genere gli eseguibili MPI devono essere eseguiti utilizzando un comando come 'mpirun -np 4 mympiexecutable' per farli eseguire su 4 processori, ad esempio, ma io in realtà non lo faccio conosci le versioni di Windows MPI. – Aesin

risposta

9

Prima facie sembra che si esegue direttamente il programma. Hai provato a utilizzare mpiexec -n 2 o -n 4?

+0

sì, l'ho fatto e funziona bene, ma ho copiato quell'esempio da un libro che diceva che se per esempio hai una CPU dual core, otterrai 2 per il risultato. Quindi qui ho una CPU quad core quindi dovrei ottenere 4 di risultato. – Gabriel

+0

Se lo si esegue senza utilizzare esplicitamente un wrapper mpi, verrà eseguito assumendo un singolo core. –

+0

puoi spiegarlo di più? Come? – Gabriel

Problemi correlati