2014年3月12日水曜日

並列処理

pythonによるプロセスベースの並列処理に関するメモです。
ライブラリのmultiprocessingを使います。



import multiprocessing as mul

def getLL( d ):
    return -d*d/2

pool = mul.Pool( processes=2 )

data = [ 0.5, 0.2, 0.1 ]
res = pool.map( getLL, data )



getLLは自分で定義した関数です。
dataはリストで、この中身が一つずつgetLLに渡されます。
ここでこの関数は
プロセス毎に実行されます。
ただし、一度に流れるプロセスは最初に決めた値(processes=2)です。

これで簡単に並列計算することができます。
関数への引数は一つしか受け付けないようです。


0 件のコメント:

コメントを投稿