私はよく、次のような単純な最適化ルーチンを作成します。
def createinstance(n):
while(True):
#create some instance called instance
yield instance
loopno = 100000
n= 100
min = 0
for i in xrange(loopno):
for inst in createinstance(n):
value = foo(inst)
if (value < min):
min = value
print min
これを行うために、マシンのすべてのコアを使用できるようにしたいと考えています。
非常に単純な方法は、範囲を部分に分割し、それらをコアにファームアウトして、最後に結果を収集するだけです.
より良い方法は、コアがアイドル状態のときにインスタンスのバッチを要求することです。
Pythonで最大の効率を得るためにこの問題を解決する良い方法は何ですか? たぶん、これはコミュニティの質問になるのに十分な標準ですか?
この質問は、 Solving embarassally parallel problems using Python multiprocessingのさらに単純なバージョンのようです。