实现特定加速所需的处理器数量?
Number of processors needed to achieve a certain speedup?
简单来说,一个程序有 15% 运行 是顺序部分,85% 是并行部分。
我如何计算无限数量处理器的最大加速比?
而且,我怎么知道,比方说,需要多少处理器才能将程序加速到其最大速度的 80%?
使用阿姆达尔定律。我试过在互联网上四处寻找,google,等等。没有找到任何可以帮助我解决这个简单问题的东西!
如果您有无限数量的处理器,则 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。
简单来说,一个程序有 15% 运行 是顺序部分,85% 是并行部分。
我如何计算无限数量处理器的最大加速比?
而且,我怎么知道,比方说,需要多少处理器才能将程序加速到其最大速度的 80%?
使用阿姆达尔定律。我试过在互联网上四处寻找,google,等等。没有找到任何可以帮助我解决这个简单问题的东西!
如果您有无限数量的处理器,则 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。