2017-03-29 5 views
0

fmin_powellオプティマイザをfリストとは異なる引数で同時に実行したいとします。オプティマイザを並列に実行する

f = ['1','2','3','4','5','6'] 
optg_res = opt.fmin_powell(runner, coeff, args=(f,f), disp=0) 

どのような方法がありますか?多分私はそれを実行するために任意のbashコマンドを使用するだろうか?

答えて

0

マルチプロセッシングモジュールを使用して、fmin_powellの各呼び出しを別々のプロセスで並列に実行できます。 Pool.map()はプロセスプールに呼び出しを送信し、パラメーターリストの各値の結果値のリストを返します。

あなたの質問に与えられたコードに基づいて並列に4つのプロセスのために、このサンプルコードを参照してください:

from multiprocessing.pool import Pool 

def optimize(f): 
    return opt.fmin_powell(runner, coeff, args=(f,f), disp=0) 

f = [1,2,3,4,5,6] 

p = Pool(processes=4) 
results = p.map(optimize,f) 
+0

が、それは私がランナー機能でファイルを開いた場合の反復ステップを節約するために罰金を出て仕事に行くされています?私は適切な名前でファイルを掛け合わせていますが、結果がランダムに保存されているという印象があります。 – Monica

+0

ファイルへの書き込みはうまくいくはずですが、optimize()の呼び出し順序はいくつかの要素によって決まります。次の質問を参照してください:http://stackoverflow.com/questions/17903355 – acidtobi

関連する問題