十二、并行程序设计基础.

Slides:



Advertisements
Similar presentations
Multicore Programming Final Review. Outline Intro to Parallelism and Concurrency Parallel Programming – Algorithms and Analysis Concurrent Programming.
Advertisements

完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
渡黑水溝 郁永河. 2 戎克船:是明末清初時期往返兩岸的主要交通工具 ∗ 1. 關於台灣的開發歷史,我們到底了解多少呢?不妨試著說出 就我們所知有關台灣開發史的故事、小說、電影、音樂與大 家分享。 ∗ 2. 什麼是黑水溝?黑水溝為什麼會成為大陸移民渡海來臺時最 大的威脅? ∗ 3. 有聽過「六死三留一回頭」、「有唐山公,無唐山嬤」這兩.
S.1 封面 S.2 目錄 S.3 個案一 S.4 個案二 S.5 感想 S.6 社會的行動 S.7 政府的行動 S.8 活到老 學到老 S.9 總結 S.10 老?!
C enter of C omputational C hemistry 并行计算机与并行计算 张鑫 理论与计算化学国际合作研究中心 分子反应动力学国家重点实验室.
五年制精神医学本科生培养方案 刘哲宁 教授. 专业简介  精神医学是临床医学的一个重要分支,它是研究人 类精神活动的规律、防治精神疾病的一门重要学科。  掌握健康与疾病的概念。
青蘋果的代價 參考資料 : 國中性教育教學輔助媒體 (Power Point) 教師手冊. 影片欣賞 -- 愛的晚霞 單純的阿霞人生第一次的愛情,卻是帶來身心嚴重 的傷害,阿霞要如何面對感染愛滋後的生活 …
揭日本人让人理解不了的20件事 今天先来看看日本人的自我剖析︰日本人的20个“为什么”?这“20个为什么”的内容来源于日本影视名人北野武所主持的一个节目。虽然不是网友来信中提出过的问题,但看看日本人自己对自己的分析,是挺有意思的。而且,仔细看看下面这“日本人的20个为什么”,会发现其实有些东西对于中国人来说并不陌生。毕竟汉字圈里的文化,是有共融之处的。
天津1班面试专项练习1 综合分析现象类 主讲:凌宇 时间:5月21日 19:00—22:00.
第一章 多核概述 使用多核了吗? 摩尔定律——芯片的晶体管数量每一年半左右增长一倍。 处理器性能不断提高主要基于两个原因:
45天备考指南 2013年下半年国考资格证笔试系列讲座(2) 华图教师事业部 石杨平.
赵永华 中科院计算机网络信息中心 超级计算中心
§2 线性空间的定义与简单性质 主要内容 引例 线性空间的定义 线性空间的简单性质 目录 下页 返回 结束.
小組課業 電腦在教學上的應用 Power Point 導師: 黎耀志先生.
关于“人肉搜索”的滥用及其所引发的 “网络暴力”的道德与法律思考
订单合并拆分功能详解 荷叶.
优质护理的指导思想  以科学发展观为指导,贯彻落实《2011年公立医院改革试点工作安排》关于“推广优质护理服务”的部署和要求,结合全国卫生系统创先争优活动和“服务好、质量好、医德好,群众满意”的“三好一满意”活动,深化“以病人为中心”的服务理念,紧紧围绕“改革护理模式,履行护理职责,提供优质服务,提高护理水平”的工作宗旨,充分调动临床一线广大护士工作的积极性,按照《医院实施优质护理服务工作标准(试行)》,为人民群众提供全程、全面、优质的护理服务,保障医疗安全,改善患者体验,促进医患和谐。
责任 感恩 安全 开学第一课 广西柳州市柳东新区雒容镇盘古小学王秀娅 QQ:
307暑假作業 自選部份,各項的範例!.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
国王赏麦的故事.
2014政法干警备考平台 2014政法干警考试群⑨ 中公教育政法干警考试 ——微博 中公教育政法干警考试
来自日语教指委的问候 感谢与敬意: 外教社 与会的各位专家学者 会务组的老师与同学. “核心课程+”的多样性日语人才培养模式的构建 --日语专业教学改革的几点思考 天津外国语大学 修刚 第四届全国高校日语专业院长/系主任高级论坛 2016年5月20日 天津.
家庭與婚姻 組員名單:鄭會成(2) 吳天雄(7) 鄭曉娜(10) 黃海瑩(34) 葉頌秋(41).
如何开好通表会 荔湾区教育局第二期学生团干培训 2009年9月 1.
敬业与乐业 梁启超.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
数据结构(C语言版) Data Structure
第11章 计算机系统 计算机系统概述 分类方法、计算机系统性能评测方法 2. 微机系统 3. 他体系结构处理机
跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾. 跳楼价 亏本大甩卖 清仓处理 买一送一 5折酬宾.
资料分析 如何攻破最后瓶颈 主讲老师:姚 剑 4月6日20:00 YY频道:
说明文阅读指导 桂林中心学校 语文备课组 2011年4月23日
清仓处理 跳楼价 满200返160 5折酬宾.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
全球暖化 想知道全球暖化的嚴重性嗎? 那就繼續看下去吧!! 組員:陳儀君60524 蘇鈺祺60526 于玉琳60528 林宥嫻60521.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
电话联系.
迎宾员礼仪 包头机电工业职业学校管理系 白琳 1.
大学物理实验 实验十 硅光电池特性的研究.
護理理論期末報告(99上學期) 指導老師:謝春滿 老師 護理系進修部1-3組 第三組
数字系统设计及VHDL实践 专题五 专用集成电路 设计中的并行算法 主 讲 人:徐向民 单 位:电子信息学院.
09学前教育班 魏文珍 自我介绍.
财 务 会 计 第四篇:供应链会计实务 制作人:谌君、熊瑜.
马克思主义基本原理概论 第三章 人类社会及其发展规律.
A1 “奔腾少年” 学校生活 本刊第001期 本刊共 28 版 出版人:刘雨清 2014年6月1日 星期日 五月初四 甲午年 己巳月 癸卯日.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
MPI并行程序设计简介 曙光信息产业(北京)有限公司 2018年11月.
并行计算实验上机 国家高性能计算中心(合肥).
并行算法实践.
CHAPTER 6 認識MapReduce.
第四讲 MPI并行程序设计 课程网站:CourseGrading buaa.edu.cn 主讲教师: 赵长海
经典同步问题.
并行计算.
基于MPI的并行程序设计 王振海 西北工业大学理学院 西北工业大学高性能计算研究与发展中心 2018/11/28.
Chapter 3 行程觀念 (Process Concept)
西师大版语文五年级上册第七单元 心田上的百合花.
李元金 计算机与信息工程学院 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 1/
基督教 宣道會 南港堂 主日服事注意要項 ◆ 聚會程序與時間 ◆ 講員 ◆ 領會同工 ◆ 領敬拜同工 ◆ 司琴同工 ◆ 放投影片同工
计算机系统结构 第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统** 第五章 标量处理机 第六章 向量处理机
給你講一個故事 ﹕ 獻給所有未婚,將要結婚,和已婚的好朋友!!
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
OpenMP程序设计 2019/4/25.
组合逻辑电路 ——中规模组合逻辑集成电路.
吸毒的禍害 華德學校 5A 陳家韻 (3).
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
山清水秀的林芝 yy 曾元一
數學遊戲二 大象轉彎.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
手机淘宝“变形”产品—微淘 操作流程指南 (内测版).
Presentation transcript:

