簡単に言えば、プログラムは 15% が順次部分で実行され、85% がその並列部分で実行されます。
無限の数のプロセッサで最大のスピードアップをどのように把握できますか?
また、たとえば、プログラムを最大速度の 80% まで高速化するには、いくつのプロセッサが必要かをどのように計算できますか?
アムダールの法則を使用。インターネットやグーグルなどを調べてみましたが、この単純な問題を解決するのに役立つものは何も見つかりませんでした!
簡単に言えば、プログラムは 15% が順次部分で実行され、85% がその並列部分で実行されます。
無限の数のプロセッサで最大のスピードアップをどのように把握できますか?
また、たとえば、プログラムを最大速度の 80% まで高速化するには、いくつのプロセッサが必要かをどのように計算できますか?
アムダールの法則を使用。インターネットやグーグルなどを調べてみましたが、この単純な問題を解決するのに役立つものは何も見つかりませんでした!
プロセッサの数が無限にある場合、ジョブの 85% は無限に高速で実行されます。つまり、償却された無視できる時間で実行されます。したがって、スピードアップは 1/(15%)、つまり 1/0.15 です。
論理的には、無限プロセッサが 85% を無限に高速化すると仮定すると、その部分の実行時間はゼロに近くなり、残りは 15% になります。したがって、最大スピードアップは ~6.6 倍です。
最大の 80% まで高速化するには、いくつの CPU を使用しますか? つまり、15%/80%=18.75% の実行時間が必要であると仮定します。順次部分には 15% が必要なので、3.75% が並列化された 85% をカバーする必要があります。したがって、85/3.75 ~23 cpu が必要です。