2016-03-20 37 views
0

'u kullanarak bir mpi kümesinde birden çok düğüme erişme Bu, ipython-with-mpi-clustering-using-machinefile iş parçacığının devamıdır. Biraz daha odaklı ve umarım sorun ne olabilir diye açık.ipython

Tümü bir NFS paylaşımında mpich/mpi4py, bir makine dosyası ve bir sanal diskteki tüm kitaplıkları kullanarak bir küme olarak çalışan 3 düğümler var. Amacım, ipython/ipyparallel öğelerini, her biri birden çok ipython motoru çalıştıran birden çok düğüm arasında dağıtmaktır.

import ipyparallel as ipp 

client = ipp.Client() 
dview = client[:] 

with dview.sync_imports(): 
    import socket 

@dview.remote(block=True) 
def engine_hostname(): 
    return socket.gethostname() 

results = engine_hostname() 
for r in results: 
    print r 
: Ben ipython --profile=mpi çalıştırın ve aşağıdaki komutları kullanarak çalışan çalışan motorlar listelemek (bu durumda worker1 olarak) (bu durumda worker2) bir düğümde ipcluster start --profile=mpi -n 4 çalıştırabiliyor ve başka düğüm boyunca duyuyorum

Bu durumdaiçinde (başka düğümde ipcluster başlarsanız, Ancak

In [7]: for r in results: 
     print r 
    ...: 
worker2 
worker2 
worker2 
worker2 

: beklendiği gibi

, ben baskılı motorları çalıştıran konağın hostname 4 örneklerini almak

In [7]: for r in results: 
      print r 
     ...: 
    head 
    head 
    head 
    head 

Benim sorum nasıl olabilir,:), daha sonra bu yukarıda belirtildiği gibi ben motorların ilk seti yine de diğer düğümde çalışır durumda olmasına karşın, bunları sorgulamak onlara görünmek için sadece motor/nodlardır Ipython'u, çalışan tüm düğümlerdeki tüm motorları görmeye alıyorum; iow, yükü aslında farklı düğümlere dağıtmak.

(venv)[email protected]:~/development/mpi$ mpiexec -f machinefile -n 10 ipython test.py 
head[21506]: 0/10 
worker1[7809]: 1/10 
head[21507]: 3/10 
worker2[8683]: 2/10 
head[21509]: 9/10 
worker2[8685]: 8/10 
head[21508]: 6/10 
worker1[7811]: 7/10 
worker2[8684]: 5/10 
worker1[7810]: 4/10 

Yani, en azından ben bu sorun değildir biliyorum: ince kendi çalışmalarına MPI Running

(baş, worker1 ve worker2 ilgili düğüm sin küme vardır).

cevap

0

Çözüldü. Ipcluster_config.py dosyasımı yeniden oluşturdum ve c.MPILauncher.mpi_args = ["-machinefile", "path_to_file/machinefile"] öğelerini ekledim ve bu sefer çalıştı - bazı garip nedenlerden dolayı. Yemin ederim ki daha önce buna sahiptim ama ...