并行计算-学习笔记1
来源:互联网 发布:天蝎网络第三季百度云 编辑:程序博客网 时间:2024/04/24 09:55
并行程序
串行程序面向单核处理器,不利用多核性能;并行程序是需要利用多核性能的程序,编写并行程序需要调节各个核的工作:通信,负载平衡,同步。
核:中央处理器或者CPU的代名词
并行程序编写方法:任务并行和数据并行
任务并行:将待解决问题所需要执行的任务分配到各个核
数据并行:待解决问题所需要处理的数据分配到各个核通信:一个核或者多个核将自己的结果发送给其它核
负载平衡:每个核任务量大致相同
并行程序设计
1.划分
将大任务拆分成小任务,发掘问题的并发性;
2.通信
小任务之间需要进行哪些通信;
3.凝聚或聚合
第一步所确定的任务与通信结合为更大的任务;
4.分配
将上一步聚合好的任务分配到进程/线程中。
程序评估
编写并行程序的主要目的是提高性能,那么如何评估程序?
1.加速比和效率
加速比(Speedup)
S=TserialTparallel
当在p核系统上运行程序时,最佳预期S=p
效率
E=Sp
2.可扩展性
以
m 为倍率增加程序所用的进程/线程数,若存在相应的k 使得输入规模n 增加为n∗k 时,效率E 恒定,则称该程序是可扩展的。
粗略地将,如果一个程序可以处理规模不断增加的问题,就是可扩展的。
强可扩展的:
∀m>0,k=1
弱可扩展的:
∀m>0,k=m
参考文献
1.Peter S.P.《并行程序设计导论》[M].机械工业出版社,2012,8.
0 0
- 并行计算学习笔记1
- 并行计算-学习笔记1
- 并行计算-学习笔记2
- Java线程学习笔记之并行计算
- 畅谈并行计算和云计算学习笔记
- 畅谈并行计算和云计算学习笔记
- 并行计算笔记
- 并行计算学习资料
- 分布式、并行计算语言Erlang 学习笔记(第一部分)
- 分布式、并行计算语言Erlang 学习笔记(第二部分)
- 分布式、并行计算语言Erlang 学习笔记(第三部分)
- java学习--java并行计算
- 并行计算(1):概述
- Akka学习笔记02--PI值计算,采用多核处理器并行计算
- Akka学习笔记02--PI值计算,采用多核处理器并行计算
- Python并行计算pp模块实践笔记
- R语言并行计算(1)
- Java学习笔记--并行API
- 01.SpringMVC基础【孔浩SpringMVC视频教程】学习笔记
- Web Service单元测试工具实例介绍之SoapUI
- 如何实现线程同步
- 20151122 ocp 052(01-10)解析
- Discontinuous Reception (DRX) in RRC_IDLE: Part 2
- 并行计算-学习笔记1
- java过滤器---一异步处理
- 用Adobe Reader的“朗读”功能实现“少林修女GPS”语音提示
- 黑马程序员日记-14
- OO技术三大特点
- Unity shader中的法线详解
- 黑马程序员日记-15
- 单链表的链式表示和实现(含代码)
- map 遍历第二种方法 MapEntry