Performance 并行计算机中应用程序的性能和可扩展性

Performance 并行计算机中应用程序的性能和可扩展性,performance,parallel-processing,scalability,cpu-architecture,Performance,Parallel Processing,Scalability,Cpu Architecture,请参阅黄禹锡(by Hwang)文章的一部分,其中讨论了并行处理中性能的可伸缩性 问题是 1-关于图(a),theta(指数)和alpha(常数)的示例是什么?哪些工作负载会随着机器数量的增加而呈指数增长?此外,在使用多核/计算机时,我还没有看到恒定的工作负载 2-关于图(b),为什么指数工作负载的效率最高?我不明白 3-关于图(c),固定记忆模型意味着什么?固定内存工作负载听起来像是固定负载模型 关于图(c),固定时间模型是什么意思?“固定”这个词我认为是误导。我把它解释为“常数”。本文说固

请参阅黄禹锡(by Hwang)文章的一部分,其中讨论了并行处理中性能的可伸缩性

问题是

1-关于图(a),
theta
(指数)和
alpha
(常数)的示例是什么?哪些工作负载会随着机器数量的增加而呈指数增长?此外,在使用多核/计算机时,我还没有看到恒定的工作负载

2-关于图(b),为什么指数工作负载的效率最高?我不明白

3-关于图(c),固定记忆模型意味着什么?固定内存工作负载听起来像是固定负载模型

关于图(c),固定时间模型是什么意思?“固定”这个词我认为是误导。我把它解释为“常数”。本文说固定时间模型实际上是(a)
gamma
中的线性模型

关于图(c),为什么指数模型(内存限制)没有达到通信限制

您可能会看到描述下图的文本

我还不得不说,有时我不理解最后一行,即使仅使用处理器就可以实现最短时间,系统利用率(或效率)可能非常低


有人能举例说明一下吗?

工作负载指的是输入大小或问题大小,基本上就是要处理的数据量。机器大小是处理器的数量。效率定义为加速比除以机器尺寸。效率指标比加速比1更有意义。为此,考虑一个在并行计算机上实现2X加速的程序。这听起来可能令人印象深刻。但是如果我还告诉你并行计算机有1000个处理器,2倍的加速真的很糟糕。另一方面,效率捕获了加速和实现加速的环境(使用的处理器数量)。在本例中,效率等于2/1000=0.002。请注意,效率范围在1(最佳)和1/N(最差)之间。如果我告诉你效率是0.002,你会马上意识到这很糟糕,即使我没有告诉你处理器的数量

图(a)显示了不同类型的应用程序,其工作负载可以以不同的方式改变,以利用特定数量的处理器。也就是说,应用程序的规模不同。通常,添加更多处理器的原因是为了能够利用更大工作负载中不断增加的并行性。alpha行表示具有固定大小工作负载的应用程序,即并行量是固定的,因此添加更多处理器不会带来任何额外的加速。如果加速比是固定的,但N变大,则效率会降低,其曲线将类似于1/N。这样的应用程序具有零可伸缩性

其他三条曲线表示通过以某种模式增加工作负载,随着处理器数量的增加(即,可伸缩性)可以保持高效率的应用程序。gamma曲线表示理想的工作负载增长。这被定义为以现实的方式保持高效率的增长。也就是说,它不会对系统的其他部分(如内存、磁盘、处理器间通信或I/O)施加太大压力。因此,可伸缩性是可以实现的。图(b)显示了伽马的效率曲线。由于更高的并行性开销和应用程序的串行部分(其执行时间不变),效率略有下降。这代表了一个完全可扩展的应用程序:通过增加工作负载,我们可以实际使用更多的处理器。beta曲线表示的应用程序具有一定的可扩展性,即通过增加工作负载可以实现良好的加速,但效率会更快地下降

θ曲线代表了一种可以实现非常高效率的应用,因为有太多的数据可以并行处理。但这种效率只能在理论上实现。这是因为工作负载必须呈指数增长,但实际上,内存系统无法有效处理所有这些数据。因此,尽管理论上效率非常高,但这种应用程序的可扩展性较差

通常,当增加处理器数量时,具有次线性工作负载增长的应用程序最终会受到通信限制,而具有超线性工作负载增长的应用程序最终会受到内存限制。这是直观的。处理大量数据(θ曲线)的应用程序花费大部分时间独立处理数据,几乎不需要通信。另一方面,处理中等数量数据(beta曲线)的应用程序往往在处理器之间有更多的通信,其中每个处理器使用少量数据来计算某些内容,然后与其他处理器共享以进行进一步处理。alpha应用程序也是通信受限的,因为如果您使用太多的处理器来处理固定数量的数据,那么通信开销将太高,因为每个处理器将在一个很小的数据集上运行。固定时间模型之所以被称为固定时间模型,是因为它的伸缩性非常好(使用更多可用处理器处理更多数据所需的时间大致相同)

我也不得不说有时候我不明白最后一行, 即使仅使用处理器即可实现最短时间,系统 利用率(或效率)可能非常低

如何达到最短执行时间?只要加速比增加,就增加处理器的数量。一旦加速达到一个固定值,那么就达到了达到最小执行时间的处理器数量。但是,如果spe