什么是阿姆达尔定律?
阿姆达尔定律
假设,莫妮需要参加一个邀请函上的活动。莫妮的另外两个朋友迪娅和海娜也收到了邀请。条件是所有三个朋友都必须单独前往,并且所有人都必须到达门口才能进入大厅。现在,莫妮开车来,迪娅乘公共汽车来,海娜步行来。现在,莫妮和迪娅到达的速度有多快并不重要,他们必须等待海娜。因此,为了加快整个过程,我们需要关注海娜的表现,而不是莫妮或迪娅。
这实际上发生在阿姆达尔定律中。它将系统性能的改进与性能不佳的部分联系起来,就像我们需要关注系统中那些性能不佳的部分一样。该定律通常用于并行计算中,以预测使用多个处理器时的理论加速。
公式
阿姆达尔定律可以用数学公式表示如下:
加速比MAX = 1/((1-p)+(p/s))
加速比MAX = 最大性能增益
s = 实现增强后 p 的性能增益因子。
p = 需要改进性能的部分。
让我们举个例子,如果可以改进的部分占整个系统的 30%,并且系统的性能可以提高一倍,那么:
加速比MAX = 1/((1-0.30)+(0.30/2))
= 1.18
现在,在另一个例子中,如果可以改进的部分占整个系统的 70%,并且系统的性能可以提高一倍,那么:
加速比MAX = 1/((1-0.70)+(0.70/2))
= 1.54
因此,我们可以看到,如果 1-p 无法改进,则系统的整体性能无法得到太大改进。因此,如果 1-p 为 1/2,则无论使用多少处理器,速度都无法超过该值。
多核编程最常用于信号处理和工厂控制系统。在信号处理中,可以拥有一个并行处理多个帧的并发系统。在工厂控制系统中,控制器和工厂可以作为两个单独的任务执行。
多核编程有助于将系统拆分为多个并行任务,这些任务同时运行,从而加快整体执行时间。
广告