并行计算-学习笔记1

来源:互联网 发布:天蝎网络第三季百度云 编辑:程序博客网 时间:2024/04/24 09:55

并行程序

串行程序面向单核处理器,不利用多核性能;并行程序是需要利用多核性能的程序,编写并行程序需要调节各个核的工作:通信,负载平衡,同步。

核:中央处理器或者CPU的代名词

并行程序编写方法:任务并行和数据并行

任务并行:将待解决问题所需要执行的任务分配到各个核
数据并行:待解决问题所需要处理的数据分配到各个核

通信:一个核或者多个核将自己的结果发送给其它核

负载平衡:每个核任务量大致相同

并行程序设计

1.划分

将大任务拆分成小任务,发掘问题的并发性;

2.通信

小任务之间需要进行哪些通信;

3.凝聚或聚合

第一步所确定的任务与通信结合为更大的任务;

4.分配

将上一步聚合好的任务分配到进程/线程中。

程序评估

编写并行程序的主要目的是提高性能,那么如何评估程序?

1.加速比和效率

加速比(Speedup)

S=TserialTparallel

当在p核系统上运行程序时,最佳预期S=p


效率

E=Sp

2.可扩展性

m为倍率增加程序所用的进程/线程数,若存在相应的k使得输入规模n增加为nk时,效率E恒定,则称该程序是可扩展的

粗略地将,如果一个程序可以处理规模不断增加的问题,就是可扩展的

强可扩展的m>0,k=1


弱可扩展的m>0,k=m

参考文献

1.Peter S.P.《并行程序设计导论》[M].机械工业出版社,2012,8.

0 0
原创粉丝点击