問題タブ [ipython-parallel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
111 参照

ssh - Parallel IPython 2.3.0 で一部の SSH エンジンが起動しない

私は小さな IPython クラスターをセットアップしようとしています (これはすべて IPython 0.10.0 [sic!] で昔々うまくいきました) プライベート ネットワーク (セキュリティは必要ありません) で ssh を介して: 4 つのノード alice、bob、carol、dan 、それぞれ 4 つの CPU コアを備えています。コントローラーはキャロルで実行され、すべての PC には IPython 2.3.0 がインストールされた Ubuntu 14.10 が搭載されています。~/.ipython/profile_default は、すべての PC 間で NFS 経由で共有されます。内部的な理由により、MPI を使用できません。

ここで、クラスターが起動すると、4 つのエンジンしか表示されません。すでに SSHEngineSetLauncher.delay を増やしましたが、これは役に立ちませんでした

私はこれを追い詰めようとし、carol (ホスト) だけを使用して、SSH 経由でローカルで 4 つのエンジンを起動しようとしましたが、実際に実行されているのは 1 つだけです。

私の ipclusterconfig.py は次のようになります

エンジン.json:

参考までに、ログファイルを追加します: => ipcontroller.log

=> ipengine.log (すべて同じように見えますが、"Completed registration with id x" のみです。ここで、x はエンジンに対して 0 から 3 に増加します):

0 投票する
0 に答える
80 参照

python - IPython Parallelはnumpy行をインプレースで変更します

IPython Parallel のドキュメントを読むと、バッファがコア間でコピーされることがわかります。ただし、使用するtrack = Trueことで、バッファーをその場で編集できると書かれています。

次の例は、次の場合でも機能しませんtrack = True

a書き込み可能ではないというエラーが表示され続けます(割り当て先は読み取り専用です)。

私が直面している問題は、非常に大きな 3D マトリックスがあり、その場で変更したいということです。私のアイデアは、 のmapようなアプローチを使用して、個々の 2D スライスをクラスターに送信し、その場で変更することでした。

IPython Parallel でこれを達成する方法はありますか? それとも、書き込み可能なバッファを送信することは事実上不可能で、唯一の方法はコピーされたバッファから結果を収集することですか?

これが不可能な場合、IPython Notebook で非同期にコアから結果を取得し、コールバック関数で更新する方法はありますか? これは、問題ないものの疑似コードです。IPython Parallel で利用できるこのようなものはありますか?:

上記のコードのアイデアは、(現在のマシンの) 出力バッファーのrowsを非同期に更新するコールバックと並行して、マトリックスから変更された値を返す関数を用意することです。rows

つまり、マルチプロセッシングの代わりに IPython Parallel を使用すると、このようなものが機能します。

0 投票する
1 に答える
140 参照

python - IPython エンジンは独立したプロセスですか?

IPython アーキテクチャの概要ドキュメントから、次のことがわかります...

IPython エンジンは、ネットワーク接続を介して Python コマンドを受け取る Python インスタンスです。

Python インスタンスであるということは、これらのエンジンがスタンドアロン プロセスであることを意味しますか? のようなコマンドを使用して、一連のエンジンを手動でロードできますipcluster start -n 4。このようにエンジンを作成することは、何らかの親プロセスの子プロセスを作成することと見なされますか?それとも、IPC 通信に依存して作業を完了する一連の独立したプロセスを開始するための単なる手段と見なされますか? コマンドを介してエンジンを呼び出すこともできますipengine。これは、実際には何の関係もなく、OS コマンド ラインに直接入力されるため、確実にスタンドアロンです。

背景として、Pythonスクリプトからクライアントを介して操作された多くのIPythonエンジンが、そのスクリプトで開始された別のプロセスとどのように相互作用するかを掘り下げようとしています。