2011-09-15 20 views
6

Poniżej mój kod w MPI, który go uruchomić nad procesorem Core i7 (czterordzeniowy), ale problemem jest to, że pokazuje mi, że to działa na podstawie 1 procesora CPU, który musi być 4.MPI Liczba procesorów?

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

Zastanawiam się, czy problem dotyczy biblioteki MPI czy czegoś innego?

Oto wynik, że pokazuje mi:

Hello world! I am 0 of 1 

Dodatkowe informacje: Windows 7 - Professional x64

+0

Jak działa program? –

+1

Możesz chcieć dodać, w jaki sposób uruchamiasz kod - zazwyczaj pliki MPI muszą być uruchamiane za pomocą polecenia, takiego jak 'mpirun -np 4 mympiexecutable', aby uruchomić je na przykład na 4 procesorach, ale tak naprawdę nie znać wersje Windows MPI. – Aesin

Odpowiedz

9

Prima facie wygląda używasz program bezpośrednio. Czy próbowałeś użyć mpiexec -n 2 lub -n 4?

+0

tak, zrobiłem to i działa dobrze, ale skopiowałem ten przykład z książki, która mówi, że jeśli na przykład masz dwurdzeniowy procesor, otrzymasz 2 za wynik. Mam tutaj czterordzeniowy procesor, więc powinienem otrzymać 4. – Gabriel

+0

Jeśli uruchomisz go bez jawnego użycia opakowania mpi, uruchomi się przy założeniu jednego rdzenia. –

+0

możesz wyjaśnić to więcej? w jaki sposób? – Gabriel