Explore the year's biggest moments and the questions they inspired. #yearinsearch
オブジェクト指向プログラミング+multiprocessing.Poolでの並列処理でハマりました。 クラスの中でPoolライクな文法で並列演算を行なうことのできるMyPoolを自作したのでその紹介です。 Pythonでの並列処理について Pythonにはver2.6以降からmultiprocessingという便利なものがあります。 これのPoolという機能を使うと、 test.py # -*- coding: utf-8 -*- from multiprocessing import Pool def fuga(x): # 並列実行したい関数 return x*x def hoge(): p = Pool(8) # 8スレッドで実行 print p.map(fuga, range(10)) # fugaに0,1,..のそれぞれを与えて並列演算 if __name__ == "__main
Pythonで並列プログラミングしようとしたときに真っ先に思い浮かぶのが threadingやmultitprocessingモジュールですよね。 multiprocessingにはPoolという便利なクラスがあって、同時に起動するプロセス数を 制限しながら処理を並列実行できたりします。 例: import multiprocessing as mulp def func(self, n): return n ** 3 pool = mulp.Pool() r = pool.map(func, range(10)) print r # [0, 1, 8, 27, 64, 125, 216, 343, 512, 729] しかし、この時渡す関数funcがクラスのインスタンスメソッドだったり、匿名関数だったり、関数中で定義した関数だったり、した場合には エラーが出ます。 import mult
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く