問題タブ [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.
python - 選択できないオブジェクトに応じて、IPython Parallel (または他のパッケージ) を使用した恥ずかしい並列タスク
多くの非常に多くのオブジェクトのセットに対して簡単なことをすばやく実行したいという問題に遭遇することがよくあります。私の自然な選択は、単純化のために IPython Parallel を使用することですが、多くの場合、選択できないオブジェクトを処理する必要があります。数時間試した後、私は通常、1 台のコンピューターで一晩タスクを実行するか、複数の Python スクリプトで実行するために半手動で分割するなどの愚かなことを行います。
具体的な例を挙げると、特定の S3 バケット内のすべてのキーを削除したいとします。
私が通常考えずに行うことは次のとおりです。
問題は、 のKey
オブジェクトboto
が選択できない (*) ことです。これは、私にとってさまざまな状況で非常に頻繁に発生します。これは、マルチプロセッシング、execnet、および私が試した他のすべてのフレームワークとライブラリにも問題があります (明らかな理由で、それらはすべて同じ pickler を使用してオブジェクトをシリアル化します)。
皆さんもそんなお悩みありませんか?これらのより複雑なオブジェクトをシリアル化する方法はありますか? この特定のオブジェクトに対して独自の pickler を作成する必要がありますか? その場合、IPython Parallel にそれを使用するように指示するにはどうすればよいですか? ピッカーはどのように書くのですか?
ありがとう!
(*) キー名のリストを簡単に作成して、次のようにできることは承知しています。
getKey
IPython クラスターの各エンジンで関数を定義します。これは、私がよく目にする、より一般的な問題の特定の例にすぎません。別の方法で簡単に解決できるので、悪い例かもしれません。
python - IPython 並列プロセスでの stdout への出力
IPython は初めてで、IPython 並列クラスター関数の実行中に中間結果を stdout に出力したいと考えています。(複数のプロセスでは、これにより出力が台無しになる可能性があることは承知していますが、それは問題ありません-テスト/デバッグのためだけであり、実行するプロセスは十分に長いため、そのような衝突はほとんどありません。) IPython のドキュメントを参照してください。ただし、並列化された関数が出力される例が見つかりません。基本的に、サブプロセスの印刷出力をメインの stdout にリダイレクトする方法を探しています。
プロセス内での印刷が機能しません:
戻り値
したがって、計算は正しく実行されますが、すべてのプロセスが戻った場合でも、関数 ff の print ステートメントは出力されません。私は何を間違っていますか?「印刷」を機能させるにはどうすればよいですか?
ipython - ipython 0.13 zmq エラー
ipython クラスターの奇妙な動作に遭遇しました。計算は終了しますが、多くの結果はクライアントに到達しません (また、エンジンは最初の計算が終了した後、アイドル状態になります)。
1)時々次のエラーが表示されるため、zmqに何か問題があると思われます。
私はpyzmq 13.0.0(pipによってインストールされたもの)と、pyzmqのセットアップによってコンパイルされたzeromq 3.2.2を使用しています。私は ipython 13.1 と python 2.7.3 を使用しています。
これが何であるかについての提案はありますか?そうでない場合は、これらのエラーが発生する理由をさらに詳しく知る方法はありますか?
更新: スローダウンは ipcontroller の長いタスク キューが原因であることが判明しました。これは 100% の CPU を使用し、ひどく遅れていました。それは別の問題ですが、上記に関するフィードバックをいただければ幸いです。
ipython - 次の ipython 並列マップの結果を待っている間に例外を処理する
ipython 並列マップからの非同期結果が到着したときに、その結果を繰り返し処理したいと考えています。これを行う唯一の方法は、結果オブジェクトを反復処理することです。ただし、タスクの 1 つが例外を発生させると、反復は終了します。これを行う方法はありますか?以下のコードを参照してください。2 番目のジョブが例外を発生させると、反復は終了します。
ジョブ 3 と 4 が報告される前に停止する次の出力が得られます
これを行う方法はありますか?
python - マルチコアを使用していないIPython.parallel?
私は実験していてIPython.parallel
、さまざまなエンジンでいくつかのシェルコマンドを起動したいだけです。
次のノートブックがあります。
セル 0:
コマンドを起動します。
セル 1:
セル 2:
セル 3:
それが行うことは、mincemeat
MapReduce の実装を使用することです。最初の!python mincemeat.py 127.0.0.1
ものを起動すると、1 つのコアの約 100% を使用しますが、2 つ目を起動すると、それぞれ 50% に低下します。マシンには 4 つのコア (+ 仮想コア) があり、ノートブックではなくターミナルから直接起動するときにそれらを使用できます。
足りないものはありますか?コマンドごとに 1 つのコアを使用したいと考えています!python mincemeat.py 127.0.0.1
。
編集:
わかりやすくするために、複数のコアを使用していない別のものを次に示します。
セル 1:
セル 2:
私は何かが欠けていると思います。可能であれば、これらの 2 つのセルは 1 つの異なるコアを実行する必要があると思います。しかし、そうではないようです。ここでも、CPU 使用率は、同じコアを共有し、その 50% を使用していることを示しています。私は何を間違えましたか?
python - リモート IPython クラスターでジョブを実行すると「execution_count」エラーが発生する
リモート Linux マシンで IPython クラスター (SSH) を実行しており、Mac OS X と IPython を使用してそのクラスターを使用しています。Mac 上の IPython では、次のように記述します。
'~/ipcontroller-client.json'
からコピーされたファイルはどこにありますかremote_linux_machine
。すべてがこの時点まで機能します。
並列マジックを使用しようとすると%px
、エラーが発生します。
同じ考えですが、ローカルホストでクラスターを実行すると、完全に機能します。
リモート SSH クラスターの場合、並列魔法はまったく機能するはずですか?
celery - セロリとIpythonの並列
両方のドキュメントを確認しましたが、特定のアプリケーションに最適な選択が何であるかはわかりません。私はセロリを詳しく見てきたので、例はそれらの用語で与えられます.
私の使用例はこの質問に似ていますが、各ワーカーが大きなファイルをリモートでロードします (マシンごとに 1 つのファイル) が、ワーカーに永続オブジェクトを含める必要もあります。そのため、ワーカーがタスクを完了して結果を返し、その後再び呼び出された場合、以前に作成した変数を新しいタスクに使用する必要があります。
タスクの呼び出しごとにオブジェクトの作成を繰り返すのは、無駄が多すぎます。これが可能であると信じるように導くセロリの例を見たことがありません。これを達成するためにworker_init シグナルを使用したいと考えていました。
最後に、すべてのワーカーが何をしているかを追跡するための中央ハブが必要です。これは、Celery が提供するものではなく、クライアント/サーバー アーキテクチャを暗示しているようですが、これは正しいですか? もしそうなら、IPython Parallel は要件を考えると良い選択でしょうか?