阿姆达尔曾致力于并行处理系统的研究。对于固定负载情况下描述并行处理效果的加速比s,阿姆达尔经过深入研究给出了如下公式:S=1/((1-a)+a/n)
背景
随着从存储系统的日益复杂,对存储系统的性能分析就显得非常必要。单个存储器的性能由生产厂商在数据手册中说明,那么由多个存储体构成的并行存储系统的性能如何分析,尤其是系统的吞吐率及相应时间就必须借助数学模型进行分析,或者再利用软件进行仿真确定。对于更全面的系统仿真将花费非常大的代价,因此实际上多采用数学模型的方式确定。为此,利用阿姆达尔定律来说明存储系统性能分析模型。
简介
Amdahl加速定律的基本出发点是:1.对于很多
科学计算,实时性要求很高,即在此类应用中时间是个关键因素,而计算负载是固定不变的。为此在一定的计算负载下,为达到实时性可利用增加处理器数来提高计算速度;2.因为固定的计算负载是可分布在多个处理器上的,这样增加了处理器就加快了执行速度,从而达到了加速的目的。在此意义下,1967年Amdahl推导出了固定负载的加速公式。
阿姆达尔定律是计算机系统设计的重要定量原理之一,于1967年由IBM360系列机的主要设计者阿姆达尔首先提出。该定律是指:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。简单来说是通过更快的处理器来获得加速是由慢的系统组件所限制。
阿姆达尔曾致力于并行处理系统的研究。对于固定负载情况下描述并行处理效果的加速比s,阿姆达尔经过深入研究给出了如下公式:
S=1/((1-a)+a/n)
其中,a为并行计算部分所占比例,n为并行处理结点个数。这样,当1-a=0时,(即没有串行,只有并行)最大加速比s=n;当a=0时(即只有串行,没有并行),最小加速比s=1;当n→∞时,极限加速比s→ 1/(1-a),这也就是加速比的上限。例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。这一公式已被学术界所接受,并被称做“阿姆达尔定律”,也称为“安达尔定理”(Amdahl law)。
运用
并行存储系统的性能分析可以通过简单的性能模型展开,这其中主要就是阿姆达尔定律。阿姆达尔定律是一个非常简单而通用的并行处理性能模型。这里以程序的并行运行为例说明该定律,其他情况比较容易进行推导分析。由于单个程序内部不一定全部可以实现并行处理。那么假设f为程序中必须进行串行操作的部分比率,其余的1-f部分则认为可以完全在硬件上并行执行,而且P表示硬件的并行度。P在不同形式的计算机系统中代表着不同的含义:
(1)在MIMD系统中,P是处理器的数目;
(2)在SIMD系统中,P是正在处理的数据数目;
(3)在流水方式工作的SIMD系统中,P是矢量速度和标量速度的比;
(4)在流水方式工作的MIMD系统中,P是流水线功能段的数目。
为了在并行度p的硬件上获得50%以上的效率,穿行操纵部分比率不能超过1/(P-1)。随着P的增加,相应条件也越来越难以满足。最早应用Amdahl定律对串行处理进行性能评价,但是在各种并行工作环境中Amdahl定律也非常有用。例如:在并行度很高的系统中,轻微的非并行代码会对系统带来很大的影响;快速的矢量处理器必须具有一个快速的标量处理器以获得其峰值性能的相当大部分能力;对当前穿行执行的小部分代码进行并行完成也可以增加相当大的效率。
虽然Amdahl定律建立了一个非常简单的行囊模型,但也不能过于简单化使用。系统规模,特别是处理器数目P通常为了处理更大的问题而不断增加,而通常问题的规模的增加并不能显著增加串行工作量。这种情况下,f与问题大小成反比。如果问题大小岁并行度P增加而增大,那么随着问题和系统规模的增大,性能表现呈现出收缩性。在计算机系统中,Amdahl定律也可表述为,对系统内某部分的并行化改进造成的整体性能提升量取决于该部分在整体过程中执行的时间,即经常性事件或其部分的改进造成的整体性能得到较大提升。加速比也可以表示为使用改进方式完成整个任务时间的比值。实际上有两个主要因素影响加速比,第一个因素是需要改进提高速度部分在总执行时间中所占的比值。实际上有两个主要因素影响加速比,第一个因素是需要改进提高速度部分在总执行时间中所占的比例。譬如,1s完成的人物其中有200ms可以改进,那么该比例救赎20%,可以称为改进比例。第二个因素是采用改进方式后相应部分速度提高的程度。可以用未改进情况下该部分执行时间与改进后执行时间的比值衡量。改进加速比一般都大于1。那么改进后的任务总时间为没有改进的部分执行时间和改进部分执行时间的和。