数学高性能计算PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 采用集中式负载平衡方案,是否存在通信瓶颈?
• 采用动态负载平衡方案,调度策略的成本如何?
第44页/共46页
小 结
• 划分
• 域分解和功能分解
• 通信
• 任务间的数据交换
• 组合
• 任务的合并使得算法更有效
• 映射
• 将任务分配到处理器,并保持负载平衡
第45页/共46页
感谢您的观看。
第46页/共46页
• 划分的任务尺寸是否大致相当。(均衡)
• 若否,分配处理器时很难做到工作量均衡
• 任务数是否与问题尺寸成比例。
• 理想情况下,问题尺寸的增加应引起任务数的增加而不是任务
尺寸的增加
第19页/共46页
第七章 并行算法的一般设计过程

7.1 PCAM 设计方法学

7.2 划分

7.3 通信

7.4 组合
• 通过增加任务的粒度和重复计算,可以减少通信成本;
• 保持映射和扩展的灵活性,降低软件工程成本;
第32页/共46页
方法描述 (2)
• 增加粒度:
• 在划分阶段,致力于尽可能多的任务以增大并行执
行的机会。但定义大量的细粒度任务不一定产生一
个有效的算法,因为这有可能增加通信的代价和任
务创建的代价
• 表面-容积效应:通信量比例于子域的表面积,而
第13页/共46页
域分解
• 示例:三维网格的域分解,各格点上计算都是重复的。下图是三种分解方法:
1‐D
2‐D
图7.2
第14页/共46页
3‐D
域分解
• 不规则区域的分解示例:
第15页/共46页
功能分解
• 划分的对象是计算,将计算划分为不同的任务,其出发点不同于域分解;
• 划分后,研究不同任务所需的数据。
划分的合理性;
组合
组合:依据任务的局部性,组合成
更大的任务;
映射
映射:将每个任务分配到处理器上,提
高算法的性能。
第9页/共46页
第七章 并行算法的一般设计过程

7.1 PCAM 设计方法学

7.2 划分

7.3 通信

7.4 组合

7.5 映射

7.6 小结
第10页/共46页
划分方法描述
• 充分开拓算法的 并发性和可扩放性;
粒度(细粒度)并行。指令级并行等则是小粒度并行,亦称为细
粒度。
中粒度
所含计算任务的大小和计算程序的长短在粗粒度和细粒度两种类
型的算法之间
第2页/共46页
粒度
细粒度的并行
1)通信处理时只能完成很少量的
可计算工作。
2)低的计算通信率
3)促进负载平衡
意味着高通信开销,降低了性能
提升的可能性。
如果粒度太小很可能任务间的通
组合判据
• 增加粒度是否减少了通信成本?
• 重复计算是否已权衡了其得益?
• 是否保持了灵活性和可扩放性?
• 组合的任务数是否与问题尺寸成比例 ?
• 是否保持了类似的计算和通信?
• 有没有减少并行执行的机会?
第38页/共46页
组合的标准
• 组合造成的重复计算,是否平衡了其收益?
• 造成重复数据,是否已证实不会因限制问题尺寸和处理机数目而影响可扩放性?
计算比例于容积;
• 通信/计算之比随任务的尺寸的增加而减少

加粒度
• 重复计算(Replication Computation),也叫冗余
第33页/共46页
计算,有时可用冗余计算来减少通信。
表面-容积效应
• 通信量与任务子集的表面成正比,计算量与任务子集的体积成正比;
• 增加重复计算有可能减少通讯量;
• 任务数与问题尺寸是否成比例?
• 功能分解是一种更深层次的分解,是否合理?
第18页/共46页
划分的标准
• 划分的任务数,是否至少高于目标机上处理器数的一个
量级。(灵活性)
• 若否,则后继的设计步骤缺少灵活性
• 是否避免冗于的计算和存储要求。(可扩放性)
• 若否,则产生的算法对大型问题可能是不可扩放的
第29页/共46页
通信标准
• 所有任务是否执行大致同样多的通信。(可扩放
性)
• 若否,则可扩放性可能不好
Hale Waihona Puke • 每个任务是否只与少许近邻通信
• 若否,则可能导致全局通信;应设法将全局通信结
构化为局部通信结构
• 诸通信操作是否能并行执行
• 若否,则可能是低效的和不可扩放的
• 不同任务的计算能否并行执行
第30页/共46页
• 组合产生的任务是否具有类似的计算、通信代价?
• 任务数目是否仍与问题尺寸成比例?
第39页/共46页
第七章 并行算法的一般设计过程

