并行计算机的基本功能分析.docx
- 文档编号:3306277
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:52
- 大小:434.29KB
并行计算机的基本功能分析.docx
《并行计算机的基本功能分析.docx》由会员分享,可在线阅读,更多相关《并行计算机的基本功能分析.docx(52页珍藏版)》请在冰豆网上搜索。
并行计算机的基本功能分析
并行计算机的基本功能分析
引言
了解和使用并行机,自然要知道并行机的性能,就普通意义上讲,它就是并行机的好与不好。
所以本节首先就从这些简单内容讲起,包括什么是并行机的基本性能,为什么需要评测机器的性能以及如何评测并行机性能。
什么是并行机的基本性能
所谓机器的性能(Performance)通常是指机器的速度,它是程序执行时间的倒数。
而程序执行时间是指用户向计算机送入一个任务后,直到获得他需要的结果这一段等待时间,包括访问磁盘和访问存储器的时间,CPU运算时间,I/O动作时间以及操作系统的开销时间等。
但在多任务系统中,CPU在等待I/O操作的同时可以转去处理另一个任务,这样分析起来就比较麻烦。
所以在讨论性能时,有时也使用CPU时间,它表示CPU的工作时间,不包括I/O等待时间和运行其它任务的时间。
很显然,用户所看到的执行时间是程序结束时所花费的全部时间,而不单是CPU时间。
1.单CPU性能
假定机器的时钟周期为TC,程序中指令总条数为IN,执行每条指令所需的平均时钟周期数为CPI,则一个程序在CPU上运行的时间TCPU为:
TCPU=IN×CPI×TC(2.1)
其中,
(2.2)
上式中n为程序中所有指令种类数。
令Ii/In表示第i种指令在程序中所占的比例,则上式可改写为:
CPI=
(2.3)
2.MIPS和MFLOPS
已如上述,执行时间的倒数就是速度。
速度通常可用MIPS(MillionInstructionsPerSecond)表示,即每秒百万条指令,它很适合于评测标量机。
对于一个给定的程序,MIPS可表示为:
MIPS=IN/(TE×106)=RC/(CPI×106)=IN/(IN×CPI×TC×106)(2.4)
其中,TE表示程序执行时间,RC表示时钟速率,它是TC的倒数。
有时还用相对MIPSRel这一标准,此时需要事先选择一个参照的计算机性能,然后与其比较:
MIPSRel=(TRef/TV)×MIPSRef(2.5)
其中,TRef表示在参照机上程序的执行时间,Tv表示相同程序在要评价机器上的执行时间,MIPSRef表示所约定的参照机的MIPS。
在80年代,常以DEC公司的VAX-11/780作为参照机,称为1MIPS机器。
MFLOPS(MillionFloatingPointOperationsPerSecond)常用来评价向量计算机的性能,表示每秒百万次浮点运算:
MFLOPS=IFN/(TE×106)(2.6)
其中,IFN表示程序中的浮点运算次数。
通常MFLOPS与MIPS之间无统一标准的量值关系。
一般认为在标量计算机中执行一次浮点运算平均需要3条指令,故有1MFLOPS约为3MIPS之说。
3.并行机的基本性能指标
并行计算机的基本性能参数可概括于表2.1中。
表2.1并行机基本性能参数一览表
名称
符号
含意
单位
机器规模
n
处理器的数目
无量纲
时钟速率
f
时钟周期长度的倒数
MHZ
工作负载
W
计算操作的数目
Mflop
顺序执行时间
T1
程序在单处理机上的运行时间
s(秒)
并行执行时间
Tn
程序在并行机上的运行时间
s(秒)
速度
Rn=W/Tn
每秒百万次浮点运算
Mflop/s
加速
Sn=T1/Tn
衡量并行机有多快
无量纲
效率
En=Sn/n
衡量处理器的利用率
无量纲
峰值速度
Rpeak=nR’peak
所有处理器峰值速度之积,R’peak为一个处理器的峰值速度
Mflop/s
利用率
U=Rn/Rpeak
可达速度与峰值速度之比
无量纲
通信延迟
to
传送0-字节或单字的时间
Μs
渐近带宽
r∞
传送长消息通信速率
MB/s
为什么要研究并行机的性能评测
当今,计算机的性能评价与测试是一个正在研究中的课题,它与计算机体系结构,计算机软件,计算机算法共同构成了新兴的计算科学(ComputationalSciences)的四大支柱。
并行计算机系统远比单处理机系统复杂得多,所以为了更好地用好并行机,充分发挥其长处,以适应不同应用问题的需求,评价与测试并行计算机的多种性能是非常必要的。
1.发挥并行机长处,提高并行机的使用效率
通过对不同并行计算机的性能进行测试,可以评价其优、缺点。
根据它们的特点,对口相应的应用领域,充分发挥其长处,以提高并行计算机的使用效率。
例如,通过测试CPU性能可以为计算密集(Compute–Intensive)型应用问题建议较合适的并行机;通过测试网络性能,可以为网络密集(Network-Intensive)型应用问题建议较适宜的并行机;通过对存储器和I/O通道性能的评试,可以为数据密集(Data-Intensive)型应用问题建议较满意的并行机等。
2.减少用户购机盲目性,降低投资风险
对于某一特定用户而言,并非购买越贵的机器越好。
应该根据自己的计算问题特点,通过使用基准测试程序(见本章2.4节)所得到的一些结果数据,来帮助你决策购买何种并行计算机。
并行计算机一般都很贵,一旦所购买的计算机在具体的应用中不能发挥应有的作用,那将是莫大的浪费。
一般而言,用户大都不是并行计算机方面的专家,为减少购买并行机的投资风险,通过各种性能评测手段来最大限度地减少引进和购买并行计算机的盲目性是非常重要的。
3.改进系统结构设计,提高机器的性能
并行计算机是个庞大复杂的系统,即使具有丰富设计经验的人员,也很难保证所设计出的计算机系统十全十美。
任何成功的设计都不可能一次完成,总是通过测试试用,不断修改、补充以臻完善。
其中,按照性能测试所产生的测试结果比较全面,能够暴露设计中的一些问题,这些问题对计算机设计者具有比较大的指导意义,针对这些问题改进现有的设计,可进一步提高计算机的性能,以适应各方面的应用需求。
4.促进软/硬件结合,合理功能划分
根据对计算机性能的实际测试和统计分析,可以明确计算机所应完成的软件与硬件职能,合理的功能划分以及适当的软/硬件折衷。
对于那些使用频繁、功能较简单的操作,在硬件工艺许可的情况下,当以硬件实现之;而对于那些不常使用、功能又较复杂的操作,在软件复杂度允许的情况下,当以软件代替之。
这些常识范围内的知识,必须建立在对计算机的性能进行全面地测试和客观地分析的基础上。
特别是在技术工艺水平不断提高,器件成本不断下降的今天,计算机软件功能硬化的趋势似乎越来越明显。
5.优化“结构-算法-应用”的最佳组合
通过对计算机性能的评测,可以发现什么类型的体系结构比较适合于什么类型的问题求解算法;哪一类体系结构对哪一类应用问题比较有效;某类算法比较适合于求解某类应用问题。
例如,网孔连接的并行机结构比较适合于矩阵运算之类的算法;树连接的并行结构比较适合于与数据库有关的一类应用问题;数字滤波这一类的算法是数字信号处理应用中经常使用的算法。
当通过性能评测得出上述结论后,我们就可针对某类应用问题,设计出可以高效运行某种体系结构上的算法了。
6.提供客观、公正的评价并行机的标准
不同的用户(包括机器的系统操作员),会从不同的角度来评价并行机的性能优劣。
研究并行机的性能评测的根本目的之一,就是要试图提供一个统一的、客观的、公正的和可相互比较的评价并行计算机的标准。
为此就要从并行机的硬件体系、软件功能、解题能力、使用目的和测试手段等各个方面来评测并行计算机的性能。
如何评测并行机的性能
怎样评测一台计算机的性能,与测试者的出发点有关。
例如,计算机用户说机器很快,往往是因为程序运行时间短;而计算机管理员说机器很快,往往是因为在一段时间内它能够完成更多的任务。
用户所关心的是从提交任务开始到运行结束之间的时间,即执行时间;
而管理员所关心的是在单位时间能完成的工作量,即吞吐率(Throughput)。
所以,如何客观、公正地评价计算机的性能不是一件容易的事,要涉及到计算机系统的诸多因素,它不仅与机器硬件速度有关,而且还与机器体系结构、计算方法与算法、程序编译优化、编程工具与环境,甚至与测试方法手段等有关。
本节试图根据机器性能评测的层次,分别从机器级、算法级和程序级三个层次来研究它们。
请注意这种分层也只是为了讨论的方便。
1.机器级的性能评测
机器级的性能评测,包括CPU和存储器的某些基本性能指标;并行和通信开销分析;并行机的可用性与好用性以及机器成本、价格与性/价比等。
它们中的有些是由机器厂商在销售时直接提供给用户的,是广大用户对并行计算机的第一印象,是引进和购买并行计算机时最主要的选择依据,特别是机器的基本性能指标和机器的价格是诸多并行机之间最可比的数据,也是非计算机专业用户选购并行机时决策的主要依据。
2.算法级的性能评测
算法级的性能评测方法,最初大都是为了评价并行算法的性能提出的,后来这些评测方法也被推广到并行程序上。
众所周知,在并行机上进行计算的主要目的就是要加速整个计算过程,所以研究并行算法的加速(比)性能是最根本的。
它体现了对于一个给定的应用,并行算法相对于串行算法的执行速度加快了多少倍。
此外,随着计算负载的增加和机器规模的扩大,研究并行算法的性能是否能随着处理器数目的增加而按比例的增加也是很主要的,这就是所谓的并行算法的可扩放性(Scalability)问题。
由于可扩放性是个很主要的概念,所以后来推而广之,就出现了诸如程序的可扩放性、体系结构的可扩放性、工艺技术的可扩放性以及应用的可扩放性等等。
3.程序级的性能评测
程序级的性能评测主要是使用一组基准测试程序(Benchmark)测试和评价计算机系统的各种性能。
不同的基准测试程序,侧重目的也有所不同,但任何一组测试程序均要提供一组控制测试条件、步骤、规则说明,包括测试平台环境、输入数据、输出结果和性能指标等。
我们在第2.4节将要详细讨论综合测试程序(如Whetstone,Dhrystone等),数学库测试程序(如Linpack,Lapack等),应用测试程序(如SPEC,Splash等),并行测试程序(如NPB,ParkBench等)和商用测试程序(如TPC—A,TPC---B等)等。
机器级性能评测
本节将有选择地讨论机器级的某些性能评测,主要包括CPU和存储器的某些基本性能指标;并行和通信开销分析;机器的可用性(Availability)和好用性(Usability)以及机器的成本、价格与性/价比等。
CPU和存储器的某些基本性能指标
参照表2.1中所列出的并行计算机的一些基本性能参数,下面将着重讨论CPU和存储器的某些基本性能指标,主要包括工作负载、并行执行时间、存储器层次结构及其典型性能参数、存储器带宽估计等。
1.CPU性能
(1)工作负载(W):
所谓工作负载(荷),就是计算操作的数目,通常可用执行时间,所执行的指令数目和所完成的浮点运算数三个物理量来度量它。
其中,①执行时间:
它可定义为在特定的计算机系统上的一个给定的应用所占用的总时间,系指应用程序从开始到结束所掠过的时间(ElapsedTime),它不只是CPU时间,还包括了访问存储器、磁盘、I/O通道的时间和OS开销等。
影响执行时间主要因素有求解应用问题所使用的算法;输入数据集及其数据结构;求解问题的硬件平台和操作系统以及所使用的语言、编译/编辑器和二进制代码的库函数等。
②浮点运算数:
对于大型科学与工程计算问题,使用所执行的浮点运算数目来表示工作负载是很自然的。
对于程序中的其它类型的运算,可按如下经验规则折算成浮点运算(FLOP)数:
在运算表达式中的赋值操作、变址计算等均不单独考虑(即它们被折算成0FLOP);单独赋值操作、加法、减法、乘法、比较、数据类型转换等运算均各折算成1FLOP;除法和开平方运算各折算成4FLOP;正(余)弦、指数类运算各折算成8FLOP;其它类运算,可按其复杂程度,参照上述经验数据进行折算之。
注意,在理论分析时,常常假定各条指令和每个浮点运算均取相同时间,这种均匀一致的速度假定在实际的计算系统中总是难以成立的。
③指令数目:
它与机器的指令系统有关。
对于任何给定的应用,它所执行的指令条数就可视为工作负载,常以百万条指令为计算单位,与其相应的速度单位就是MIPS(每秒百万条指令)。
不过用MIPS来表示工作负载时要注意机器实际执行的指令数不一定就是汇编程序中的指令数;所需执行的指令数目可能是依赖于输入数据值;即使对于固定的输入使用相同的高级语言,执行在RISC机器上的指令数通常比在CISC机器上指令数要多50%~150%;即使在相同的机器上,使用固定的输入,程序执行的指令数也会因不同的编译或优化方法而不同;最后,较多的指令数也不一定意味着程序地执行时间就长。
(2)并行执行时间:
在无重叠操作的假定下,并行程序的执行时间Tn为:
Tn=Tcomput+Tparo+Tcomm(2.7)
其中,Tcomput为计算时间,Tparo为并行开销时间,Tcomm为相互通信时间。
而Tparo包括进程管理(如进程生成、结束和切换等)时间,组操作(如进程组的生成与消亡等)时间和进程查寻(如询问进程的标志、等级、组标志和组大小等)时间;Tcmm包括同步(如路障、锁、临界区、事件等)时间,通信(如点到点通信、整体通信、读/写共享变量等)时间和聚合操作(如归约、前缀运算等)时间。
了解这些额外开销对开发并行程序大有好处:
例如,要是并行开销Tparo较小,则程序员可使用动态并行程序;否则使用静态并行程序较好,因为进程只在开始时生成而结束时消灭。
又如,如果机器支持路障同步,则可使用同步算法;如果路障操作太费时,则可使用异步算法。
下面让我们使用第一章第1.5中所有介绍的异步PRAM模型(即APRAM)来估计一下并行执行时间Tn。
在APRAM模型中,计算系由一系列用同步路障分开的所谓相(Phase)所组成。
在每个相内,各个处理器均异步地执行局部计算,每个相中最后一条指令是同步路障指令。
假定在第i相内计算量(即工作负载)为Wi,计算时间为T1(i)。
令DOP(DegreeofParallelism)表示能够同时执行的最大进程数,称之为并行度。
对于n个处理器的并行系统,显然1≤DOPi≤n。
而在第i相中并行执行时间为Tn(i)=T1(i)/n,所以在n个处理器的系统中,其总的并行执行时间为:
(2.8)
令T∞代表在使用无限多的处理器(n→∞)且不考虑Tparo和Tcomm时的应用程序执行时间,于是有:
(2.9)
定义为了达到Tn=T∞的最小n值为Nmax,称其为最大并行度,也就是能够用来降低执行时间的最大处理器数,则有:
(2.10)
可能达到的最高性能之上界可定义为:
(2.11)
而n个处理器的执行时间下界为:
Tn≥max(T1/n,T∞)(2.12)
Brent[1]已经证明,不考虑Tparo和Tcomm时,Tn满足下式:
(2.13)
将(2.12)代入(2.13),则有:
(2.14)
2.存储器性能
(1)存储器的层次结构:
在近代计算机中,为了加快处理器与存储器之间的数据移动,存储器通常按图1.29所示的层次结构进行组织。
如图2.1所示,对于每一层均可用三个参数
表征之:
①容量C:
表示各层的物理存储器件能保存多少字节的数据;②延迟L:
表示读取各层物理器件中一个字所需的时间;③带宽B:
表示在1秒钟内各层的物理器件中能传送多少个字节。
各层存储器及其相应的典型的C、L、B值示于图2.1中。
(2)存储器带宽的估算:
假定字长为64位,即8字节。
对于RISC类型机器中的加法操作,它从寄存器中取2个64位的字相加后再回送至寄存器。
通常RISC加法指令可在单拍内完成,如果使用100MHZ的时钟,那么存储带宽将是3×8×100×106=2.4GB/S可见,较快的时钟和处理器中较高的并行操作,可获得较宽的带宽。
图2.1各层存储器的典型性能参数
并行和通信开销
这一节主要讨论由于并行而招致的时间开销Tparo和多进程相互作用所引起的通信开销Tcomm。
这两种时间开销均比普通的计算时间要长得多,而且随系统不同而变化很大。
例如,一个POWER2处理器每个时钟周期(15ns)能执行4个浮点运算,但生成一个Unix进程(1.4μs)可长得足以执行372000个浮点运算!
通常,这么大的开销主要是由OS核和系统软件所造成的。
有了这样的数字印象后,在使用并行和通信操作时就要慎重。
1.开销的量化
既然这些额外开销如此之大,那么就应该定量化它们。
但是,现实情况是计算机厂商们既很少提供数据,也很少提供开销的估计方法。
Hockney[2][3]曾针对点到点通信给出了几个有关开销的参数r∞、m1/2、t0和π0。
下面我们将介绍使用测量的方法来量化这些开销参数。
开销的测量与所使用的数据结构、程序语言、通信硬件与协议以及计时方法(挂钟时间或CPU时间)等有关。
为了获得精确的测量值并非易事,因为绝大多数机器系统只提供粗的时间分辩率(微秒级,甚至毫秒级);并行机中的各处理器常以异步方式操作,不合公共时钟节拍;测量结果离散性太大,所以比较普遍的方法是采用点到点乒—乓测量法。
2.开销的测量
对于点到点的通信,测量开销使用使用乒--乓方法(Ping-PongScheme):
节点0发送m个字节给节点1;节点1从节点0接收m个字节后,立即将消息发回节点0。
总的时间除以2,即可得到点到点通信时间,也就是执行单一发送或接收操作的时间。
用乒—乓方式测量延迟的代码段如下:
//*乒—乓法测量延迟的代码段*//
fori=0toRuns-1do/*发送者*/
if(my_node_id=0)then
temp=second()/*second()为时标函数*/
start_time=second()
sendanm-bytemessagetonode1
receiveanm-bytemessagefromnode1
end_time=second()
timer_overhead=start_time-timer_overhead
total_time=end_time–start_time+timer_overhead
communication_time[i]=total_time/2
elseif(my_node_id=1)then/*接收者*/
receiveanm-bytemessagefromnode0
sendanm-bytemessagetonode0
endif
endif
endfor
乒-乓方法可一般化为热土豆法(Hot-Potato),也称为救火队法(Fire-Brigade):
节点0发送m个字节点1,节点1在将其发送给接点2,依此类堆,最后节点n-1再将其返回给节点0,最后时间再除以n即可。
3.开销的表达式
通过测试方法所获得的开销数据,通常有3种方法进行解释:
列表法,绘图法和解析法。
其中解析表示法是最通用的。
(1)点到点的通信:
Hockney[3]对于点到点的通信,给出了如下所示的通信开销t(m)的解析表达式,它是消息长度m(字节)的线性函数:
t(m)=t0+m/r∞(2.15)
其中,t0是启动时间(μs);r∞是渐近带宽(MB/S),表示传送无限长的消息时的通信速率。
Hockney也同时引入了两个附加参数:
半峰值长度m1/2(字节),表示达到一半渐近带宽(即
)所需要的消息长度;特定性能π0(MB/S),表示短消息带宽。
4个参数t0、r∞、m1/2
和π0中只有两个是独立的,其它两个可使用如下关系式推导出:
t0=m1/2/r∞=1/π0(2.16)
(2)整体通信:
几种典型的整体通信有:
①播送(Broadcasting):
处理器0发送m个字节给所有的n个处理器;②收集(Gather):
处理0接收所有n个处理器发来在消息,所以处理器0最终接收了mn个字节;③散射(Scatter):
处理器0发送了m个字节的不同消息给所有n个处理器,因此处理器0最终发送了mn个字节;④全交换(TotalExchange):
每个处理器均彼此相互发送m个字节的不同消息给对方,所以总通信量为mn2个字节;⑤循环移位(Circular-shift):
处理器i发送m个字节给处理器i+1,处理器n-1发送m个字节给处理器0,所以通信量为mn个字节。
文献[5]将公式(2.15)推广之,使得通信开销T(m,n)是m和n的函数,但t0与r∞只是n的函数:
T(m,n)=t0(n)+m/r∞(n)(2.17)
同时,他们对SP2机器所测得的数据进行拟合,推导出如表2.2所示的整体通信和路障同步开销表达式。
注意,当超过256个处理器时,路障开销为768μs,等效于执行768×266=204,288个浮点运算。
可见只有当大的计算粒度时,才宜于使用路障操作。
表2.2SP2机器的整体通信和路障同步开销表达式一览表
整体通信操作
表达式
播送
52logn+(0.029logn)m
收集/散射
(17logn+15)+(0.025n-0.02)m
全交换
80logn+(0.03n1.29)m
循环移位
(6logn+60)+(0.003logn+0.04)m
路障同步
94logn+10
并行机的可用性与好用性
一个优良的并行机系统,除了应具有高的基本性能指标以及低的并行与通信开销外,还应具有可用性(Availability)和好用性(Usability)。
其中,可用性是指系统正常运行时间的百分比;而好用性是指用户使用机器时的感受程度。
1.机器的可用性
人们常将机器的可靠性(Reliability),可用性(Availability),与服务性(Serviceability)合在一起简称为机器的RAS性能,但有时候易将它们的概念相混淆。
事实上,可靠性是用平均无故障时间MTTF(MeanTimeToFail)来度量,系指系统失效前平均正常运行的时间;服务性是用平均修复时间MTTR(MeanTimeToRepair)来度量,系指系统失效后修理恢复正常工作的时间;而可用性被定义为:
Availability=MTTF/(MTTF+MTTR)(2.18)
由此可见,增加可用性有两种方法:
或增加MTTF,或减少MTTR。
有很多技术可以改进系统的可用性,这些内容可以参见本书第六章中6.2.1节有关内容,在此不再详细讨论。
下面将着重讨论好用性问题。
2.并行机的好用性
因为机器的好用性直接与用户有关,所以机器的好用性的讨论是与并行机系统所提供的用户环境分不开的。
目前用户使用并行机的环境主要有:
①远程登录结合命令行:
这是早期并行机典型的用户环境,用户通过登录到并行机上,再调用系统命令来完成自己的工作。
其优点是简单、通用,只要并行机提供Telnet服务既可;而缺点是用户必须熟悉机器的有关命令,且没有图形用户界面GUI(GraphicUserInterfa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算机 基本功能 分析