十二、并行程序设计基础

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

并行程序设计概述 并行程序设计难的原因 并行语言的构造方法 并行性问题 交互/通信问题 五种并行编程风范 计算圆周率的样本程序 国家高性能计算中心(合肥) 2019/2/22

1 并行程序设计难的原因 技术先行,缺乏理论指导 程序的语法/语义复杂, 需要用户自已处理 任务/数据的划分/分配 数据交换 同步和互斥 性能平衡 并行语言缺乏代可扩展和异构可扩展, 程序移植困难, 重写代码难度太大 环境和工具缺乏较长的生长期, 缺乏代可扩展和异构可扩展 国家高性能计算中心(合肥) 2019/2/22

2 并行语言的构造方法 串行代码段 for ( i= 0; i<N; i++ ) A[i]=b[i]*b[i+1]; for (i= 0; i<N; i++) c[i]=A[i]+A[i+1]; (c) 加编译注释构造并行程序的方法 #pragma parallel #pragma shared(A,b,c) #pragma local(i) { # pragma pfor iterate(i=0;N;1) for (i=0;i<N;i++) A[i]=b[i]*b[i+1]; # pragma synchronize # pragma pfor iterate (i=0; N; 1) for (i=0;i<N;i++)c[i]=A[i]+A[i+1]; } 例子:SGI power C (a) 使用库例程构造并行程序 id=my_process_id(); p=number_of_processes(); for ( i= id; i<N; i=i+p) A[i]=b[i]*b[i+1]; barrier(); for (i= id; i<N; i=i+p) c[i]=A[i]+A[i+1]; 例子: MPI,PVM, Pthreads (b) 扩展串行语言 my_process_id,number_of_processes(), and barrier() A(0:N-1)=b(0:N-1)*b(1:N) c=A(0:N-1)+A(1:N) 例子: Fortran 90 国家高性能计算中心(合肥) 2019/2/22

