一种基于SIMSCRIPT仿真语言的程序并行优化方法技术

技术编号:38715061 阅读:16 留言:0更新日期:2023-09-08 14:57
本发明专利技术涉及一种事件型语言并行优化仿真方法,具体为一种基于SIMSCRIPT仿真语言的程序并行优化方法,包括步骤1,对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展;步骤2,对SIMSCRIPT串行仿真源程序中核心代码进行分析,根据代码段是否对界、对齐以及存在依赖属性,区分出串行程序中可以做并行计算以及不能做并行计算的程序;步骤3,将需要并行处理的核心代码依次改写为支持并行编程的串行FORTRAN代码;步骤4,把改写过的串行FORTRAN代码依次改写为支持并行编程的FORTRAN语言代码。本发明专利技术基于SIMSCRIPT仿真语言的程序并行优化方法,将SIMSCRIPT仿真与并行技术结合,提高了优化效率,有效地利用了计算机资源;解决了应用SIMSCRIPT语言编写的仿真程序无法支持并行编程的难题,大大节省了仿真时间。大大节省了仿真时间。大大节省了仿真时间。

【技术实现步骤摘要】
一种基于SIMSCRIPT仿真语言的程序并行优化方法


[0001]本专利技术涉及属于计算机仿真领域,尤其是涉及一种事件型语言并行优化仿真方法,特别是将SIMSCRIPT串行仿真程序改写为支持并行编程的科学计算程序继而并行执行的方法。

技术介绍

[0002]仿真语言是一种面向问题的非顺序性的计算机高级语言,其通常由编译器、模型库、描述语言、算法库和运行控制程序组成。仿真语言包括连续系统仿真语言、离散事件系统仿真语言和混合系统仿真语言。
[0003]SIMSCRIPT语言是由美国兰德公司(RAND公司)的Harry Markowitz和Bernard Hausner在1963年提出的最早的事件型语言
‑‑
仿真描述程序设计语言SIMSCRIPT(英文Simulationscripture的缩写)。它是在通用程序设计语言C语言的基础上扩展而成的,是一种自由格式的,类似于英语的通用模拟器语言。在 SIMSCRIPT语言系统中,对于实体及其属性的操作是通过事件例行程序来实现的。事件例行程序完成系统活动和事务处理的仿真,系统活动不论采用同时进行或顺序进行的方式,均由事件表排定事件例行程序。为了执行的需要,可以重新调度事件例行程序。通过事件例行程序的执行,将改变仿真时钟,并根据时间调度下一个事件。SIMSCRIPT语言作为最早的事件型语言,凭借着较为完善的技术规范,使其应用范围越来越广阔。
[0004]为了提高计算机的运行速度和系统的处理能力,在总体设计和逻辑设计中广泛采用了并行程序设计,可以更全面地利用计算机资源,使系统效率提高。但根据SIMSCRIPT语言按时间顺序调度事件和串行执行的特点,现有的SIMSCRIPT语言对于SIMSCRIPT程序并行执行的支持是不够的。相对于并行仿真,串行的仿真往往需要非常大的计算量,特别是对于数值计算等领域会耗费大量的时间。Fortran语言的产生以及发展,是和科学计算的需求紧密的联系在一起的。Fortran里面灵活的数据类型、适当抽象而不过于复杂的程序结构,这些都很适合非计算机专业人士使用。Fortran至今能在数值计算方面得到广泛应用并不是单纯因为其有长期积累下来的库,是因为它确实非常适合数值计算。目前以Fortran为主的结构网格求解器的运行效率几乎是单方面吊打非结构求解器,并且对于数值计算领域的特定问题的特定算法,Fortran能很容易逼近其计算效率的理论极限。因此,应用SIMSCRIPT语言编写的仿真程序中需要一种支持Fortran并行编程的方法来全面地利用计算机资源,以提高系统的效率。

技术实现思路

