ipythonを使用してmpiクラスター内の複数のノードにアクセスする

horcle_buzz

これは、スレッドipython-with-mpi-clustering-using-machinefileの続きです。問題が何であるかについて、もう少し焦点を絞って、うまくいけばより明確になります。

mpich / mpi4py、machinefile、virtualenv内のすべてのライブラリをすべてNFS共有で使用して、3ノードをクラスターとして実行しています。私の目標は、ipython / ipyparallelを使用して、それぞれが複数のipythonエンジンを実行している複数のノードにジョブを分散することです。

私は実行することができていますipcluster start --profile=mpi -n 4(この場合、1つのノード上worker2)と、別の(この場合はノードを経由してworker1)実行するipython --profile=mpiと、リストは、次のコマンドを使用して実行している上で実行されているエンジン:

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

予想どおり、エンジンを実行しているホストのホスト名の4つのインスタンスが出力されます。

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

ただし、別のノード(この場合head)でipclusterを起動すると、最初のエンジンセットが他のノードで実行されている場合でも、上記のようにクエリを実行すると、これらのエンジンが表示されます。

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

私の質問は、実行中のすべてのノードですべてのエンジンをipythonに表示させるにはどうすればよいですか。つまり、実際に負荷をさまざまなノードに分散します。

mpiを単独で実行すると、正常に機能します(head、worker1、worker2は、クラスター内のそれぞれのノードです)。

(venv)gms@head:~/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

だから、少なくとも私はこれが問題ではないことを知っています。

horcle_buzz

解決しました。ipcluster_config.pyファイルを再作成し、c.MPILauncher.mpi_args = ["-machinefile"、 "path_to_file / machinefile"]を追加しましたが、今回は奇妙な理由で機能しました。以前にこれを持っていたと誓うことができましたが、残念ながら...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

単一ノードの複数のコアをMPIクラスターの単一のジョブ/プロセスに割り当てる方法は?

分類Dev

networkx:ループを介して複数のノード属性を持つノードにアクセスする

分類Dev

kubectlを使用して複数のkubernetesクラスターに適切にアクセスする方法

分類Dev

1つのフィールドに複数のパラメータを使用してフォームでクエリにアクセスする

分類Dev

Windows10のDockerで複数のノードを使用してcouchbaseクラスターを実行する

分類Dev

xslt ノードを関数のパラメーターとして渡す (アクセスする)

分類Dev

Angular- $ stateを使用して複数のURLパラメーターにアクセスする方法

分類Dev

クエリを使用してノードの子にアクセスする

分類Dev

コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

分類Dev

.netcoreのfluentnhibernateを使用して複数のデータベースにアクセスする

分類Dev

複数のクラスを介してreactjsデータにアクセスする

分類Dev

refを使用して現在のノードにアクセスする方法

分類Dev

SimpleXMLを使用してPHPで特定のXMLノードにアクセスする

分類Dev

Webブラウザを使用してマイクロにアクセスする複数のユーザー

分類Dev

get関数を使用してノードに格納されているデータにアクセスする

分類Dev

変数の値をキーとして使用して、ノードjsのjsonにアクセスします

分類Dev

Tkのパス名を使用して関数内のグローバルラベルにアクセスする

分類Dev

複数のファイルをアップロードしてカメラにアクセスする

分類Dev

エラーを評価する PhantomJS を使用して複数の URL にアクセスする

分類Dev

forloop内に複数の属性を持つPowershellアクセスXMLノード

分類Dev

複数の配列オブジェクトを使用してJSONデータにアクセスする方法:android

分類Dev

graphvizのfdpレイアウトを使用して、同じクラスター内のノード間と異なるクラスター内のノード間で異なるエッジスプラインを使用する方法はありますか?

分類Dev

1つの識別子を使用して複数のクラスのフィールドにアクセスする方法

分類Dev

現在のクラスのセッターを使用して設定されている、インターフェイスのオーバーライドされたメソッドで現在のクラス変数にアクセスする方法

分類Dev

複数のフィールドのカウント機能を使用してSQLにアクセスする

分類Dev

typescriptを使用してコンストラクターの関数にアクセスする

分類Dev

Powershellを使用してCDATA内のXMLデータにアクセスする方法

分類Dev

複数のクラス名を選択し、PHPDOMXpathを使用してそのクラス内の子ノードを取得します

分類Dev

複数のノード属性を持つノードにアクセスするNetworkX

Related 関連記事

  1. 1

    単一ノードの複数のコアをMPIクラスターの単一のジョブ/プロセスに割り当てる方法は?

  2. 2

    networkx:ループを介して複数のノード属性を持つノードにアクセスする

  3. 3

    kubectlを使用して複数のkubernetesクラスターに適切にアクセスする方法

  4. 4

    1つのフィールドに複数のパラメータを使用してフォームでクエリにアクセスする

  5. 5

    Windows10のDockerで複数のノードを使用してcouchbaseクラスターを実行する

  6. 6

    xslt ノードを関数のパラメーターとして渡す (アクセスする)

  7. 7

    Angular- $ stateを使用して複数のURLパラメーターにアクセスする方法

  8. 8

    クエリを使用してノードの子にアクセスする

  9. 9

    コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

  10. 10

    .netcoreのfluentnhibernateを使用して複数のデータベースにアクセスする

  11. 11

    複数のクラスを介してreactjsデータにアクセスする

  12. 12

    refを使用して現在のノードにアクセスする方法

  13. 13

    SimpleXMLを使用してPHPで特定のXMLノードにアクセスする

  14. 14

    Webブラウザを使用してマイクロにアクセスする複数のユーザー

  15. 15

    get関数を使用してノードに格納されているデータにアクセスする

  16. 16

    変数の値をキーとして使用して、ノードjsのjsonにアクセスします

  17. 17

    Tkのパス名を使用して関数内のグローバルラベルにアクセスする

  18. 18

    複数のファイルをアップロードしてカメラにアクセスする

  19. 19

    エラーを評価する PhantomJS を使用して複数の URL にアクセスする

  20. 20

    forloop内に複数の属性を持つPowershellアクセスXMLノード

  21. 21

    複数の配列オブジェクトを使用してJSONデータにアクセスする方法:android

  22. 22

    graphvizのfdpレイアウトを使用して、同じクラスター内のノード間と異なるクラスター内のノード間で異なるエッジスプラインを使用する方法はありますか?

  23. 23

    1つの識別子を使用して複数のクラスのフィールドにアクセスする方法

  24. 24

    現在のクラスのセッターを使用して設定されている、インターフェイスのオーバーライドされたメソッドで現在のクラス変数にアクセスする方法

  25. 25

    複数のフィールドのカウント機能を使用してSQLにアクセスする

  26. 26

    typescriptを使用してコンストラクターの関数にアクセスする

  27. 27

    Powershellを使用してCDATA内のXMLデータにアクセスする方法

  28. 28

    複数のクラス名を選択し、PHPDOMXpathを使用してそのクラス内の子ノードを取得します

  29. 29

    複数のノード属性を持つノードにアクセスするNetworkX

ホットタグ

アーカイブ