西安电子科技大学:《并行计算》课程教学资源(课件讲稿)并行程序设计基础与样例(第二部分,交互问题与计算圆周率)

《并行计算:Parallel Computing》 结构编程算法应用 §3.1并行程序设计基础与样例 (第二部分) 徐悦牲Yueshen Xu) ysxu@xidian.edu.cn 软件工程系 西安电子科技大学
§3.1 并行程序设计基础与样例 (第二部分) 徐悦甡(Yueshen Xu) ysxu@xidian.edu.cn 软件工程系 西安电子科技大学 《并行计算:Parallel Computing》 结构 编程 算法 应用

上节回顾 面些毛子种枝大兽 XIDIAN UNIVERSITY →并行程序设计基础与样例 口并行程序设计样例 ■小 求最大数 CPUO CPU 1 CPU 2 CPU 3 2
上节回顾 并行程序设计基础与样例 CPU 0 CPU 1 CPU 2 CPU 3 2 并行程序设计样例 求最大数

上节回顾 历些毛子种枝大” XIDIAN UNIVERSITY →并行程序设计基础与样例 ▣串行语言→并行语言→并行程序设计 ■并行程序设计中需要解决的一般性问题 >并行性问题 -针对一个程序/进程,如何实现并行化 >交互性问题 -不同的程序/进程,在并行执行过程中,如何交互
上节回顾 并行程序设计基础与样例 串行语言 并行语言 并行程序设计 并行程序设计中需要解决的一般性问题 ➢ 并行性问题 - 针对一个程序/进程,如何实现并行化 ➢ 交互性问题 - 不同的程序/进程,在并行执行过程中,如何交互 3

上节回顾 历些荒子种枚大多 XIDIAN UNIVERSITY →并行程序设计基础与样例 ▣开发动态并行性的一般方法 ■Fork/Join Process A Process B Process C begin begin begin Z:=1 fork(C); Y:=foo(Z); fork(B); X:=foo(Z); join(C); end T:=foo(3); output(X+Y); end end Fork:派生一个子进程 Join:强制父进程等待子进程
上节回顾 并行程序设计基础与样例 开发动态并行性的一般方法 Fork/Join begin Z:=1 fork(B); T:=foo(3); end begin fork(C); X:=foo(Z); join(C); output(X+Y); end begin Y:=foo(Z); end Fork:派生一个子进程 Join:强制父进程等待子进程 Process A Process B Process C 4

本节目录 历粤毛子种枝大兽 XIDIAN UNIVERSITY ▣并行性问题(续) ■进程编组、划分与分配 并行性问题的延续 ■并行性与并行粒度 ▣进程间的交互问题 ■3 交互的类型 交互问题 ■交互的模式 ▣并行程序设计模型 如何写程序 ■ 以计算圆周率程序为例
本节目录 并行性问题(续) 进程编组、划分与分配 并行性与并行粒度 进程间的交互问题 交互的类型 交互的模式 并行程序设计模型 以计算圆周率程序为例 5 交互问题 并行性问题的延续 如何写程序

并行程序设计的一般性问题 历些毛子科枚大多 XIDIAN UNIVERSITY )并行性问题 口进程编组、划分与分配 ■进程编组 >目的:支持进程间的交互,常把需要交互的进程调度在同一组中 >一个进程组成员由:组标识符+成员序号唯一确定 ■划分与分配 >原侧:使系统大部分时间忙于计算,而不是闲置或忙于交互 >划分:切割数据和工作负载 >分配:将划分好的数据和工作负载映射到计算结点/处理器上 多机 多核 决定并行性与并行粒度 6
划分与分配 ➢ 原则: 使系统大部分时间忙于计算,而不是闲置或忙于交互 ➢ 划分: 切割数据和工作负载 ➢ 分配: 将划分好的数据和工作负载映射到计算结点/处理器上 并行程序设计的一般性问题 并行性问题 进程编组、划分与分配 进程编组 ➢ 目的:支持进程间的交互,常把需要交互的进程调度在同一组中 ➢ 一个进程组成员由:组标识符+成员序号 唯一确定 多机 多核 决定并行性与并行粒度 6

并行程序设计的一般性问题 历粤毛子种拔大学 XIDIAN UNIVERSITY )并行性问题 ■分配方式 >显式分配:由用户指定数据和负载如何加载 >隐式分配:由编译器和运行时支持系统决定 ■分配原则 >就近分配原则:进程所需的数据靠近使用它的进程代码 口并行性与并行粒度 ■并行性或并行度(Degree of Parallelism,DOP) >同时执行的分进程数
并行程序设计的一般性问题 并行性问题 分配方式 ➢ 显式分配: 由用户指定数据和负载如何加载 ➢ 隐式分配:由编译器和运行时支持系统决定 分配原则 ➢ 就近分配原则:进程所需的数据靠近使用它的进程代码 7 并行性与并行粒度 并行性或并行度(Degree of Parallelism, DOP) ➢ 同时执行的分进程数

并行程序设计的一般性问题 历些毛子科枚大多 XIDIAN UNIVERSITY )并行性问题 ■ 并行粒度(Granularity) >两次并行或交互操作之间所执行的计算负载 指令级并行 小粒度 块级并行 中粒度 进程级并行 任务级并行 大粒度 ■ 并行度与并行粒度常为负相关关系 >增大粒度会减小并行度 >一味增加并行度会增加系统开销(主要体现在进程同步开销上) 8
并行粒度(Granularity) ➢ 两次并行或交互操作之间所执行的计算负载 指令级并行 块级并行 进程级并行 任务级并行 并行程序设计的一般性问题 并行性问题 小粒度 中粒度 大粒度 并行度与并行粒度常为负相关关系 ➢ 增大粒度会减小并行度 ➢ 一味增加并行度会增加系统开销(主要体现在进程同步开销上) 8

