什么是阿姆达尔定律?
阿姆达尔定律
假设莫妮必须参加邀请。Moni的另外两个朋友Diya和Hena也应邀参加。在某些情况下,所有三个朋友必须分别去那里,而且他们都必须在门口出现才能进入大厅。现在,莫妮(Moni)驾车而来,迪亚(Diya)乘公共汽车而赫纳(Hena)步行即可到达。现在,Moni和Diya到达那里的速度并不重要,他们必须等待Hena。因此,为了加快整个过程,我们需要专注于除Moni或Diya之外的Hena的性能。
这实际上是在阿姆达尔定律中发生的。它把系统性能的提高与性能不佳的部分联系在一起,就像我们需要照顾系统那部分的性能一样。经常在并行计算中使用该定律来预测使用多个处理器时的理论加速。
式
阿姆达尔定律可以用以下数学方式表示-
加速最大值= 1 /(((1-p)+(p / s)))
加速MAX =最大性能提升
s =实施增强后的性能增益因子p。
p =需要提高性能的部分。
让我们举个例子,如果可以改进的部分占整个系统的30%,并且对于一个系统,其性能可以提高一倍,那么-
SpeedupMAX = 1 /(((1-0.30)+(0.30 / 2))
= 1.18
现在,在另一个示例中,如果可以改进的部分占整个系统的70%,并且对于一个系统,其性能可以提高一倍,则-
SpeedupMAX = 1 /(((1-0.70)+(0.70 / 2))
= 1.54
因此,我们可以看到,如果不能提高1-p,那么系统的整体性能就不能提高太多。因此,如果1-p为1/2,则无论使用多少处理器,速度都不能超过该值。
多核编程最常用于信号处理和工厂控制系统。在信号处理中,可以有一个并行处理并行处理多个帧的系统。在工厂控制系统中,控制器和工厂可以作为两个单独的任务执行。
多核编程有助于将系统拆分为多个并行任务,这些任务可以同时运行,从而缩短了整体执行时间。