アムダールの法則と並列化


システムの全体を考慮した改良をしないと性能向上が思ったより望めない話を。
例えば、アプリケーションの一部の処理を普段の100倍の計算効率に上げたとしても、その処理がシステム全体に影響を与えている割合が限りなく小さければ全体としての性能効率はそれほど上がらない。
これがアムダールの法則である。これにより家庭用デスクトップPCにマルチコアCPUを搭載することに疑問られていたらしい。

この法則が並列化に適用されることがある。
並列化できない部分(逐次計算)の割合をF、プロセッサの数をNとすると全体の性能向上率

1/[{(1-F)/N}+F] がアムダールから導かれる。

この式からNを増やしていく(並列化)すると1/Fに近づく。これから並列化が有効なのはFが小さいときとなる。

並列するCPUが多くなるればなるほど並列計算ができない処理の割合が重要になってくる。

結局は処理の全体を見なければ、並列化による性能効率は図れないてことですね。