7.1 PCAM 设计方法学

7.2 划分

7.3 通信

7.4 组合

7.5 映射

7.6 小结
第40页/共46页
方法描述
• 每个任务要映射到具体的处理器,定位到运行机器上;
7.3 通信

7.4 组合

7.5 映射

7.6 小结
第5页/共46页
设计目标
• 从给定问题的描述出发,通过一系列步骤,最终设计出一个能展示
• 并发性
• 可扩放性
• 局部性
• 和模块性
的并行算法
第6页/共46页
设计原则
• PCAM设计方法学
• 首先尽量开拓算法的并发性和满足算法的可扩放性 (与算法相关的特性 );
第34页/共46页
重复计算
• 重复计算减少通讯量,但增加了计算量,应保持恰当的平衡;
• 重复计算的目标应减少算法的总运算时间;
第35页/共46页
重复计算
• 示例:二叉树上N 个处理器求N 个数的全和,要求每个处理器均保持全和。
s
s
0
s
b
b
b
b
b
b
二叉树上求和,共需2logN步
s
s
s
1
2
3
0
第36页/共46页
第3页/共46页
粒度(2)
• 并行编程涉及不同的层次:
• 指令层:非常细的粒度;
• 数据层:细粒度;
• 控制层:中粒度;
• 任务层:大粒度。
• 前两层大都由硬件和编译器负责处理,程序员通常处理后两层的并行。
第4页/共46页
第七章 并行算法的一般设计过程

7.1 PCAM设计方法学

7.2 划分

第七章 并行算法的一般设计过程

7.1 PCAM 设计方法学

7.2 划分

7.3 通信

7.4 组合

7.5 映射

7.6 小结
第31页/共46页
方法描述
• 组合是由抽象到具体的过程,是将组合的任务能在一类并行机上有效的执行;
• 合并小尺寸任务,减少任务数。如果任务数恰好等于处理器数,则也完成了映射过程;
啥叫粒度(非并行计算版)
大学寝室八个人中午吃饭
细粒度:每个人都要出寝室,去食堂打份饭回来。
粗粒度:派个代表,或者找个别的寝室的,把所有饭带回来。
打个比方,100个学生要进行管理。
细粒度:
4个学生一个班25个班;
粗粒度:
50个学生一个班2个班。
细粒度:
程序也是一样,事情定下来的功能就那么多
定义了100个类;
信和同步所须要的花费时间比用
在计算上的还长。
粗粒度并行
1)在每次通信同步之间完成相当多
的计算任务。
2)高计算通信率
意味着更加可能执行性能提升。
更难执行有效的负载平衡调度
哪个更好?
最高效的粒度是由算法和当前硬件平台决定的。
通常情况下,通信和同步的开销很大程度上取决于执行速度,
这样运用粗粒度较好。
细粒度并行机制可以减少负载不平衡所带来的开销。
粗粒度:
定义了2个类。
第1页/共46页
啥叫粒度(并行计算版)
• 粒度(granularity)
• 各个多处理机可独立并行执行的任务大小的度量。
粗粒度
所含计算任务有较大计算量和较复杂计算程序。
任务级并行的粒度大于语句级的并行。
细粒度
所含计算任务有较小的计算量和较短的计算程序。
向量机主要是对内层Do循环语句作向量化,所以向量化是一种小
第27页/共46页
同步通信vs.异步通信
• 同步
• 双方知道何时进行通信,发送方显示的发给接收方
• 异步
• 不确定,接收的方明确地从发送者请求数据
第28页/共46页
通信判据
• 所有任务是否执行大致相当的通信 ?
• 是否尽可能的局部通信?
• 通信操作是否能并行执行 ?
• 同步任务的计算能否并行执行?
• 局部/全局通信
• 结构化/非结构化通信
• 静态/动态通信
• 同步/异步通信
第22页/共46页
局部通信
• 通信限制在一个邻域内,只与较少的几个近邻的通信
第23页/共46页
全局通信
• 通信非局部的,与很多任务通信
• 例如:
• All to All
• Master-Worker
5
1
3
7
2
第24页/共46页

