我使用google compute运行基于控制台的Java程序并获得了以下加速:
我原本期望使用8个vCPU比使用2个vCPU快4倍(尽管我还没有尝试使用4个vCPU)。这是正常的还是应该仔细检查我的程序?
如果这是正常的,那么实现1.5分钟/ 2 = 0.75分钟的加速需要多少个vCPU? 16或32或......?
我是这个并行的新手。
答案 0 :(得分:2)
这取决于你的程序是否可以完全并行化(这是你实现理论上的最大加速比),或者它有一些是并行的部分,而某些部分则不是(在现实世界的程序中更有可能)
请参阅Amdahl's law说明:
在计算机体系结构中,Amdahl定律(或Amdahl的论证)给出了在固定工作负载下执行任务的延迟的理论加速,这可以预期资源得到改善的系统。 / p>
这里有一个加速的可视化,取决于程序可以并行化的程度:
图片来自" AmdahlsLaw"作者:Daniels220英文维基百科 - 自己的工作基于:文件:AmdahlsLaw.png。通过下载CC BY-SA 3.0获得许可 - https://commons.wikimedia.org/wiki/File:AmdahlsLaw.svg#/media/File:AmdahlsLaw.svg
答案 1 :(得分:1)
根据您的数字,您的程序看起来可以80%并行化。 这意味着固定运行成本应该在1分钟左右。所以你无法进一步减半。
等