简单来说,一个程序有 15% 运行在顺序部分,85% 是它的并行部分。
我如何计算出无限数量的处理器的最大加速比?
而且,我怎么能算出,比如说,需要多少个处理器才能将程序加速到其最大速度的 80%?
使用阿姆达尔定律。我试过浏览互联网、谷歌等。没有找到任何可以帮助我解决这个简单问题的东西!
简单来说,一个程序有 15% 运行在顺序部分,85% 是它的并行部分。
我如何计算出无限数量的处理器的最大加速比?
而且,我怎么能算出,比如说,需要多少个处理器才能将程序加速到其最大速度的 80%?
使用阿姆达尔定律。我试过浏览互联网、谷歌等。没有找到任何可以帮助我解决这个简单问题的东西!
如果您有无限数量的处理器,则 85% 的工作可以无限快地完成,即摊销时间可以忽略不计。所以加速比是 1/(15%) 即 1/0.15
从逻辑上讲,如果您假设无限处理器将无限加速 85%,即该部分的运行时间将接近于零,那么您剩下的就是 15%。因此最大加速比约为 6.6 倍。
多少 cpu 可以加速到最大值的 80%?假设这意味着您希望执行时间为 15%/80%=18.75%。由于顺序部分需要 15%,因此 3.75% 必须覆盖 85% 的并行化。因此你需要 85/3.75 ~23 cpus。