2 并行语言的构造方法 三种并行语言构造方法比较 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 3.1 进程的同构性 SIMD: 所有进程在同一时间执行相同的指令 MIMD:各个进程在同一时间可以执行不同的指令 2019/2/22 3 并行性问题 3.1 进程的同构性 SIMD: 所有进程在同一时间执行相同的指令 MIMD:各个进程在同一时间可以执行不同的指令 SPMD: 各个进程是同构的,多个进程对不同的数据执行相同的代码(一般是数据并行的同义语) 常对应并行循环,数据并行结构,单代码 MPMD:各个进程是异构的, 多个进程执行不同的代码(一般是任务并行,或功能并行,或控制并行的同义语) 常对应并行块,多代码 要为有1000个处理器的计算机编写一个完全异构的并行程序是很困难的 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 进程的同构性 并行块 parbegin S1 S2 S3 …….Sn parend 2019/2/22 进程的同构性 3 并行性问题 并行块 parbegin S1 S2 S3 …….Sn parend S1 S2 S3 …….Sn可以是不同的代码 并行循环: 当并行块中所有进程共享相同代码时 S1 S2 S3 …….Sn是相同代码 简化为 parfor (i=1; i<=n, i++) S(i) 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 进程的同构性 SPMD程序的构造方法 用单代码方法说明SPMD 用数据并行程序的构造方法 要说明以下SPMD程序: 3 并行性问题 SPMD程序的构造方法 用单代码方法说明SPMD 要说明以下SPMD程序: parfor (i=0; i<=N, i++) foo(i) 用户需写一个以下程序: pid=my_process_id(); numproc=number_of _processes(); parfor (i=pid; i<=N, i=i+numproc) foo(i) 此程序经编译后生成可执行程序A, 用shell脚本将它加载到N个处理结点上: run A –numnodes N 用数据并行程序的构造方法 要说明以下SPMD程序: parfor (i=0; i<=N, i++) { C[i]=A[i]+B[i]; } 用户可用一条数据赋值语句: C=A+B 或 forall (i=1,N) C[i]=A[i]+B[i] 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 进程的同构性 MPMD程序的构造方法 用多代码方法说明MPMD S1, S2和S3是顺序语言程序加上进行交互的库调用. 2019/2/22 进程的同构性 3 并行性问题 MPMD程序的构造方法 用多代码方法说明MPMD 对不提供并行块或并行循环的语言 要说明以下MPMD程序: parbegin S1 S2 S3 parend 用户需写3个程序, 分别编译生成3个可执行程序S1 S2 S3, 用shell脚本将它们加载到3个处理结点上: run S1 on node1 run S2 on node1 run S3 on node1 S1, S2和S3是顺序语言程序加上进行交互的库调用. 用SPMD伪造MPMD 要说明以下MPMD程序: parbegin S1 S2 S3 parend 可以用以下SPMD程序: parfor (i=0; i<3, i++) { if (i=0) S1 if (i=1) S2 if (i=2) S3 } 因此, 对于可扩展并行机来说, 只要支持SPMD就足够了 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 3.2 静态和动态并行性 程序的结构: 由它的组成部分构成程序的方法 3 并行性问题 3.2 静态和动态并行性 程序的结构: 由它的组成部分构成程序的方法 静态并行性: 程序的结构以及进程的个数在运行之前(如编译时, 连接时或加载时)就可确定, 就认为该程序具有静态并行性. 动态并行性: 否则就认为该程序具有动态并行性. 即意味着进程要在运行时创建和终止 静态并行性的例子: parbegin P, Q, R parend 其中P,Q,R是静态的 动态并行性的例子: while (C>0) begin fork (foo(C)); C:=boo(C); end 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 静态和动态并行性 开发动态并行性的一般方法: Fork/Join Process A: begin Z:=1 3 并行性问题 开发动态并行性的一般方法: Fork/Join Process A: begin Z:=1 fork(B); T:=foo(3); end Process B: begin fork(C); X:=foo(Z); join(C); output(X+Y); end Process C: begin Y:=foo(Z); end Fork: 派生一个子进程 Join: 强制父进程等待子进程 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 3.3 进程编组 目的:支持进程间的交互,常把需要交互的进程调度在同一组中 3 并行性问题 3.3 进程编组 目的:支持进程间的交互,常把需要交互的进程调度在同一组中 一个进程组成员由:组标识符+ 成员序号 唯一确定. 3.4 划分与分配 原则: 使系统大部分时间忙于计算, 而不是闲置或忙于交互; 同时不牺牲并行性(度). 划分: 切割数据和工作负载 分配:将划分好的数据和工作负载映射到计算结点(处理器)上 分配方式 显式分配: 由用户指定数据和负载如何加载 隐式分配:由编译器和运行时支持系统决定 就近分配原则:进程所需的数据靠近使用它的进程代码 国家高性能计算中心(合肥) 2019/2/22

