GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

並列化の効用

並列化をすることで処理時間を短縮するなどのパフォーマンス改善を行う場合

アムダールの法則(Amdahl's law)というものがよく使われるそうだ。

知らなかった自分に残念。

 

この法則の観点としては、下記のことが考えられると思う。

・プロセッサ数を増やし続けるとやがて改善が頭打ちになる。

プロセッサ数が固定の場合は、並列不可能な処理時間比率を0に近づけることが改善につながる。

・改善実施前におおよそのパフォーマンス改善を予測することができる。おおよその見積もりが立てられる。

 

お仕事で組み込み製品開発を行っていた。

組み込み製品はリリース後にパフォーマンス改善でプロセッサ数を増やすことは一般的に非常に難しい。そのため下図のようにコア数は固定だけどどうにかする必要がある。

こういったケースでは並列不可能な処理時間を減らすことが改善につながると思われる。実際に何度かこのような改善活動を行ったことがあるが、当時知っていればもう少し効率よく作業できたに違いない。

 

当時の自分に教えてあげたい。

 

<並列性能:コア数固定の場合>

f:id:taisyo7333:20151210145046p:plain

縦軸:並列性能 N倍

横軸:並列不可能な処理時間比率

 

参考URL

アムダールの法則 - Wikipedia

 

参考書籍

コンピュータアーキテクチャ技術入門 ~高速化の追求×消費電力の壁 (WEB+DB PRESS plus)

コンピュータアーキテクチャ技術入門 ~高速化の追求×消費電力の壁 (WEB+DB PRESS plus)