源代码处理方法、系统及程序技术方案

技术编号:7154992 阅读:387 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种源代码处理方法、系统及程序。本发明专利技术为了提供在多处理器系统中通过并行化来使程序的执行高速化的技术而对想要高速化的程序的关键路径适当进行切分,分成其他进程来分配给各个处理器。本发明专利技术的处理程序读取由多个处理块构成的想要高速化的程序源代码,并对关键路径的所有可能的切分进行测试,找出使作为结果的所切分处理块的流程的处理时间最短的切分。据此获得多个处理块组。如此分割生成的各个模块组被编译而按执行环境被分配给各个处理器。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及在多处理器系统中使程序的执行高速化的技术。
技术介绍
近年来,在科学技术计算和仿真等领域中使用具有多个处理器的所谓多处理器系统。在这样的系统中,应用程序生成多个进程来对各个处理器分配进程。这些处理器例如利用共享的存储器空间来一边相互通信一边进行处理。最近,作为尤其盛行研发的仿真领域,有机器人、汽车、飞行器等的机械电子学的设备仿真用软件。得益于电子零部件和软件技术的发展,在机器人、汽车和飞行器等领域中,大部分的控制利用象神经一样遍布的电线接线、无线LAN等以电子方式进行。这就意味着要对原来的机械装置内置大量的控制软件。因此,在研发产品时,需要在控制程序的研发及其测试方面投入大量的时间、巨额的费用和许多人员。为了进行这样的测试,以往所采用的技术有HILS (Hardware In the Loop Simulation:半实物仿真)。尤其是测试汽车整体的电子控制单元(ECU)的环境被称为整车性能HILS。在整车性能HILS中,在实验室内,将真车的ECU连接在仿真发动机、传动机构等的专用的硬件装置上,按照规定的脚本进行测试。来自ECU的输出被输入到监视用的计算机,进而显示在显示器,测试担当者一边注视显示器,一边确认是否有异常动作。但是,HILS必须使用专用的硬件装置,并在其与真车的E⑶之间进行物理配线,因此准备非常麻烦。而且,要替换其他ECU进行测试,需要重新进行物理连接,因此花费功夫。 而且,由于是使用真车的ECU进行的测试,测试需要实时。因此,在测试许多脚本时,花费庞大的时间。HILS的仿真用硬件装置通常价格非常高。因此,近年来,提出不使用高价的仿真用硬件装置,而是由软件构成的方法。该方法被称为SILS (Software In the Loop Simulation),是将搭载于ECU上的微型计算机、输入输出电路、控制的脚本、发动机、传动系统等设备全部用软件仿真构成的技术。据此,即使不存在ECU的硬件,也能执行测试。作为这样的支援SILS构筑的系统,例如有可从CYBERNET SYSTEMS CO.,LTD获得的仿真建模系统即MATLAB(R)/Simulink㈨。当使用MATLAB(R)/Simulink(R)时,如图1所示,在画面上由图形界面配置功能模块A、B、…J,如箭头那样指定其处理流程,据此能够做成仿真程序。这样在MATLAB (R)/Simulink(R)上做成模块A、B、’"J等的方框图时,能够利用 Real-Time Workshop (R)的功能转换为等价功能的C语言的源代码。通过对该C语言的源代码进行编译,能够在其他的计算机系统中也能执行作为SILS的仿真。特别是其他的计算机系统使多处理器系统时,在可能的情况下对处理进行分割, 对各个处理器分配不同的进程进行并行处理,这样有利于提高处理速度。为此,以往公知有CP调度方法。在此,CP是指关键路径(Critical Path)。当利用CP调度方法时,图1所示的方框图变换为图2所示的任务图表。从图可知,图2的任务图表是纵四列,将各个列的处理并行地分配给不同的4个CPU,与用1个CPU进行处理时相比,实质上能够达到2倍的处理速度。但是,图2中B — D —冊一J这一路径是关键路径,不能将整体的处理时间缩短少于处理该关键路径的CPU的时间。在日本特开平6-83608号公报中公开如下内容利用关键路径解析部找出并行计算机中程序执行的成为瓶颈的部位。在日本特开平7-21240号公报中公开由如下装置构成的系统关键路径提取装置,关于逻辑电路的布局设计,为了在缩短关键路径的同时使横切切分线的网络数最小,而提取关键路径;做成切分线的切分线作成装置;合并对象选择装置,根据各模块的结合度和关键路径信息来决定各模块的合并对象;合并装置,根据由合并对象选择装置求出的各模块的合并对象进行模块的合并;为了使横切切分线的网络数最小而进行对偶交换的对偶 (pair-wise)装置。在日本特开平8-180100号公报中公开了如下内容针对随着机械分配产生的作业调度问题,通过生成高效率的邻域,与近似解法组合,从而来高速求出最优解。在日本特开平6-83608号公报及日本特开平8-180100号公报中只不过公开了任务调度的概要。在日本特开平7-21240号公报中对在逻辑电路的布局设计中缩短关键路径的技术进行了说明,但这是物理布局上的关键路径,不能适用于软件的逻辑上的关键路径的处理。专利文献1 日本特开平6-83608号公报专利文献2 日本特开平7-21240号公报专利文献3 日本特开平8-180100号公报
技术实现思路
因此,本专利技术的目的在于提供一种在多处理器系统中通过并行化来使程序的执行高速化的技术。通过将想要高速化的程序的关键路径适当切分、分为其他进程,并分配给各个处理器,从而来达到上述目的。据此,能够输出用于仿真的投机执行的最优代码。S卩,本专利技术的处理程序读取由多个处理块构成的、想要高速化的程序源代码,通过对关键路径的可能的切分全部进行测试来找出作为结果的切分后处理块的流程的处理时间最短的切分。为了可实现这样的处理时间的估计,预先将处理程序编译,进行测量各处理块的执行时间及其他值的阶段。此时测量的值也包括如下这样的测量数据在跨越进行不同处理的处理器时的信息传递成本、用于投机执行所必须的处理、投机失败时的重算的成本以及对各模块的输入预测命中何种程度(即投机成功概率)。对切分结果的路径递归地应用关键路径的可切分处理。于是,虽然进一步切分,但加上处理器之间的通信时间等,有时整体的处理时间反而变长,在这种情况下停止切分。据此,得到多个处理块的组。尤其是在本说明书的说明中,将各处理块的组称为模块组(block chunk)ο若这样分割生成的模块组的个数与多处理器系统的处理器的个数相同或少于处理器的个数,则各个模块组直接被编译而按执行环境被分别分配给各个处理器。但是,若模块组的个数多于处理器的个数,则本专利技术的处理程序,尝试将模块组结合,以使模块组的个数等于处理器的个数。此时,优选是选择结果结合成的模块组中的关键路径的处理时间的最大值为最小这样的结合。这样结果的模块组被编译而在实际环境下分别分配给各个处理器。这样一来,对所有模块组的每一个模块组分配一个处理器,进行最优的并行处理。如上所述,根据本专利技术,在多处理器环境中,可实现对关键路径的长度和处理器分配这两方面均改善了的高速的程序执行。能够输出用于仿真的投机执行的最优代码。附图说明图1是表示仿真建模工具的方框图的例子的图。图2是表示CP调度方法的例子的图。图3是用于实施本专利技术的硬件的框图。图4是本专利技术一实施例的功能框图。图5是表示本专利技术一实施例的处理流程的图。图6是切分关键路径的处理的流程图。图7是切分关键路径的处理的流程图。图8是切分关键路径的处理的例子的示意图。图9是表示包括投机时的期待执行时间的图。图10是模块组形成处理的例子的示意图。图11是CPU分配用代码生成处理的流程图。图12是CPU分配用代码生成处理的流程图。图13是模块组结合处理的例子的示意图。图14是模块组结合处理的例子的示意图。图15是用于说明模块之间的依存关系的图。附图标记的说明404源代码406、422 编译器412 “关键路径的切分”模组本文档来自技高网
...

【技术保护点】
1.一种源代码处理方法,其通过计算机处理来生成用于在多处理器系统中能够并行执行的源代码,其特征在于,包括:输入程序源代码的步骤;通过上述计算机处理来找出上述程序源代码的处理的关键路径的步骤;以及对上述关键路径进行切分来与上述多处理器系统的各个处理器对应而分割上述源代码的步骤。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:吉泽武朗
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US

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

1