09-第九章-并行程序的调试-并行计算实践(共11章).pptVIP

09-第九章-并行程序的调试-并行计算实践(共11章).ppt

  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文档。上传文档
查看更多
09-第九章-并行程序的调试-并行计算实践(共11章)

并 行 计 算 中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2003年9月 并行调试的方法与步骤 并行调试的困难 : 不确定性 :并行程序在运行当中语句的执行次序是不确定的,这种不确定性意味着相同的程序输入在不同的执行中并不一定产生相同的输出 . 引起并行程序运行不确定性的原因 :①共享变量竞争 ②消息传递竞争 ③动态进程调度 ④不确定的系统调用 探针效应 :调试工具的引入,可能掩盖被调试程序中的时序错误 并行调试的方法与步骤 并行调试的方法 : 1. 重放:重放(Replay)的提出是为了解决并行程序的不确定性,从而使循环调试能有效地为并行调试服务。在程序运行中可以对相关的消息传递进行记录,以便在重放时利用这些信息来控制同步通信,保证循环调试的有效性。 重放实现中应当注意探针效应。 2. 断点调试: 断点的类型: ①基于控制流的断点 :同串行调试的断点类似 ②基于事件的断点:当发生异常或用户定义的事件时断点生效 ③基于谓词的断点 :当某个条件表达式成立时断点生效 ④全局断点 :当一定的条件成立时中断所有的并行任务的执行 并行调试的方法与步骤 并行调试的步骤 ①算法正确性检查:保证并行处理本身在算法层次上的正确无误,如果所采用的并行算法是由串行算法改写而成的,则应当首先保证该串行算法的正确性。 ②边界运行调试:通常取处理器数目为一的最简单情形进行测试,以排除一些简单的错误,确保剩下的错误多数只与多处理器情形下的协调通信相关。 ③联合调试:需要小规模的并行环境,通常可先测试两个处理器下的程序运行,排除错误。 ④可扩展性调试:即在算法和程序允许的范围内逐步增大处理器数目进行调试。 步骤①通常由人工完成,步骤②通常可借助于串行调试工具进行,一般意义上说的并行调试往往指的是步骤③和④ 并行调试器的设计与实现 并行调试的步骤: 大体上可以划分为以下步骤: ①前期设计阶段:包括总体分析、编码语言选择、通信方式选择、模块分析 ②初步实现阶段 :可以看作螺旋式开放方式的第一个实现周期,完成最简单的可运行版本 ③功能开发阶段:在前面的基础上进行完善,实现所需要的功能 ④维护阶段:在实现完成以后对调试器的运行进行跟踪维护,纠正错误,结合技术的发展进一步完善其功能 并行调试器的设计与实现---------前期设计 总体分析 可行性分析主要考虑的因素 : ①经济 :指软件的成本开销; ②技术:即当前并行调试技术的发展情况; ③人力:开发人员的数量与质量。 需求分析的难点: ①客户说不清需求; ②需求本身经常变化; ③分析人员或客户理解有误。 并行调试器的设计与实现---------前期设计 编码语言选择 并行调试器的设计与实现---------前期设计 通信方式选择 通信包括两方面: ①各个处理节点之间的运行通信,这种通信采用的方式是系统设计好的 ②远程用户与主机的通信,这里的通信方式是调试器设计要考虑的 并行调试器的设计与实现---------前期设计 模块分析 在总体分析的基础上进行详细的模块分析,绘制详细的模块流程图。由于并行调试器本身较为复杂,一般情况下应当考虑采用面向对象的软件开发方法。 使用面向对象的开发方法要注意: ①信息隐藏:充分利用类的私有属性,对信息进行必要的隐藏; ②内聚与耦合:利用类本身良好的模块性,恰当的设计类库,增强模块内的内聚,减少模块间的耦合; ③封闭与开放性:封闭性指模块能被重用,开放性指模块的功能能被扩充。 并行调试器的设计与实现---------初步实现 服务器端搭建 服务器端一般应当由一个守护进程配合多个底层调试器。 并行调试器的设计与实现---------初步实现 通信搭建 首先要从详细设计中挑选出最基本的函数,这些函数保证我们的初步版本能够运行起来;然后实现这些函数,完成搭建工作。 最基本的函数包括: ①数据包装函数:对各种类型数据进行打包,对面向对象设计还要考虑类的包装; ②远程调用函数:支持客户端对服务器端的调用,如启动守护进程,设置环境变量; ③I/O处理函数:支持客户端对服务器端任务的I/O获取,如获取特定的底层调试器的I/O。 并行调试器的设计与实现---------初步实现 客户端搭建 客

文档评论(0)

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

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

1亿VIP精品文档

相关文档