2011-09-15 13 views
6

bir çekirdek i7 (dört çekirdek) üzerinde çalıştırmak MPI, benim kodu, ama sorun, sahip olduğu 1 işlemci CPU altında çalışıyor olduğu için Beni gösterir 4.MPI İşlemci sayısı? Ardından

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

Problemin MPI kütüphanesi mi yoksa başka bir şey mi olduğunu merak ediyordum? İşte

beni gösteriyor ki sonucudur:

Hello world! I am 0 of 1 

Ek bilgi: Windows 7 - Professional x 64

+0

Programı nasıl çalıştırıyorsunuz? –

+1

Kodu nasıl çalıştırdığınızı eklemek isteyebilirsiniz - örneğin, MPI yürütücülerinin örneğin 4 işlemciyi çalıştırması için mpirun -np 4 mympiexecutable gibi bir komut kullanılarak çalıştırılması gerekir. Windows MPI sürümlerini bilir. – Aesin

cevap

9

Prima doğrudan programını çalıştıran gibi görünüyor facie. mpiexec -n 2 veya -n 4 kullanmayı denediniz mi?

+0

evet, bunu yaptım ve iyi çalışıyor, ancak örneğin bir çift çekirdekli CPU'nuz varsa, sonuç için 2 alacağınızı söyleyen bir kitaptan kopyaladım. Yani burada bir dört çekirdekli işlemci var, bu yüzden sonuçta 4 elde etmeliyim. – Gabriel

+0

Açıkça bir mpi sarmalayıcı kullanmadan çalıştırırsanız, tek bir çekirdek varsayar. –

+0

daha fazlasını açıklayabilir misiniz? Nasıl? – Gabriel