2012年9月28日金曜日

性能向上の理論的限界

並列計算の分野ではまず始めに説明されることだが、並列化されたプログラムというのは、必ずしも「使えるプロセッサ数(コア数)が増えれば増えるほど処理時間が縮小されていく」というわけではない。そこには理論的な限界というものがある。

プロセッサ数が無限にあるとして、プログラムにおける「並列処理できる部分」の「全体に対する割合」をPとすると、並列化によって得られる性能向上の限界は1 / (1 - P)である。

今回自分が並列化したプログラムでは、例えば100 taxa 50 bpのデータを逐次処理で解析した場合の全体の処理時間において、並列化できるルーチンの占める割合は93%ほどであった。

なので、並列化の効率をちゃんと高めてやれば、理論上は14~15倍までの速度向上が見込めるというわけだ。

二週間かかる解析が一日で出来るようになるのであれば、系統解析の分野から見ればかなり効率化されていると判断してもいいのではなかろうか・・・?

0 件のコメント: