当前位置: 首页 > 专利查询>天津大学专利>正文

基于可视化建模的MPI并行程序设计系统及框架代码自动生成方法技术方案

技术编号:2912342 阅读:385 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于可视化建模的MPI并行程序设计系统及框架代码自动生成方法,用户界面层基于可视化操作界面向代码生成层提供模型;代码生成层用于对模型进行解析,其中用户界面层包括用于图形化建模的图形编辑器和作为生成代码框架修改环境的代码编辑器,代码生成层包括算法骨架模块、模型验证模块和代码生成模块,算法骨架模块用于描述模式的特征和行为,将设计模式进行再次的封装,提供程序框架;模型验证模块用于在代码生成前对模型的逻辑正确性进行验证,代码生成模块用于根据用户需求不同调用不同的并行标准库。与现有技术相比,本发明专利技术具有很好的通用性,即使不具备专业编程知识的专业人员,也可以通过可视化的建模方式自形生成代码框架。

【技术实现步骤摘要】

本专利技术涉及一种MPI高性能并行计算中的编程环境、模型与方法,特别是涉及MPI并行程序框架代码的自动生成及程序设计方法。
技术介绍
随着计算机的应用范围和应用水平的不断拓展和提高,人们对于计算机的计算和处理能力等性能要求也随之增加。近些年来,尤其是在天文、气象、海洋、生物、能源、化工、地质勘探、军事以及理论物理、数学等科学计算能力要求高的领域,对计算与信息处理能力提出了越来越高的要求。并行计算的出现和发展,也正是为了克服和解决这个问题而不断努力的。目前,构建并行计算硬件环境的技术也已日臻成熟,搭建一个理论上计算能力相当强的并行计算环境,现在已经不是难题。然而,如何高效地在并行计算环境中进行各种并行计算应用程序的设计与开发,对于多数非计算机专业出身并且缺乏并行计算程序开发的专业训练的各应用领域的技术人员来说,已成为并行计算技术转化为实际生产力所面临的关键问题。经文献检索发现,传统的支持并行程序设计与开发的系统和方法主要有:并行程序设计语言(HPF、Erlang、X10、Cilk)、并行编译器、高性能并行函数库(Intel的TBB、Microsoft TPL、IBM Amino)、可移植的多线程库(Pthread)、消息传递库(MPI、PVM)、自动并行化工具(OpenMP)、协同编程语言(Linda)、基于模板的并行程序设计方法(Frameworks)、并行组件编程方法(CCA)等等。上述现有技术中的这些系统和方法,有的抽象程度太低,需要并行程序设计人员过多的关注底层细节,如消息传递、同步、加减锁等,致使编程效率低,程序代码错误多;-->有的不能满足当前最新的应用和系统需求;有的存在可移植性、可扩展性差的缺陷;有的是因为面向特殊专用领域,如空气动力学模拟、求解偏微分方程等,因而通用性很差。因此,目前随着多核微处理器的普及,并行计算机走进了更加大众化的计算领域,研究并提出一套通用的并行程序设计方法和系统已经迫在眉睫。
技术实现思路
鉴于上述技术问题,本专利技术提出了一种基于可视化建模的MPI并行程序设计系统及其框架代码自动生成方法,提供一套辅助并行程序设计与开发的系统与方法,利用可视化的用户操作界面,根据用户在系统设计阶段建立的各种模型,通过解析模型,自动生成结构完整且优化的并行程序框架代码。本专利技术提出了一种基于可视化建模的MPI并行程序设计系统,包括用户界面层和代码生成层和并行标准库,用户界面模块向其即代码生成层提供模型,代码生成层对模型进行解析,根据用户的需要通过对已有的并行标准库进行调用,其中用户界面层包括用于图形化建模的图形编辑器和用于生成代码框架的修改的代码编辑器,代码生成层包括算法骨架模块、模型验证模块和代码生成模块,算法骨架模块用于定义模式的属性集的方法来描述相应模式的特征和行为,将多种设计模式进行再次的封装,提供程序框架;模型验证模块用于在代码生成前对模型的逻辑正确性进行验证,以确保生成代码的有效性,代码生成模块用于根据用户需求不同调用不同的并行标准库。1.一种基于可视化建模的MPI并行程序设计系统,包括用户界面层、代码生成层,用户界面层基于可视化操作界面向代码生成层提供模型;代码生成层用于对模型进行解析,其中用户界面层包括用于图形化建模的图形编辑器和作为生成代码框架修改环境的代码编辑器,代码生成层包括算法骨架模块、模型验证模块和代码生成模块,算法骨架模块用定义模式的属性集的方法来描述相应模式的特征和行为,将设计模式进行再次的封装,提供程序框架;模型验证模块用于在代码生成前对模型的逻辑正确性进行验证,以确保生成代码的有效性,代码生成模块用于根据用户需求不同调用不同的并行标准库。该系统还包括并行设计标准库,所提供的模型根据用户的需要通过对已有的并行设计标准库进行调用。在该系统中定义一组用来刻画模型的构造块,该构造块由在不同模型间被重复使用的基本元素定义。-->每个所述模型对应着一个树型数据结构,该树型数据结构包括:作为根的ContentsModel类,该类抽象成员属性列表,该列表中保存有该系统中所有构造块成员,当访问模型数据结构时,得到这个数据结构的根,即在DiagramEditor类中定义的成员函数:Contents Model类的对象parent,通过parent.getChildren()可访问到所有的构造块,并且根据构造块可以访问对应的属性;NodeModel记录了一类构造块的相关信息,包括名称、位置、基本属性;构造块的共有属性,即List类型的sourceConnection和targetConnection,这两个属性分别保存了连接到这个构造块的连接线和从这个构造块发出的连接线的另一端链接的对象;连接线有NodeModel类型的属性source和target,描述一个连接线的起始点和结束点。所述模型的保存是将Java对象转化为XML格式的文件保存。本专利技术还提出一种基于可视化建模的MPI并行程序设计系统的框架代码自动生成方法,该方法包括以下步骤:用户根据底层的并行计算硬件平台和运行环境选择一类并行编程语言或者并行程序库,由代码生成器根据该语言的编程模型选择基本的程序结构骨架;同时由代码生成器遍历已创建的并行应用的树型数据结构,形成并行应用程序的控制流信息,插入到程序结构骨架中生成最终的程序源代码;其中将模型进行解析,自动生成框架代码流程,该流程包括以下步骤:步骤1:首先查找开始节点,查找成功时生成头文件以及main()函数头;步骤2:根据连接线连接到的方向解析下一个节点,并生成相应代码;步骤3:若遇到上循环,生成循环开始语句;步骤4:解析循环体中的各个节点,生成对应代码;步骤5:若遇到下循环,循环结束,返回到步骤2,继续解析其余节点;步骤6:若经过检查该节点不是循环,则检查是否遇到分支节点;步骤7:若遇到了分支节点则计算此次分支的合并节点是哪个,然后按解析分支节点到合并节点之间的构造块,并生成对应代码,放入分支的一个条件下;步骤8:参与步骤7中的功能;步骤9、10:共同完成分支中另一条路径的解析;步骤11、12:若该节点不是循环或者分支节点,则检查是否碰到了结束节点。若是则进入步骤12,退出解析过程,若不是则该节点就是一个普通节点,生成相应代码,-->然后继续解析下一个节点;步骤12:结束解析过程。与现有技术相比,本专利技术具有很好的通用性,即使不具备专业编程知识的专业人员,也可以通过可视化的建模方式字形生成代码框架,操作方便,无需编程。附图说明图1为MPI并行程序设计及框架代码自动化生成系统的结构示意图;图2为面向构造块的MPI并行程序的可视化建模流程示意图;图3为将模型进行解析,自动生成框架代码流程示意图;表1表示基于可视化建模的MPI并行程序设计系统层次。具体实施方式MPI是基于消息传递的高性能并行计算环境中的消息传递标准,目前已经被高校、研究机构和工业界在集群系统、工作站网络等高性能并行计算硬件平台上广泛的采用,成为事实上的消息传递标准规范。现有的各种MPI实现版本,如MPICH、CHIMP、LAM等函数库在局域网和广域网环境高性能并行计算中取得了良好的效果。因此,本专利技术的并行程序设计中也采纳MPI标准。MPI并行程序设计及框架代码自动化生成系统在所创建模型的基础上,能够本文档来自技高网
...

