维普资讯 http://www.cqvip.com 第28卷第11期 计算机工程与设计 2007年6月 VO1.28 NO.11 Computer Engineering and Design June 2007 基于并行结构骨架的程序设计环境研究与实现 孙敏, 孙济洲, 于策 (天津大学计算机科学与技术系,天津300072) 摘要:并行结构骨架理论提供了一种描述并行程序设计模式的通用模型,对设计模式进行更高层次的抽象,能有效解决基 于设计模式的并行程序设计方法的局限性问题,降低并行程序设计开发难度。基于并行结构骨架的并行程序设计环境—— PASBPE在并行结构骨架理论的基础上,使用参数化设置快速生成用户所需并行程序框架,同时通过可视化的程序设计交互 环境,简化并行程序的开发过程,提高开发效率。 关键词:并行结构骨架;并行程序;程序设计;代码自动生成;开发环境 中图法分类号:TP311 文献标识码:A 文章编号:1000—7024(2007)11-2513—03 Research and implementation of parallel architectural skeleton based parallel programming environment SUN Min, SUN Ji—zhou,YU Ce (Department of Computer Science and Technology,Tianjin University,Tianjin 300072,China) Abstract:Parallel architectural skeleton theory proposes a genetic model for describing parallel design patterns.The generic model can provide a high—level abstraction ofparallel design models nad address most ofthe shortcomings ofdesing paaem based parallel program— ming method.Also hte complication ofparallel programming is decreased.The parallel architectural skeleton based parallel programming environment PASBPE is based on the theory of parallel architectural skeleton.The different set of parameter values is used to generate framework ofa parallel program for users.The visual program development environment make parallel programming easier nad improve hte development efifciency. Key words:parallel rachitectural skeleton;parallel program;program desing;code automatic generation;programming environment O 引 言 决了基于设计模式的程序设计开发方法的局限性问题。本文 提出了一个基于并行结构骨架的并行程序设计环境叫AS. 随着各行业计算量增大及计算复杂度的增加,许多应用 BPE(parallel architectural skeleton based programming environ. 对计算能力及计算速度的需求大幅增加,应用程序的并行处 ment),在并行结构骨架理论的基础上,利用系统并行结构骨架 理是提高计算效率的有效途径。但并行应用程序的设计和开 库,根据用户设置自动生成并行程序框架,以期简化并行程序 发过程比较复杂,其复杂性制约着并行应用的普及与推广。 的开发过程,提高开发效率。 传统的并行程序开发过程中,开发人员需与复杂的并行计算 环境进行交互,需要选择特定的体系结构以及特定的并行语 1并行结构骨架模型 言,这导致并行程序的开发工作量以及工作难度都有所增加, D.Goswami等提出的并行结构骨架 理论旨在解决基于 降低了工作效率。高效地在并行计算环境中进行并行程序的 设计模式的并行程序设计方法中遇到的适应性、扩展性等问 设计与开发,并简化程序开发过程是目前并行程序设计领域 题。基于设计模式的程序设计使开发人员可以方便地复用成 所面临的关键的问题。将设计模式 、算法骨架 运用到并行 功的设计和体系结构。但是任何一种设计模式都是对~类问 程序设计过程中是国内外学者在降低并行程序设计难度,结 题和解决方案的描述,目前尚没有一种通用的或规范的模式 构化并行程序设计框架方面所做的努力。但是基于设计模式 可用,影响了基于设计模式的程序设计方法的可用性和通用 和算法骨架 的开发方式存在可用性、通用性差的问题。并行 性。统一通用并行程序设计模型的缺乏,使得并行程序的开 结构骨架 的提出是并行程序设计方法的一个突破,它是在设 发与使用受到了很大的,并行体系结构的多样化导致目 计模式思想基础上发展起来的进行并行程序设计的方法,解 前并行程序的设计方式都是针对于特定的体系结构,相同的 收稿日期:2006-05-09 E-marl:sunmin china@yahoo.com.cn 基金项目:国家自然科学基金项目(60373061)。 作者简介:孙敏(1982一),女,湖南邵阳人,硕士研究生,研究方向为并行程序设计方法及支撑平台的研究、数据网格; 孙济洲(1949一),男 教授,博士生导师,研究方向为大规模并行计算、网络安全等: 于策(1979一),男,讲师,研究方向为分布式并行处理。 一2513— 维普资讯 http://www.cqvip.com 并行应用很难在不同并行体系结构间进行移植,这也会降低 并行程序的开发效率。 可扩展插件体系结构的使用使得系统有很明显的优势。 各个功能部件以插件的方式集成到系统中,有利于系统功能结 构的划分。各功能插件问相互,新功能模块的增加只需开 发相应的功能插件并集成到系统中即可,这种方式使得系统具 有良好的扩展性,同时也有利于功能部件在不同系统上的移植。 并行结构骨架模型描述了并行设计模式的通用的模型, 以定义模式的属性集的方法来描述相应模式的特征和行为, 描述模式的通用属性,将多种设计模式进行再次的封装,并提 供程序框架。其目标是实现一个不面向任何特定并行应用的 骨架。在具体应用上,该模型为描述和实现一个设计模式提 供了标准的方法。对模型中的每一个模式能进行了充分的参 数化,以适应不同并行应用的结构和行为,这种通用性设计在 很大程度上能简化并行程序的设计。同时并行结构骨架提供 2.2系统关键组件及实现 PASBPE设计了一系列插件组件对动态实现并行程序代 码框架、并行代码的组织优化、可用计算资源的管理以及编译 部署等功能进行支持。系统主要包括以下组件: 并行结构骨架库插件:实现对系统支持的各类并行结构 骨架的管理。该骨架库对已有并行计算程序设计模式进行形 给程序设计者一个高层次的抽象,封装了所有对并行应用具 体实现的底层细节,所生成的并行骨架并不依赖于任何特定 的并行体系结构或并行计算环境,使得并行骨架于体系 结构,有利于并行应用在不同计算环境间的移植与复用。 2 PASBPE系统设计与实现 PASBPE系统基于并行结构骨架理论,为程序设计开发人 员提供一个可视化并行程序设计环境。通过与并行结构骨架 理论的结合,将结构骨架参数化自动生成程序代码框架,有利 于降低设计开发并行计算应用程序的难度,缩短设计与开发 周期。同时结构骨架库保证了完成的并行程序结构更为合理, 性能更为优化。 2.1系统架构 PASBPE采用基于Eclipse 架构的插件体系结构,PASBPE 系统体系结构如图1所示。 用户界面 :行计算l源管理r Eclipse平台 ]骨架罔 l并行结 I中昏 行部任署JI 口4慈SWT f I ̄i J鬈耋 l『 围囤 一代码编 平台运行时 l及优制 并行计算硬件环境 图1 PASBPE系统体系结构 如图l所示,系统所支持的各种功能组件均以插件形式 集成到整个框架中,可扩展插件体系结构可动态地加载卸载 这些插件组件。系统如需添加新的功能组件,PASBPE利用插 件机制在插件文件中对需要添加的插件进行定义声明,扩展 公用组件框架类,将新增功能组件插入集成到整个系统中。在 该体系结构中Eclipse为PASBPE提供运行环境,以及PASBPE 所需的底层插件支持,包括插件的动态运载以及与其它插件 的集成。由Eclipse平台运行时检查各插件组件的安装,并创 建关于PASBPE的注册表信息。PASBPE系统借助Team组件 提供PASBPE开发过程中的版本控制和配置管理支持。借助 工作区来实现对开发人员所创建的工程项目、文件以及其它 资源的管理。由工作台对开发人员提供用户界面,为用户提 供了专门针对并行程序开发的透视图,其中包含针对并行程 序开发所需的特定视图,方便用户进行并行程序的开发。 一25l4一 式化描述,并进~步分析与评价,依据分析评价结果分类存储 针对不同并行应用的结构骨架,为用户提供结构骨架来源。同 时用户可根据需要对结构骨架库中的骨架进行添加及修改。 框架代码生成插件:基于并行结构骨架库将并行程序设 计复杂化的因素进程间通信、数据交换、并行任务部署及执行 等过程进行封装,为程序设计人员提供并行程序代码框架。在 具体实现过程中,开发人员以选择参数的形式描述自己应用 程序的总体结构与拓扑通信特性,该组件会自动生成代码的 框架。开发人员只需要致力于并行应用具体算法的编写和进 程问通信逻辑的判定,不必考虑通信等并行计算方法的底层 实现方式。这种方式能有效简化并行程序开发过程。 代码编辑及优化插件:对结构骨架生成器所生成的框架 代码进行编辑、管理,提供并行代码语法合法性检查、代码辅 助以及代码重构功能,方便开发人员在框架代码的基础上进 行具体问题的代码填充,加快并行应用的开发速度。 MPI并行程序库封装插件:PASBPE提供基于消息传递模 型的并行程序开发模式,采用标准的消息传递规范MPItsl oMPI 消息传递机制与语言和平台无关且可移植、高效灵活。这些 特性与PASBPE的设计初衷一致,保证了系统的可移植性。通 过对MPI并行程序库的封装,使PASBPE开发环境支持MPI 并行程序的设计、编译以及运行。对传递消息底层调用的屏 蔽,使开发人员从繁琐的底层功能中解脱出来,致力于应用层 次上的设计与开发,从而缩短开发周期,提高效率。 并行计算资源管理插件:实现当前并行计算环境中的系 统可用资源进行管理。对计算环境中可达主机进行动态检测, 就所有可达主机的可用性以及是否具备运行并行程序条件进 行判断,返回所有可用的主机状态。返回结果以可用网络主机 拓扑图的方式显示。该拓扑图随主机状态变化进行动态调整。 并行任务部署插件:实现进程与并行处理器问的映射,将 并行任务分配到物理上的计算结点上。该映射过程实现并行 程序进程在并行计算环境中的部署。程序设计人员通过图形 化的接口指定需要分配的并行任务、并行计算环境中所使用 的计算资源以及在每个计算资源上所运行的进程数等。设置 结果保存在动态更新的配置文件中,通过解析该文件可随时 获得并行任务部署信息。 用户界面插件:将系统支持的插件组件组织起来,为用户 提供一系列友好的设计开发视图。及时为设计人员提供反馈信 息如编译信息、错误提示、部署信息、以及并行程序运行结果等。 除以上关键组件外,系统还提供其它功能组件,如并行程 维普资讯 http://www.cqvip.com 序编译器、并行工程维护、并行任务运行控制插件等。主要组 PASBPE旨在给用户提供一个方便实用的用户界面。其 件间关系及系统数据流如图2所示。 _.1赢 —广—厂 H H 用 户 I程序封装广一广 界 —— 面 I. Il编译器 并行程序 任耋 行}._1— 蠢 图2 PASBPE系统数据流 PASBPE在实现这些功能组件时,对Eclipse框架中的扩 展点进行扩充,在扩展点的基础上实现各个功能相对的 系统插件。这些插件组件最终以功能向导以及各种视图的方 式供用户使用。这些视图包括:工程导航视图、网络资源视 图、部署视图、控制台视图、代码编辑视图等,分别与不同的插 件组件相关联。并行结构骨架库中的结构骨架以资源文件的 方式进行存储,PASBPE在启动时对系统默认路径下的资源文 件进行搜索以及动态加载。动态加载方式利于并行结构骨架 的添加与更新。在骨架库基础上,PASBPE提供一个框架代码 生成向导帮助开发人员生成并行程序框架代码。通过用户界 面元素用户对并行结构骨架进行选择,设置不同骨架所需参 数。框架代码生成插件捕获设置信息,读取骨架库中资源文 件,生成程序代码框架中间文件。该中间文件在代码编辑优 化插件中以程序代码框架呈现给用户,以便进行进一步编辑 修改与具体代码填充。 在PASBPE平台上,开发人员可使用大量的MPI例程编 写高效的并行程序代码。但PASBPE对底层并行程序的编译 过程,并非实现一个全新的并行程序编译器,而是借助第三方 MPI的实现MPICH,对现有MPI编译器进行封装。在此基础 之上,对底层并行计算环境交互操作进行屏蔽,生成并行程序 可执行文件。可执行文件在并行计算环境中的部署通过并行 任务部署插件实现。通过任务部署视图,用户根据并行计算 资源管理插件所生成的可用计算资源动态统计结果设置使用 的计算资源、任务运行的进程数等部署信息,并行任务部署插 件对部署信息进行封装,生成底层任务部署命令,完成可执行 文件在物理计算结点间的远程拷贝,以供并行任务运行控制 插件控制程序执行及返回运行结果。 PASBPE在数据接口的设计上,使用配置文件实现功能插 件间的数据通讯。主要的配置文件包括:资源主机配置文件 Host.config、部署配置文件Deploy.config。这些配置文件一方 面要保证所提供数据信息的完整性,另一方面保证不同模块 的访问使用的便利性,包括对文件解析的难易度,解析性能以 及稳定性等。出于以上因素的考虑,PASBPE使用层次化的文 件结构,在文件格式上采用XML文件格式。文件结构的层次 化方便数据信息的组织。XML格式保证了文件结构的层次 化,同时易于解析。PASBPE采用DOM4J开源XML解析包作 为XML解析工具,对项目中需要的数据文件进行解析。利用 开源库DOM4J基于多个继承层接口的方法和特性设置等功 能简化数据文件的解析过程,以保证系统性能。 沿用Eclipse已有的界面风格,利用标准窗口工具包SwT及更 高一级API(JFace)图形化组件实现针对并行程序开发所需的 用户界面。通过Eclipse中工作台组件的扩展点实现各种视图。 借助工作区组件与资源交互扩展点管理项目以及相关文件。 通过上述一系列功能插件,程序设计人员不必深入掌握 并行计算的底层技术,PASBPE开发环境实现并行代码框架的 自动生成,帮助开发人员更高效地设计开发并行程序。在代 码框架的基础上对具体应用代码进行添加,最后完成并行程 序的编译、任务部署、运行。PASBPE系统作为基于并行结构 骨架的可视化开发环境可提高并行程序设计效率。 3基于并行结构骨架的代码生成 PASBPE系统提供给用户一个基本并行结构骨架库,其中 存储了许多预定义的并行结构骨架模型。每个结构骨架模型 都是预先实现的可复用的组件,包含了一类并行应用算法模 式与程序结构相关的信息。并行结构骨架模型库,将实际应 用问题进行分类,对每一类问题进行抽象的描述,该描述包含 解决问题的通用结构和与之对应的并行化策略。在这个描述 基础上用户对基本骨架库中的骨架原型进行定制,快速地生 成并行代码框架。同时结构骨架库还支持对已有骨架进行添 加与修改。因此,并行结构骨架库为并行应用进行系统的、分 层次的开发提供了一个框架。 基于某种特定并行应用的用户可以从骨架库中选择合适 的骨架,提供相应的参数和特定应用的代码。如需复杂的并 行化策略,可基于具体应用对结构骨架库中的不同骨架进行 选择重组,以生成符合用户需求的骨架原型。这种策略可有 效做到对并行代码的复用。程序设计人员在具体使用这些并 行结构骨架时需要对骨架进行实例化。骨架实例化过程是一 个参数化的设置过程,该过程会产生针对不同并行计算环境 生成并行程序代码框架,而骨架本身并不依赖于特定的并行 体系结构。骨架实例化后即为具体应用代码设计阶段。程序 设计人员针对不同的具体应用对骨架实例化后生成的代码框 架进行具体代码的填充。该过程如图3所示。 图3基于并行结构骨架的代码生成过程 由上述基于并行结构骨架的代码生成过程可以看出并行结 构骨架是程序的高层抽象描述,通过对属性集进行参数化设置, 生成不依赖于体系结构的并行结构骨架原型。该生成过程对并 行程序开发人员完全透明,可以使开发人员更多地去关注具体问 题的分析与实现,从而真正提高开发效率。 (下转第2523页) 维普资讯 http://www.cqvip.com 都较好。因此该混合预测模型应用于软件可靠性测试的失效 _. __... 一鼻. 踅鳖熬 {● f f : .’ 数据分析与预测研究中,具有很好的应用前景。 参考文献: [1】Jiangyu Deng.Classiifcation of software quality using tree modeling with the S-Plus algorithm[D】.Thesis for Master's De— gree,Florida Atlantic Universiyt,1999.77—102. [2】 汪浩.基于数据挖掘技术的软件可靠性模型研究[D】.北京:北 京航空航天大学论文,2002. [3】 王晓晔.时间序列数据挖掘中相似性和趋势预测的研究[D】. 图4软件可靠性多尺度预测模型的逼近与预测效果 天津:天津大学博士学位论文,2003. 邹丰忠,刘海青,王林.软件可靠性综合模型[J].武汉大学学报 表1故障间隔时间数据DS1的预测模型比较 (工学版),2003,36(1):86.89. [5】 文成林,周东华.多尺度估计理论及其应用[M】.北京:清华大学 模型 传统SRGM模型(线性LV) 单一RBF网络模型 多尺度混合预测模型 出版社,2002. SRE 9.385 653 3 27.647 346 3.261 O35 [6】 杨福生.小波变换的工程分析与应用[D】.北京:科学出版社, MSPE 8.843 384 3 26.423 024 2.652 763 MSE 647.656 57 663.12O 24 450.304 9 1999. [7】 张传斌,王学孝,邓正隆.非线性时间序列的RBF神经网络预 数据从文献[5】中获得,是进行软件可靠性评估理论与方法研 测方法及其应用[J】.热能动力工程,2001,16(93):31 1.342. 究的样本数据),训练样本数约为总数据的85%~90%,模型预 [8】 张玉瑞,陈剑波.基于RBF神经网络的时间序列预测[J】.计算 测结果评价说明该多尺度组合预测模型的函数逼近和预测具 机工程与应用,2005,(1 1):74.76. 有一定优势。同时我们可以看到,该时间序列建模方法无需 [9】De Ridder F E Pintelon R,Schoukkens J.Modiifed AIC and 模型假设条件,具有较高的模型适应性,可在不做任何程序调 MDL model selection criteria ofr short data records[C].IEEE 整基础上输入任何形式的失效数据时间序列进行可靠性预测。 Transactions on Instrumentation and Measurement,2005.144- 因此该方法具有较高的预测精度和很好的模型适应性。另外 l50. 单一RBF网络训练模型对不完全失效数据样本的函数逼近与 [10】Sun-Gi Hong,Sang-Keon Oh,Min—Soeng Kim.Nonlinear time 预测效果良好,对非线性、不平稳的完全失效数据样本的函数 series modeling and prediction using gaussian RBF network 逼近与预测效果开始变差。但多尺度混合预测模型对完全失 wiht evolutionary structure optimization[J].Electronics Letters, 效数据集和不完全失效数据集的数据样本的训练与预测效果 2001.(10):639.640. (上接第25l5页) 4结束语 [C】.Washington,DC,USA:IEEE Computer Society,2003.87. Remi Coudarcher,Jocelyn Serot,Jean-Pierre Derutin.Imple- 基于并行结构骨架的并行程序设计环境——PAsBPE使 mentation of a skeleton-・based parallel programming environ-・ 用参数化设置快速生成用户所需并行程序框架,对并行程序 ment supporting rabirtary nesting[A】.Proceedings ofthe 6th In- 进行更高层的抽象,隐藏底层细节。通过该可视化的程序设 ternational Workshop on High-Level Parallel Programming 计交互环境,可简化并行程序设计开发过程,缩短开发周期, Models nad Supportive Environments[C].London,UK:Springer- 从而有效提高并行程序设计开发效率。 Verlag,2001.71-85. 参考文献: Goswami D.Parallel architectural skeletons:Re-usable building blocks in parallel applications[D].Waterloo Canada:Department 【l】MacDonald S,Szafron D,Schaeffer J,et a1.Generating parallel ofElectrical and Computer Engineering,PhD Thesis,University program frameworks from parallel design patterns[J】.Lecture ofWaterloo,2001. Notes in Computer Science,2000,l 900(8):95-l 04. Goswami D,Singh A,Preiss B R.Using object-orientedtechni- 【2】Massingill B,Mattson L Sanders B.A paaern lnaguage forpara- ques ofr eralizing parallel rachitectural skeletons[J].Lecture No- llel application programs[A】.Europena Conference on Parallel tes ni Computer Science,1999,1732(12):130-141. Processing[C】.London,UK:Springer-Verlag,2000.678-68 1. Jim des Rivieres,Wayne Beaton.Eclipse platform technical 【3】Beniamino Di Martnio.Algorithmic concept recognition support overview[EB/OL].http://www.eclipse.org,2006. ofr skeleton based parallel programming[A】.Proceedings of hte 都志辉.高性能计算并行编程技术.MPI并行程序设计[M】.北 International Parallel and Distributed Processing Symposium 京:清华大学出版社,2000.29.3 1. -——2523-——