08/05/10 04:27:34
>>169
Parallel Python というパッケージがあるのを知ったので参考までに紹介しとく。
URLリンク(www.parallelpython.com)
スレッドじゃなく複数プロセスで並列実行する仕組みらしい。
Python のみで実装されていて非常にシンプルなパッケージ構成になっている。
マルチコア環境の場合はスレッドモジュール風に使える。
クラスタ環境では各ノードで計算サーバ(ppserver.py)をしておく仕組みになっている。
応用プログラムはどちらの環境でも同じにできるっぽい。
手元の共有メモリマシンで付属サンプル(sum_primes.py)を実行したら下のようになった。
素数の和を計算するプログラムなのでプロセス間通信はほとんどないけど、
並列化のオーバヘッドはあるわけで、なかなか良好な結果だと思う。
並列度,実行時間(秒),速度向上率
1, 17.54, 1.000
2, 8.781, 1.998
4, 4.424, 3.965
8, 2.261, 7.759