2011-09-15 35 views
6

Tiếp theo là mã của tôi ở Bộ KH & ĐT, mà tôi chạy nó trên một CPU core i7 (quad core), nhưng vấn đề là nó chỉ cho tôi rằng nó đang chạy dưới 1 bộ xử lý CPU, trong đó có tới được 4.Số lượng bộ xử lý MPI?

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

Tôi đã tự hỏi nếu vấn đề là với thư viện MPI hoặc sth khác?

Dưới đây là kết quả mà nó cho thấy tôi:

Hello world! I am 0 of 1 

Thông tin thêm: Windows 7 - x64 Professional

+0

bạn đang chạy chương trình như thế nào? –

+1

Bạn có thể muốn thêm cách bạn đang chạy mã - thường thực thi MPI phải được chạy bằng lệnh như 'mpirun -np 4 mympiexecutable' để chạy chúng trên 4 bộ xử lý, nhưng tôi không thực sự biết các phiên bản Windows MPI. – Aesin

Trả lời

9

thoạt nhìn có vẻ như bạn đang chạy chương trình trực tiếp. Bạn đã thử sử dụng mpiexec -n 2 hoặc -n 4?

+0

có, tôi đã làm điều đó và nó hoạt động tốt, nhưng tôi đã sao chép ví dụ đó từ một cuốn sách cho biết nếu ví dụ bạn có một CPU lõi kép, bạn sẽ nhận được 2 cho kết quả. Vì vậy, ở đây tôi có một CPU lõi tứ vì vậy tôi sẽ nhận được 4 trong kết quả. – Gabriel

+0

Nếu bạn chạy nó mà không sử dụng một trình bao bọc mpi một cách rõ ràng, nó sẽ chạy giả sử một lõi đơn. –

+0

u có thể giải thích thêm không? làm sao? – Gabriel

Các vấn đề liên quan