7.5 映射

7.6 小结
第20页/共46页
通信方法描述
• 通信是PCAM设计过程的重要阶段;
• 划分产生的诸任务,一般不能完全独立执行,需要在任务间进行数据交流;从
而产生了通信;
• 功能分解确定了诸任务之间的数据流;
• 诸任务是并发执行的,通信则限制了这种并发性;
第21页/共46页
四种通信模式
设计的前期(第1,2步):
• 映射(Mapping)
考虑与机器特性无关的特性:并行性和可扩放性,寻
求具有这些特性的算法;
设计的后期(第3,4步) :
考虑与机器特性相关的特性:局部性等与性能有关的
问题;
第8页/共46页
PCAM设计过程
划分
通信
划分:分解成小的任务,开拓并发性;
通信:确定诸任务间的数据交换,监测
• 然后着重优化算法的通信成本和全局执行时间 (与机器相关的特性 );
• 同时通过必要的整个过程的反复回溯,以期望达到一个满意的设计选择;
第7页/共46页
PCAM设计方法学
• 设计并行算法(PCAM)的四个阶段
• 划分(Partitioning)
• 通信(Communication)
• 组合(Agglomeration)
• 基于域分解的:
• 递归对剖
• 局部算法
• 概率方法
• 循环映射
第42页/共46页
任务调度算法
• 任务放在集中的或分散的任务池中,使用任务调度算法将池中的任务分配给特
定的处理器。下面是两种常用调度模式:
• 经理/雇员模式
w
w
w
• 非集中模式
w
w
员工
w
p p
p
ppp
经理
第43页/共46页
w
映射判据
• 如果这些数据不相交的,则划分是成功的;
• 如果数据有相当的重叠, 意味着要重新进行域分解和功能分解;
• 功能分解是一种更深层次的分解。
第16页/共46页
功能分解
• 示例1:搜索树
• 示例2:气候模型
第17页/共46页
划分判据
• 划分是否具有灵活性?
• 划分是否避免了冗余计算和存储?
• 划分任务尺寸是否大致相当?
结构化通信
• 每个任务的通信模式是相同的;
• 下面是否存在一个相同通信模式?
第25页/共46页
非结构化通信
• 没有一个统一的通信模式
• 例如:无结构化网格
第26页/共46页
静态通信vs.动态通信
• 静态
• 通信伙伴的身份不随时间改变
• 动态
• 通信伙伴的身份可能由运行时所计算的数据决定且是可变的
• 任务数大于处理器数时,存在负载平衡和任务调度问题;
• 映射的目标:减少算法的执行时间
• 并发的任务 不同的处理器
• 任务之间存在高通讯的 同一处理器
• 映射实际是一种权衡,属于 NP 完全问题;
第41页/共46页
负载平衡算法
• 静态的:
事先确定;
• 概率的:
随机确定;
• 动态的:
执行期间动态负载;
• 域分解( domain
decomposition )
• 功能分解( functional
decomposition )
第12页/共46页
域分解
• 划分的对象是数据,可以是算法的输入数据、中间处理数据和输出数据;
• 将数据分解成大致相等的小数据片;
• 划分时考虑数据上的相应操作;
• 如果一个任务需要别的任务中的数据,则会产生任务间的通信;
• 先进行数据分解( 称域分解),再进行计算功能的分解( 称功能分解) ;
• 先集中数据的分解(域分解),然后是计算功能的分解(功能分解),两者互
为补充
• 使数据集和计算集互补相交,以避免数据和计算的复制;
第11页/共46页
划分方法描述
• 划分阶段忽略处理器数目和目标机器的体系结构;
• 能分为两类划分:
1
2
3
重复计算
• 示例:二叉树上N 个处理器求N 个数的全和,要求每个处理器均保持全和。
Σ0
7
Σ0
7
Σ0
7
Σ0
7
Σ0
7
Σ0
7
Σ0
7
Σ0
7
Σ0
3
Σ0
3
Σ0
3
Σ0
3
Σ4
7
Σ4
7
Σ4
7
Σ4
Σ0
1
Σ0
1
Σ2
3
Σ2
3
Σ4
5
Σ4
5
Σ6
7
Σ6
0
1
2
3
4
5
6
7
7
7
蝶式结构求和,使用了重复计算,共需logN步
第37页/共46页
相关文档
最新文档