【技术保护点】
一种基于可视化建模的MPI并行程序设计系统,包括用户界面层、代码生成层,用户界面层基于可视化操作界面向代码生成层提供模型;代码生成层用于对模型进行解析,其中用户界面层包括用于图形化建模的图形编辑器和作为生成代码框架修改环境的代码编辑器,代码生成层包括算法骨架模块、模型验证模块和代码生成模块,算法骨架模块用定义模式的属性集的方法来描述相应模式的特征和行为,将设计模式进行再次的封装,提供程序框架;模型验证模块用于在代码生成前对模型的逻辑正确性进行验证,以确保生成代码的有效性,代码生成模块用于根据用户需求不同调用不同的并行标准库。

【技术特征摘要】
1.一种基于可视化建模的MPI并行程序设计系统,包括用户界面层、代码生成层,用户界面层基于可视化操作界面向代码生成层提供模型;代码生成层用于对模型进行解析,其中用户界面层包括用于图形化建模的图形编辑器和作为生成代码框架修改环境的代码编辑器,代码生成层包括算法骨架模块、模型验证模块和代码生成模块,算法骨架模块用定义模式的属性集的方法来描述相应模式的特征和行为,将设计模式进行再次的封装,提供程序框架;模型验证模块用于在代码生成前对模型的逻辑正确性进行验证,以确保生成代码的有效性,代码生成模块用于根据用户需求不同调用不同的并行标准库。2.如权利要求1所述的基于可视化建模的MPI并行程序设计系统,其特征在于,还包括并行设计标准库,所提供的模型根据用户的需要通过对已有的并行设计标准库进行调用。3.如权利要求1所述的基于可视化建模的MPI并行程序设计系统,其特征在于,在该系统中定义一组用来刻画模型的构造块,该构造块由在不同模型间被重复使用的基本元素定义。4.如权利要求1所述的基于可视化建模的MPI并行程序设计系统,其特征在于,每个所述模型对应着一个树型数据结构,该树型数据结构包括:作为根的Contents Model类,该类抽象成员属性列表,该列表中保存有该系统中所有构造块成员,当访问模型数据结构时,得到这个数据结构的根,即在DiagramEditor类中定义的成员函数:ContentsMode1类的对象parent,通过parent.getChildren()可访问到所有的构造块,并且根据构造块可以访问对应的属性;NodeModel记录了一类构造块的相关信息,包括名称、位置、基本属性;构造块的共有属性,即List类型的sourceConnection和targetConnecti...

【专利技术属性】
技术研发人员:廖士中刘杰孟晓静孙超孙济洲汤善江武华北徐祯于策
申请(专利权)人:天津大学
类型:发明
国别省市:12[中国|天津]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1