- 1、本文档共53页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行编程模型
并行编程模型
共享存储、消息传递
数据并行、其它模型
对并行编程模型的分析
并行编程语言
并行编程模型 1 tang@
编程模型
n 程序员所看到的机器的概念模型
n 汇编(机器)语言程序员看到的:ISA
n 计算模型的具体化,与编程语言互相对应
n 串行机器上的编程模型
n 命令式:Fortran/C/Algol 60/Pascal
n 对象式:Java/C++/Smalltalk/Objective-C
n 说明式:imperative vs. declarative
n 函数式:Backus的FP
n 逻辑式:Clark的PROLOG
n 表处理:MaCarthy的LISP
并行编程模型 2 tang@
并行编程模型
n 需要解决两方面问题
n 任务如何划分:计算的划分、数据的划分
n 各部分如何通信、协作、同步
n 应用模式如何匹配并行机器的通信方式
n 多道程序:程序独立,无通信、同步
n 共享存储:数据不需要划分
n 像BBS :不必控制读、但要控制写,一个写全能读
n 消息传递:点对点通信(邮件、电话)
n 数据并行:像SIMD,全局一致的数据操控
n 底层可以是共享存储,也可以是消息传递
并行编程模型 3 tang@
共享存储编程模型
n 实际共享的是地址空间
n 便于自底向上的工程设计
n 编程优势
n 接口抽象接近串行计算,编程比较容易
n 增加存储器模块就可以增大内存容量
n 增加处理器数量就可以提升计算机性能
n 缩短并行程序执行时间,提高多道程序吞吐率
n 同样可增加I/O控制器和设备数量
并行编程模型 4 tang@
典型的共享存储机器
n 大型系统(巨型机)
n 用交开关连接
n 带宽与处理器数成正比
n 实现代价高
n 多级开关可降成本
n 小型系统(服务器)
n 用总线连接(SMP)
n 延迟大于单处理机
n 总线成为瓶颈
n 关键在于cache
并行编程模型 5 tang@
共享物理存储器
n 任一处理器可访问任一存储器位置
n 任一I/O处理器亦可访问任一存储器位置
n 操作系统(OS)可运行在任一处理器上
n 或所有处理器上
n OS通过共享存储器来进行协同
n 通信是隐含在访存(取数、存数)中的
n 以上都只是系统层面
n 用户程序、进程怎么办?
并行编程模型 6 tang@
共享虚地址空间
n 进程=地址空间+控制线程
n 建立虚实映射,让进程共享部分地址空间
n 用户态、核心态;多个进程
n 同一地址空间内的多个控制线程
文档评论(0)