假设,Moni必须参加一个邀请。Moni的另外两个朋友Diya和Hena也被邀请了。有一些条件,三个朋友必须分别去那里,而且他们必须都在门口才能进入大厅。现在Moni开车来,Diya坐公共汽车来,Hena步行来。现在,Moni和Diya多快能到达那里已经不重要了,他们必须等待Hena。所以为了加快整个过程,我们需要专注于Hena的表现,而不是Moni或Diya。
这实际上是发生在阿姆达尔定律中。它将系统性能的提高与性能不佳的部分联系起来,就像我们需要注意系统中这些部分的性能一样。该定律通常用于并行计算,以预测使用多个处理器时的理论加速比。
阿姆达尔定律可以用以下数学方式表示-
SpeedupMAX = 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,那么无论使用多少处理器,速度都不能超过这个值。
多核编程是信号处理和工厂控制系统中最常用的方法。在信号处理中,一个并发系统可以并行处理多个帧。在对象控制系统中,控制器和对象可以作为两个独立的任务执行。
多核编程有助于将系统划分为多个并行任务,这些并行任务同时运行,从而加快了整个执行时间。