[0005]本专利技术针对现有技术不足,提出一种基于SIMSCRIPT仿真语言的科学计算程序并行优化方法,以解决现有技术中的SIMSCRIPT仿真程序无法支持并行编程的难题。
[0006]本专利技术采用的技术方案:本专利技术提供的基于SIMSCRIPT仿真语言的程序并行优化方法,实现过程如下,其包
括:步骤1,对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展;步骤2,对SIMSCRIPT串行仿真源程序中核心代码进行分析,根据代码段是否对界、对齐以及存在依赖属性,区分出串行程序中可以做并行计算以及不能做并行计算的程序;步骤3,将需要并行处理的核心代码依次改写为支持并行编程的串行FORTRAN代码;步骤4,把改写过的串行FORTRAN代码依次改写为支持并行编程的FORTRAN语言代码。
[0007]所述步骤1,包括如下子步骤:1.1:通过编译工具生成支持FORTRAN的库文件;1.2:在SIMSCRIPT文件中定义函数接口,通过调用FORTRAN函数来实现SIMSCRIPT仿真与FORTRAN的库文件之间的通信。
[0008]在步骤2中,通过对SIMSCRIPT串行仿真源程序中核心代码运行时间的收集分析,找出程序中运行时间占比大的部分,针对这部分进行SIMSCRIPT语言到FORTRAN的改写。
[0009]所述的SIMSCRIPT语言到FORTRAN的改写生成包含SIMSCRIPT语言和FORTRAN混合的程序。
[0010]所述的SIMSCRIPT仿真与FORTRAN的库文件之间的通信是SIMSCRIPT程序与FORTRAN程序之间的通信。
[0011]在步骤4中,在上述步骤完成后,通过反复实验,仿真运行时间比较,找出运行该程序时间最短的最优方案。
[0012]专利技术有益效果:本专利技术提出一种基于SIMSCRIPT仿真语言和FORTRAN语言混合编译的仿真程序并行优化方法,将SIMSCRIPT仿真与并行技术结合,提高了优化效率,有效地利用了计算机资源;解决了应用SIMSCRIPT语言编写的仿真程序无法支持并行编程的难题,大大节省了仿真时间。
附图说明
[0013]图1所示为本专利技术基于SIMSCRIPT仿真语言的程序并行优化方法流程图;图2为本专利技术基于SIMSCRIPT仿真语言的程序并行优化方法FORTRAN扩展库生成过程图;图3所示为本专利技术关于SIMSCRIPT程序与FORTRAN程序之间的通信方式结构图;图4所示为SIMSCRIPT仿真语言和并行FORTRAN处理优化后的语言时间对比图。
具体实施方式
[0014] 为了使专利技术创造实现其专利技术目的的技术构思及优点更加清楚明白,下面结合附图对本专利技术的技术方案作进一步的详细描述。应当理解的是,以下各实施例仅用以解释和说明本专利技术的优选实施方式,不应当构成对本专利技术要求专利保护的范围的限定。
[0015]实施例1请参阅图1,本专利技术基于SIMSCRIPT仿真语言的程序并行优化方法,包括如下步骤:
步骤1:对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展;步骤2:对SIMSCRIPT串行仿真源程序中核心代码进行分析,根据代码段是否对界、对齐以及存在依赖属性,区分出串行程序中可以做并行计算以及不能做并行计算的程序;步骤3:将需要并行处理的核心代码依次改写为支持并行编程的串行FORTRAN代码;步骤4:把改写过的串行FORTRAN代码依次改写为支持并行编程的语言FORTRAN代码。
[0016]如图2和3所示,对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展;包括如下子步骤:1.1:通过编译工具生成支持FORTRAN的库文件;1.2:在SIMSCRIPT文件中定义函数接口,通过调用FORTRAN函数来实现SIMSCRIPT仿真与FORTRAN的库文件之间的通信。
[0017]实施例2本实施例的基于SIMSCRIPT仿真语言的程序并行优化方法,和实施例1的不同之处在于:进一步具有限定了:在上述步骤1.1中,利用GFORTRAN编译器和连接器对已经写好的FORTRAN源文件进行编译链接,生成.a库文件,并将生成的库文件放入到存放库文件的lib目录下,同时在bin目录下的simcm.bat/simcm.sh脚本文件中添加连接到库文件的库文件名

l<libname&本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SIMSCRIPT仿真语言的程序并行优化方法,其特征在于,包括如下步骤:步骤1,对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展;步骤2,对SIMSCRIPT串行仿真源程序中核心代码进行分析,根据代码段是否对界、对齐以及存在依赖属性,区分出串行程序中可以做并行计算以及不能做并行计算的程序;步骤3,将需要并行处理的核心代码依次改写为支持并行编程的串行FORTRAN代码;步骤4,把改写过的串行FORTRAN代码依次改写为支持并行编程的FORTRAN语言代码。2.根据权利要求1所述的基于SIMSCRIPT仿真语言的程序并行优化方法,其特征在于:步骤1,对SIMSCRIPT串行仿真程序的库文件进行FORTRAN扩展,包括如下子步骤:1.1:通过编译工具生成支持FORTRAN的库文件;1.2:在SIMSCRIPT文件中定义函数接口,通过调用FORTRAN函数来实现SIMSCRIPT仿真程序与FORTRAN的库文件之间的通信。3.根据权利要求2所述的基于SIMSCRIPT仿真语言的程序并行优化方法,其特征在于:在上述步骤1.1中,利用GFORTRAN编译器和连接器对已经写好的FORTRAN源文件进行编译链接,生成.a库文件,并将生成的库文件放入到存放库文件的lib目录下,同时在bin目录下的simcm.bat/simcm.sh脚本文件中添加连接到库文件的库文件名

l<libname>;在上述步骤1.2中,在SIMSCRIPT源程序中定义调用接口,主要是根据库中FORTRAN程序的定义,在SIMSCRIPT源文件的序言PREAMBLE结构中定义函数接口,程序执行过程中通过调用函数接口来实现SIMSCRIPT仿真与FORTRAN的库文件之间的通信。4.根据权利要求2或3所述的基于SIMSCRIPT仿真语言的程序并行优化方法,其特征在于:所述的SIMSCRIPT仿真程序与FORTRAN的库文件之间的通信是SIMSCRIPT程序与FORTRAN程序之间的通信,SIMSCRIPT源程序通过调用函数接口来实现SIMSCRIPT仿真与FORTRAN的库文件之间的通信,把计算数据队列实现多线程并行计算,得出结果队列,返回到SIMSCRIPT源程序,实现SIMSCRIPT仿真程序与FORTRAN的库文件之间、与FORTRAN程序之间的通信。5.根据权利要求1、2或3所述的基于SIMSCRIPT仿真语言的程序并行优化方法,其特征在于:步骤2中,源程序中核心代码部分通常指运行时间长的循环代码部分,在循环代码段部分...

【专利技术属性】
技术研发人员:司光亚张丹刘翔唐宇波周文李东杨镜宇吴琳冯帅
申请(专利权)人:中国人民解放军国防大学联合作战学院
类型:发明
国别省市:

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

1