哈工大并行计算课件第二章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工大并行计算课件第二章.ppt

哈尔滨工业大学计算机科学与技术学院 第2章 并行编程基础 ?1 并行编程综述 ?2 进程任务和线程 ?3 并行性问题 ?4 交互和通信问题 ?1 并行编程综述 并行编程处于令人遗憾的状况: 并行软件开发远落后于并行硬件的进展。缺少合适的并行软件是阻碍主流用户接纳并行计算的主要原因。 与顺序计算相比,当今的并行系统软件和应用软件不仅数量很少,而且功能性也相当原始。 隧道之末总有阳光。 一、并行编程缘何艰难 在并行编程中有许多不同的模型。是一个更复杂的智力活动。 并行程序的环境要比串行程序落后得多。 分为4个小问题来介绍 1.顺序编程 长期以来已建立了许多算法范例 能指导用户从事算法设计。 2.并行编程 并行编程处于初级阶段; 对于并行问题的应用,不太可能有一个现成的并行代码; 并行代码的机器不同。 并行编程也不支持成熟、通用和稳定的工具; 并行算法范例仍未能被很好地理解或被广泛地接受; 不存在单一、通用的机器模型; 与顺序语言在编程或自然模型级上相比,缺少代可扩展和异构可扩展的能力 这些并行语言大多数在当前系统上使用的并行语言均是Fortran或C的某种扩展。 一个编程模型即是程序员在开发一个并行程序时所见到和使用的模型。 自然模型的定义: 是由一个特定并行计算机平台所提供的、用户可见的最低层的编程模型。其他的编程模型可在此自然模型上加以实现。 例如,在一个SGI PowerChallenge计算机上(它是SMP), 自然模型为共享变量模型(如SGIPowerC)。 数据并行(如HPF)和消息传送(如MPl)可在其顶部实现。 3.并行编程进展 较为悲观,但在并行编程领域已有了许多进步: 已开发了许多并行算法 尽管大多数算法基于非现实的PRAM模型,但其中某些在作适当修正后可以实用。 已涌现一小批简单的并行算法范例,且已逐步为用户所接受 底层:自然模型正集中趋向于两种模型: 适用于PVP、SMP和DSM的单地址空间的共享变量模型; 适用于MPP和机群的多地址空间的消息传递模型。 其他模型专用化、小量化。 高层并行编程模型 共有4种标准模型: 数据并行(如HPF)、 消息传递(如HPVM和MPl) 共享变量(如HANSI X3H5)。 蕴式 用户只需编写顺序程序,其中的蕴式并行性由并行化编译器(如Kap)进行析取。 4.吞吐率处理 顺序程序并行系统(SPPS)模型,也称为吞吐率处理 在一个问题的处理上,并行少,串行多 一个并行系统能够提高处理速度,又能增加独立顺序作业的处理,提高系统的吞吐率 二、并行编程环境 1. 一个典型的并行处理系统 如图所示的结构 无论是算法还是源代码均需显式地并行化。 编译器将源代码翻译成二进制代码在并行平台上运行, 该平台包含操作系统和在它之下的并行计算机硬件。 任何编程语言均有运行时间支持系统 与用户代码连接的程序。 2.环境工具 一个环境工具是指任何硬件和软件的实用程序,以帮助用户程序的开发和执行。 环境工具是那些通常与操作系统或程序设计语言无关的工具集 作业管理工具 调试工具 性能工具 作业管理工具 包括网络排队系统(NQS)和负载共享工具(LSF) 调试工具 性能工具 它们用来监控用户应用程序以识别性能瓶颈之所在。 三、并行编程方法 目前在实际的并行计算机中广泛使用的并行编程模型有4种: 蕴式; 数据并行; 消息传递; 共享变量。 主要有三种扩展方法: 新语言构造 库子程序 编译器命令 1.新语言构造 扩展程序设计语言使其具有某些新构造,以支持并行化和交互。例如Fortran 90中密集数据操作。 这种模型对应的是数据并行模型 数据并行模型 可以在SIMD计算机上实现,着重开发指令级细粒度的并行性 也可以在SPMD计算机上实现,这取决于粒度大小。着重开发子程序级中粒度的并行性。 可以重新编译用于MIMD结构 其思想是开发一个源到源的预编译器来实现程序之间的转换 结论:这种模型既适用于同步的SIMD计算机,也适用于紧耦合的MIMD计算机 示例: 用一段简单代码来说明该方法: 串行代码段 for ( i = 0; i N; i ++ ) A[i] = b[i] * b[i+1]; for(i=0;iN;i++) c[i]=A[i]+A[i+1]; Fortran90中使用数组操作的等效代码 my-processid(), number_of_processes(), and barrier() A(0:N-1) = b(0:N-1) * b(1:N) c = A(0:N-1) + A(1:N) 关于通信和同步 数据并行程序设计强调的是局部计算和数据选路操作,它比较适合于使用规则网络、模板和多维信号及图像数据集来求解细粒度的应用问题。 数据并行操作的同步是在编译

文档评论(0)

2837587390 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档