并行程序在不同机器上的性能分析

本文探讨了串行程序的执行时间计算,包括指令数、CPI和时钟周期的关系,以及并行程序的执行时间构成,涉及计算时间、并行开销和通信时间。同时,介绍了程序性能的两个下界——延迟界限和吞吐量界限,分别限制了指令级并行和处理器原始计算能力。此外,还提及了处理器浮点吞吐量的估算方法。
摘要由CSDN通过智能技术生成

串行程序执行时间[1.1]

程序的执行时间可以通过程序的执行指令数、指令平均时钟周期数(CPI)、以及时钟周期来计算,即:
s e c o n d s p r o g r a m = i n s t r u c t i o n s p r o g r a m ⋅ c y c l e s i n s t r u c t i o n ⋅ s e c o n d s c y c l e {seconds \over program}={instructions \over program}\cdot{cycles\over instruction}\cdot {seconds\over cycle} programseconds=programinstructionsinstructioncyclescycleseconds
(因为时钟周期通常时固定的,所以优化代码通常需要减少前两项:instructions/program 与 cycles/instruction)


并行程序执行时间[2.1]

在无重叠操作的假定下,并行程序的执行时间Tn为:

Tn = Tcompute + Tparallel overhead + Tcommunicate

其中:

Tcompute 表示 计算时间:

  程序纯计算所占用的时间;

Tparallel overhead 表示 并行开销时间,包括:

  进程管理(如进程生成、结束和切换等)时间,
  组操作(如进程组的生成和消亡等)时间,
  进程查询(如询问进程的标志、等级、组标志和组大小等)时间;

Tcommunicate 表示 相互通信时间,包括:

  同步(如路障、锁、临界区、事件等)时间,
  通信(如点到点通信、整体通信、读/写共享变量等)时间,
  聚合操作(如规约和前缀运算等)时间。


程序最大性能界限[3.1]

两种下界描述了程序的最大性能——延迟界限和吞吐量界限:

延迟界限(Latency Bound):
  现代处理器的最大特点是指令级并行,但是由于数据依赖的情况时有发生,则会出现一系列操作必须严格顺序执行的情况,此时就会遇到延迟界限,即在下一条指令开始前,该条指令必须结束,所以数据依赖所带来的延迟界限限制了现代处理器的指令级并行能力。

吞吐量界限(Throughput Bound):
  吞吐量界限刻画了处理器功能单元的原始计算能力。这个界限时程序性能的终极限制。

~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
吞吐量[1.2]:
  处理器的峰值浮点吞吐量可以通过时钟频率和每个周期执行的浮点操作数的乘积估计出来。例如,如果一个处理器在1GHz上每个周期内可以执行10个浮点操作,那么它的峰值吞吐量为100亿每秒浮点运算或者10Gflops。
  (注意:flops一词既可以代表每秒所执行的浮点运算次数:flops/s ,也可以代表浮点运算:flops)


[1].《ARM嵌入式系统编程与优化》ISBN 978-7-111-57803-1 詹森-D-巴克斯(著)梁元于(译)机械工业出版社

—> [1.1] :[1]-第一章-1.8节-16页
—> [1.2] :[1]-第一章-1.12节-25页

[2]. 《并行计算-结构算法编程》 (第3版) ISBN 978-7-04-033742-6 陈国良编著 高等教育出版社

—> [2.1] :[2]-第四章-4.1节-119页

[3]. 《深入理解计算机系统》(原书第3版)ISBN 978-7-111-54493-7 兰德尔-E-布莱恩特与大卫-R-奥哈拉伦(著)龚奕利(译)机械工业出版社

—> [3.1] :[3]-第五章-5.7节-357页

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值