并行程序设计的一般性问题 历粤毛子种技大” XIDIAN UNIVERSITY )并行性问题 口并行粒度 Java/Python Task i-l Task i Task i+1 任务级并行,程序 编程语言 func1 ( func2 ( func: Process/Threads 进程级并行 线程 Compilers 88▣ a(1)=. b(1)=. 块级并行 (编译器) CPU Load 指令级并行 9
并行程序设计的一般性问题 并行性问题 9 Java/Python Task i-l Task i Task i+1 编程语言 任务级并行,程序 func1 ( ) { .... .... } func2 ( ) { .... .... } func3 ( ) { .... .... } Process/Threads 线程 进程级并行 a ( 0 ) =.. b ( 0 ) =.. a ( 1 )=.. b ( 1 )=.. a ( 2 )=.. b ( 2 )=.. Compilers (编译器) 块级并行 CPU + x Load 指令级并行 并行粒度

并行程序设计的一般性问题 历些毛子代枚大多 XIDIAN UNIVERSITY )进程间的交互问题 ▣进程间的交互问题 ■交互:进程间的相互影响 ■ 交互的类型 >通信(类型一):两个或多个进程间传送数的操作 并行计算 >通信方式 的有效实 共享变量 现亦依赖 于操作系 ·参数传递(父进程传给子进程方式) 统的知识 ·消息传递 10
并行程序设计的一般性问题 进程间的交互问题 进程间的交互问题 交互:进程间的相互影响 交互的类型 并行计算 的有效实 现亦依赖 于操作系 统的知识 ➢ 通信(类型一): 两个或多个进程间传送数的操作 ➢ 通信方式 - 共享变量 - 参数传递(父进程传给子进程方式) - 消息传递 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)并行程序设计基础与样例(第一部分).pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)并行计算机性能测评.pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)并行计算机系统结构(第二部分).pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)并行计算机系统结构模型(第一部分,含第一次作业).pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)课程概述 Parallel Computing(主讲:徐悦甡).pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)推荐系统(Recommender System).pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)文本分类(Text Classification).pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)课程回顾与复习(主讲:徐悦甡).pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)语义网(Semantic Web).pdf
- 西安电子科技大学:《信息检索》课程教学资源(课件讲稿)文本聚类(Text Clustering).pdf
- 西安电子科技大学:《构件与中间件技术》课程教学资源(课件讲稿)第二部分 Java EE与EJB 2.2 Java Web工程.pdf
- 西安电子科技大学:《构件与中间件技术》课程教学资源(课件讲稿)第一部分 软件构件与中间件(主讲:徐悦甡).pdf
- 西安电子科技大学:计算机软件开发模式和工具与标准发展历程(主讲:徐悦甡).pdf
- 上海海洋大学:信息学院各专业课程教学大纲(汇编).pdf
- 南京农业大学:《数据库系统原理》课程教学大纲.pdf
- 南京农业大学:《数据结构实验》课程教学大纲.pdf
- 南京农业大学:《数据库系统原理实验》课程教学大纲.pdf
- 南京农业大学:《面向对象程序设计实验》课程教学大纲.pdf
- 南京农业大学:《软件工程》课程教学大纲.pdf
- 南京农业大学:《Web 应用系统开发》课程教学大纲.pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)Java并发程序设计(并行程序设计基础与样例).pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)Java并发与并行程序设计.pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)Python并发与并行程序设计(语言基础部分).pdf
- 西安电子科技大学:《并行计算》课程教学资源(课件讲稿)Python并发编程部分(Python并发程序设计).pdf
- 西安电子科技大学:《数据通信与计算机网络》课程教学资源(PPT课件)HDLC帧结构——高级数据链路控制协议(帧结构).pptx
- 西安电子科技大学:《数据通信与计算机网络》课程教学资源(PPT课件)数字数据通信技术——异步与同步传输.pptx
- 西安电子科技大学:《信息检索》课程教学资源(讲义)文本挖掘中的概率图模型、矩阵方法与变量求解.pdf
- 《机器学习》课程教学资源(讲稿)Academic Paper Writing for Starters.pdf
- 《机器学习》课程教学资源(讲稿)The Structure of an Academic Paper in CS(for Starters).pdf
- 《机器学习》课程教学资源(讲稿)推荐系统入门——任务、特征与方法概述(Recommender System).pdf
- 《机器学习》课程教学资源(讲稿)自然语言理解、主题建模与基于NN的语言生成 Natural Language Processing, Topic Modeling and Neural Text Generation.pdf
- 《机器学习》课程教学资源(讲稿)基于上下文的服务推荐 Context-Aware Service Recommendation.pdf
- 《机器学习》课程教学资源(讲稿)对(文本)聚类中一些问题的讨论(Thinking in Clustering).pdf
- 《机器学习》课程教学资源(讲稿)主题模型与层次主题模型(Topic Model and Hierarchical Topic Model).pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第1章 计算机系统基础.pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第3章 文字处理软件Word 2010.pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第2章 操作系统基础.pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第4章 电子表格处理软件Excel 2010.pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第5章 演示文稿制作软件PowerPoint 2010.pdf
- 长沙理工大学:《大学计算机基础》课程教学资源(课件讲稿)第6章 计算机网络基础.pdf