[解決済み] マルチプロセシングの使用法.最大同時処理数を持つプロセス
質問
私は
Python
というコードがあります。
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
for i in range(0, MAX_PROCESSES):
p = Process(target=f, args=(i,))
p.start()
で、うまく動きます。しかし
MAX_PROCESSES
の間の任意の値を取ることができます。
1
. このコードを実行するマシンは
512
コアしかないマシン上でこのコードを実行しているので、同時に実行できるプロセスの数を制限することが可能かどうかを調べる必要があります。私が調べたのは
8
を調べましたが、私が必要とするもののようには見えません。あるいは、私がドキュメントを間違って解釈しているのかもしれません。
の同時使用数を制限する方法はありますか?
multiprocessing.Queue
の同時実行数を制限する方法はありますか?
どのように解決するのですか?
最も賢明な方法は
multiprocessing.Process
これは、システムで利用可能な最大コア数に基づいてワーカープロセスのプールを生成し、基本的にコアが利用可能になるとタスクを送り込みます。
標準的なドキュメントにある例 ( http://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers ) にある例では、手動でコア数を設定することもできることを示しています。
multiprocessing.Pool
というのがあるのも便利ですね。
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
result = pool.apply_async(f, [10]) # evaluate "f(10)" asynchronously
print result.get(timeout=1) # prints "100" unless your computer is *very* slow
print pool.map(f, range(10)) # prints "[0, 1, 4,..., 81]"
メソッドがあることも知っておくと、コード上で必要であれば、与えられたシステム上のコアの数を数えることができます。
編集: あなたの特定のケースで動作すると思われるコードの草案です。
multiprocessing.cpu_count()
関連
-
[解決済み] pythonを使ったCPUの数の調べ方
-
[解決済み] 先頭のゼロを含む表示番号
-
[解決済み] ディクショナリーで最大値を持つキーを取得する?
-
[解決済み] コンマを桁区切りとして数字を印刷するには?
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Python Logging でログメッセージが2回表示される件
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複