我使用google运行了基于控制台的Java程序,并获得了以下加速:
我原以为使用8个vCPU将比使用2个vCPU快4倍(不过,我还没有尝试使用4个vCPU)。这是正常的还是我应该再检查一下我的程序?
如果这是正常的,那么需要多少个vCPUs才能达到1.5分钟/2= 0.75分钟的加速比? 16或32或.?
我对这种平行的东西很陌生。
发布于 2016-01-05 23:28:16
根据您的数字,您的程序看起来是80%的可并行性。这意味着,固定运行成本应该在1分钟左右。所以你不能再减少一半了。
等。
发布于 2016-01-05 02:39:41
这取决于您的程序是否完全可并行(这是实现理论上最大加速比的地方),或者它有一些部分是并行的,有些部分不是并行的(这在现实程序中更有可能)。
参见Amdahl定律,它说:
在计算机体系结构中,Amdahl定律(或Amdahl的论点)给出了资源得到改进的系统在固定工作负载下执行任务的延迟的理论加速。
下面是加速的可视化,这取决于程序的可并行性:
图片通过"AmdahlsLaw“由Daniels220在英语维基百科-自己的工作基础上: File:AmdahlsLaw.png。在CC下通过-SA3.0通过共用- https://commons.wikimedia.org/wiki/File:AmdahlsLaw.svg#/media/File:AmdahlsLaw.svg_获得许可
https://stackoverflow.com/questions/34603230
复制相似问题