2008-12-07 14 views
7

Farklı işlemciler arasındaki iletileri iletmek için openMPI kitaplığını kullanan bir C++ programım var. Seyahat eden satış elemanı problemi için iyi bir çözüm bulmak için bir genetik algoritma kullanan paralel bir programdır. İki çift işlemcili bilgisayarımda MPI ortamını evimde kurmaya çalışıyorum, böylece onu çalıştırabilirim. Bir yıl önce bu programı ilk oluşturduğumda, benim tarafımdan kurulmayan bir küme üzerinde çalıştım. Şu anda sahip olduğum sorun şu ki, çalıştırdığım her zaman, tüm işlemler sıralama 0 olduğunu söylüyorlar. 3 düğümüm varsa, bunlar 1, 2 ve 3 düğümleri değil, hepsi de 0'dır. Neler olup bittiğini bilen varsa, biraz yardım edersiniz. Teşekkürler.OpenMPI: Tüm düğümler düğüm olarak çalışır 0

+0

Belki de işlemleri ayarlamak için kullandığınız komutların/komutların neler olduğunu gösterebilirdiniz? – Svante

cevap

1

Belki de başlatmanız yanlıştır veya sıralamayı kontrol etmekte bazı hatalarınız vardır. Bu bunu yapmanın doğru yolu olmalıdır:

MPI_Init(&argc, &argv); 
MPI_Comm_size(MPI_COMM_WORLD, &size); 
MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
printf("I am process %d of %d.\n", rank, size); 

Ama bu doğru yaptığını varsayalım, bu yüzden yararlı olacağını kullanmak komutları/komut dosyalarını gösteren Harleqin kabul ediyorum.

3

Sorunun ne olduğunu buldum. Her ikisi de mpirun komutunu kullanan iki paketim vardı. Hem açık hem de mpich paketleri olduğuna inanıyorum. Openmpi'yi çıkardım ve işe yaradı.

İlgili konular