3 并行性问题 并行度(Degree of Parallelism, DOP):同时执行的分进程数. 3 并行性问题 并行度(Degree of Parallelism, DOP):同时执行的分进程数. 并行粒度(Granularity): 两次并行或交互操作之间所执行的计算负载. 指令级并行 块级并行 进程级并行 任务级并行 并行度与并行粒度大小常互为倒数: 增大粒度会减小并行度. 增加并行度会增加系统(同步)开销 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 交互:进程间的相互影响 4.1 交互的类型 通信:两个或多个进程间传送数的操作 通信方式: 共享变量 4 交互/通信问题 交互:进程间的相互影响 4.1 交互的类型 通信:两个或多个进程间传送数的操作 通信方式: 共享变量 父进程传给子进程(参数传递方式) 消息传递 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 同步:导致进程间相互等待或继续执行的操作 同步方式: 原子同步 控制同步(路障,临界区) 例子: 原子同步 parfor (i:=1; i<n; i++) { atomic{x:=x+1; y:=y-1} } 路障同步 parfor(i:=1; i<n; i++){ Pi barrier Qi 临界区 critical{x:=x+1; y:=y+1} 数据同步(信号量同步) lock(S); x:=x+1; y:=y-1; unlock(S) 4 交互/通信问题 同步:导致进程间相互等待或继续执行的操作 同步方式: 原子同步 控制同步(路障,临界区) 数据同步(锁,条件临界区,监控程序,事件) 国家高性能计算中心(合肥) 2019/2/22

交互的类型 4 交互/通信问题 聚集(aggregation):用一串超步将各分进程计算所得的部分结果合并为一个完整的结果, 每个超步包含一个短的计算和一个简单的通信或/和同步. 聚集方式: 归约 扫描 例子: 计算两个向量的内积 parfor(i:=1; i<n; i++){ X[i]:=A[i]*B[i] inner_product:=aggregate_sum(X[i]); } 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 4.2 交互的方式 相对于交互代码C,可对进程P定义如下状态: 同步的交互: 所有参与者同时到达并执行交互代码C … P1 P2 Pn 同步的交互: 所有参与者同时到达并执行交互代码C 异步的交互: 进程到达C后, 不必等待其它进程到达即可执行C 相对于交互代码C,可对进程P定义如下状态: 到达(arrived): P刚到达C,但还未进入 在内(in): P在代码中 完成(finished):P刚完成执行代码C,但还未离开 在外(out): P不在代码中(未到达或已离开) 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 交互方式与入口/出口条件的组合 锁定的发送: 消息已发完, 但不一定已收到 锁定的接收: 消息已收到 非锁定的发/收: 只是发出发/收的请求 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 4.3 交互的模式 按交互模式是否能在编译时确定分为: 静态的 动态的 按有多少发送者和接收者参与通信分为 4 交互/通信问题 4.3 交互的模式 按交互模式是否能在编译时确定分为: 静态的 动态的 按有多少发送者和接收者参与通信分为 一对一:点到点(point to point) 一对多:广播(broadcast),播撒(scatter) 多对一:收集(gather), 归约(reduce) 多对多:全交换(Tatal Exchange), 扫描(scan) , 置换/移位(permutation/shift) 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 1 3 5 P1 P2 P3 5,1 1 3 5 P1 P2 P3 1,1 3,1 5,1 (a) 点对点(一对一): P1发送一个值给P3 (b) 广播(一对多): P1发送一个值给全体 1,3,5 P1 P2 P3 3 5 1 3 5 P1 P2 P3 1,3,5 (c) 播撒(一对多): P1向每个结点发送一个值 (d) 收集(多对一): P1从每个结点接收一个值 国家高性能计算中心(合肥) 2019/2/22

4 交互/通信问题 1 3 5 P1 P2 P3 1,5 3,1 5,3 1,2,3 4,5,6 7,8,9 1,4,7 2,5,8 3,6,9 1,1 3,4 5,9 1,9 (e) 全交换(多对多): 每个结点向每个结点发送一个不同的消息 (f) 移位(置换, 多对多): 每个结点向下一个结点发送一个值并接收来自上一个结点的一个值. (g) 归约(多对一): P1得到和1+3+5=9 (h) 扫描(多对多): P1得到1, P2得到1+3=4, P3得到1+3+5=9 国家高性能计算中心(合肥) 2019/2/22

5 五种并行编程风范 相并行(Phase Parallel) 分治并行(Divide and Conquer Parallel) 流水线并行(Pipeline Parallel) 主从并行(Master-Slave Parallel) 工作池并行(Work Pool Parallel) 国家高性能计算中心(合肥) 2019/2/22

Synchronous Interaction 相并行(Phase Parallel) 一组超级步(相) 步内各自计算 步间通信、同步 BSP(4.2.3) 方便差错和性能分析 计算和通信不能重叠 C Synchronous Interaction ...... 国家高性能计算中心(合肥) 2019/2/22

主-从并行(Master-Slave Parallel) 主进程:串行、协调任务 子进程:计算子任务 划分设计技术( 6.1) 与相并行结合 主进程易成为瓶颈 Master Slave 国家高性能计算中心(合肥) 2019/2/22

分治并行(Divide and Conquer Parallel) 父进程把负载分割并指派给子进程 递归 重点在于归并 分治设计技术(6.2) 难以负载平衡 国家高性能计算中心(合肥) 2019/2/22

流水线并行(Pipeline Parallel) 一组进程 流水线作业 流水线设计技术(6.5) P1 P2 P3 国家高性能计算中心(合肥) 2019/2/22

工作池并行(Work Pool Parallel) 初始状态:一件工作 进程从池中取任务执行 可产生新任务放回池中 直至任务池为空 易与负载平衡 临界区问题(尤其消息传递) Work Pool P1 P2 P3 国家高性能计算中心(合肥) 2019/2/22

8 计算圆周率的样本程序 国家高性能计算中心(合肥) 2019/2/22

计算圆周率的c语言代码段 double local, pi = 0.0, w; long i; w=1.0/N; #define N 1000000 main() { double local, pi = 0.0, w; long i; w=1.0/N; for (i = 0; i<N; i ++) { local = (i + 0.5)*w; pi = pi + 4.0/(1.0+local * local); } printf(“pi is %f \n”, pi *w); 国家高性能计算中心(合肥) 2019/2/22

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

进程 进程的基本概念 进程的并行执行 进程的相互作用 国家高性能计算中心(合肥) 2019/2/22

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

线程 线程的基本概念 线程的管理 线程的同步 国家高性能计算中心(合肥) 2019/2/22

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

同步 原子和互斥 高级同步结构 低级同步原语 国家高性能计算中心(合肥) 2019/2/22

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

通信 影响通信系统性能的因素 低级通信支持 TCP/IP通信协议组简介 国家高性能计算中心(合肥) 2019/2/22

并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型 国家高性能计算中心(合肥) 2019/2/22

并行程序设计模型 隐式并行模型 数据并行模型 消息传递模型 共享变量模型 国家高性能计算中心(合肥) 2019/2/22

并行程序设计模型 隐式并行(Implicit Parallel) 数据并行(Data Parallel) 共享变量(Shared Variable) 消息传递(Message Passing) 国家高性能计算中心(合肥) 2019/2/22

隐式并行(Implicit Parallel) 概况: 程序员用熟悉的串行语言编程 编译器或运行支持系统自动转化为并行代码 特点: 语义简单 可移植性好 单线程,易于调试和验证正确性 效率很低 国家高性能计算中心(合肥) 2019/2/22

数据并行(Data Parallel) 概况: 特点: SIMD的自然模型 局部计算和数据选路操作 单线程 并行操作于聚合数据结构(数组) 松散同步 单一地址空间 隐式交互作用 显式数据分布 国家高性能计算中心(合肥) 2019/2/22

共享变量(Shared Variable) 概况: PVP, SMP, DSM的自然模型 特点: 多线程:SPMD, MPMD 异步 单一地址空间 显式同步 隐式数据分布 隐式通信 国家高性能计算中心(合肥) 2019/2/22

消息传递(Message Passing) 概况: MPP, COW的自然模型 特点: 多线程 异步 多地址空间 显式同步 显式数据映射和负载分配 显式通信 国家高性能计算中心(合肥) 2019/2/22