CN111949336A - 函数文件的调整方法、装置、计算机设备和存储介质 - Google Patents
函数文件的调整方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111949336A CN111949336A CN202010765978.2A CN202010765978A CN111949336A CN 111949336 A CN111949336 A CN 111949336A CN 202010765978 A CN202010765978 A CN 202010765978A CN 111949336 A CN111949336 A CN 111949336A
- Authority
- CN
- China
- Prior art keywords
- function file
- target
- file
- variable
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 326
- 238000012546 transfer Methods 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 14
- 238000011160 research Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 8
- 239000010410 layer Substances 0.000 description 4
- 239000002356 single layer Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种函数文件的调整方法、装置、计算机设备和存储介质。所述方法包括:获取调整指令;调整指令中包括目标循环变量的标识;根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件;通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。采用本方法能够确保GPU能够高性能地对气象数据进行处理,从而高效地得到气象数据的处理结果。
Description
技术领域
本申请涉及高性能计算技术领域,特别是涉及一种函数文件的调整方法、装置、计算机设备和存储介质。
背景技术
目前,单纯的多核CPU(Central processing Unit,中央处理器)已无法满足高性能计算领域对处理器计算性能的要求。因此,世界领先的超级计算机都装备大量的GPU(Graphics Processing Unit,图形处理器)加速器或者众核处理器进行并行加速,以满足高性能计算领域对处理器计算性能的要求。而气象数值模式是一种基于CPU并行架构编写的代码,为了提高气象数值模式对气象的预测能力,使其适应GPU的高计算性能,需要将气象数值模式从CPU上移植到GPU。
传统技术中,主要是通过OpenACC(Open Accelerators,开放加速器)将气象数值模式从CPU移植到GPU上,OpenACC通过在代码中增加一些简单的编译器指示语句,使编译器能够识别可以并行计算的代码,并将这些可以并行计算的代码放在GPU上并行运行。
然而,传统的气象数值模式移植方法,存在无法确保GPU高性能地运行气象数值模式的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够确保GPU高性能地运行气象数值模式的函数文件的调整方法、装置、计算机设备和存储介质。
一种函数文件的调整方法,所述方法包括:
获取调整指令;所述调整指令中包括目标循环变量的标识;
根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述气象数据的处理结果。
在其中一个实施例中,所述将所述目标循环变量迁移至所述子函数文件对应的主函数文件之后,所述方法还包括:
根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整;所述传递变量为所述目标主函数文件调用目标子函数文件时传递给所述目标子函数文件的变量。
在其中一个实施例中,所述根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整,包括:
根据所述目标主函数文件中包括的变量以及所述变量的数量,对所述目标主函数文件传递给所述目标子函数文件的变量维度进行调整,得到目标变量维度;
根据所述目标变量维度,对所述传递变量的变量名进行调整,得到目标变量名。
在其中一个实施例中,所述方法还包括:
对原函数文件和目标函数文件进行一致性验证;所述原函数文件包括所述主函数文件和所述子函数文件,所述目标函数文件包括所述目标主函数文件和目标子函数文件,所述目标子函数文件为将所述子函数文件中的目标循环变量迁移之后得到的文件;
若所述验证通过,则确定所述目标函数文件有效。
在其中一个实施例中,若所述验证不通过,则重新执行所述根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整的步骤。
在其中一个实施例中,所述对原函数文件和目标函数文件进行一致性验证,包括:
运行所述目标函数文件,得到第一运行结果;
运行所述原函数文件,得到第二运行结果;
若所述第一运行结果和所述第二运行结果相同,则所述一致性校验通过。
在其中一个实施例中,所述原函数文件为天气研究预测模型WRF数值模式中的WSM6函数文件。
一种函数文件的调整装置,所述装置包括:
获取模块,用于获取调整指令;所述调整指令中包括目标循环变量的标识;
第一调整模块,用于根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
执行模块,用于通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述主函数文件对所述气象数据的处理结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取调整指令;所述调整指令中包括目标循环变量的标识;
根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述气象数据的处理结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取调整指令;所述调整指令中包括目标循环变量的标识;
根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述气象数据的处理结果。
上述函数文件的调整方法、装置、计算机设备和存储介质,获取包括目标循环变量的标识的调整指令,根据目标循环变量的标识,能够在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件,这样可以增加主函数文件的循环层次,进而可以通过多个并行线程执行目标主函数文件,确保GPU能够高性能地对气象数据进行处理,从而高效地得到气象数据的处理结果。
附图说明
图1为一个实施例提供的计算机设备的内部结构示意图;
图2为一个实施例中函数文件的调整方法的流程示意图;
图3为另一个实施例中函数文件的调整方法的流程示意图;
图4为一个实施例中函数文件的调整方法的流程示意图;
图5为一个实施例中函数文件的调整装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的函数文件的调整方法,可以适用于如图1所示的计算机设备。该计算机设备包括通过系统总线连接的处理器、存储器,该存储器中存储有计算机程序,处理器执行该计算机程序时可以执行下述方法实施例的步骤。可选的,该计算机设备还可以包括网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。可选的,该计算机设备可以是服务器,可以是个人计算机,还可以是个人数字助理,还可以是其他的终端设备,例如平板电脑、手机等等,还可以是云端或者远程服务器,本申请实施例对计算机设备的具体形式并不做限定。
在一个实施例中,如图2所示,提供了一种函数文件的调整方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
S201,获取调整指令;调整指令中包括目标循环变量的标识。
具体地,计算机设备获取调整指令;其中,调整指令中包括目标循环变量的标识。可选的,调整指令可以为用户通过计算机设备输入的指令。可选的,调整指令可以为预设的代码文件。
S202,根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件。
具体地,计算机设备根据调整指令中包括的目标循环变量的标识,在子函数文件中确定该目标循环变量,并将该目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件。可以理解的是,将子函数文件中确定的目标循环变量迁移至子函数文件对应的主函数文件后,主函数文件被执行时将调用的是迁移目标循环变量后的子函数文件。示例性地,以子函数文件包括三个循环变量,主函数文件包括一个循环变量为例,计算机设备在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件后,子函数文件将包括两个循环变量,主函数文件将包括两个循环变量。示例性地,以目标主函数文件以及目标子函数文件为WRF数值模式中的WSM6函数文件为例进行说明,为了适用于GPU细粒度并行,在加入上述编译器指示语句后需要对wsm6()函数文件中的循环进行,修改后的wsm6()函数文件中的主要循环结构示例如下:
在wsm61D()函数文件中修改循环结构为:
其中wsm61D()函数文件是对wsm62D()函数文件修改后的函数。如果在wsm6()函数中添加类似于以下的OpenACC编译器指示语句,则将把(jte-jts+1)×(ite-its+1)次循环分配到若干个线程同时计算,提高并行的效率,也即满足GPU的细粒度并行,进一步地,OpenACC编译器指示语句示例如下:
S203,通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。
具体地,计算机设备通过多个并行线程执行上述得到的目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。可以理解的是,这里计算机设备通过多个并行线程执行目标主函数文件时,多个并行线程将调用上述调整后的子函数文件,对气象数据进行处理,得到气象数据的处理结果。
上述函数文件的调整方法中,计算机设备通过获取包括目标循环变量的标识的调整指令,根据目标循环变量的标识,能够在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件,这样可以增加主函数文件的循环层次,进而可以通过多个并行线程执行目标主函数文件,确保GPU能够高性能地对气象数据进行处理,从而高效地得到气象数据的处理结果。
在上述将目标循环变量迁移至子函数文件对应的主函数文件的场景中,需要对目标主函数文件的传递变量进行调整。在一个实施例中,在将目标循环变量迁移至子函数文件对应的主函数文件之后,上述方法还包括:根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整;传递变量为目标主函数文件调用目标子函数文件时传递给目标子函数文件的变量。
具体地,计算机设备根据上述得到的目标主函数文件中的变量以及该变量的数量,对目标主函数文件的传递变量进行调整,其中,目标主函数文件的传递变量为目标主函数文件调用目标子函数文件时传递给目标子函数文件的变量。可选的,计算机设备可以根据目标主函数文件中包括的变量以及变量的数量,对目标主函数文件传递给目标子函数文件的变量维度进行调整,得到目标变量维度;根据目标变量维度,对目标主函数文件的传递变量的变量名进行调整,得到目标变量名。示例性地,继续以目标主函数文件以及目标子函数文件为WRF数值模式中的WSM6函数文件为例进行说明,由于在wsm6()函数文件中,循环由单层变成了两层嵌套,调用的子函数文件中的循环由两层嵌套变为单层,因此传递给子函数文件的变量和子函数文件的接口以及子函数文件都需要做相应的修改:由于在并行计算时需要保持每个线程所计算的某个变量互不影响,也即是变量对该线程私有,因此,wsm6()函数文件在循环中传递给子函数文件wsm62D()的二维变量需要重新定义为三维变量,即将REAL,DIMENSION(its:ite,kts:kte)::t重新定义为:REAL,DIMENSION(its:ite,kts:kte,jts:jte)::t,而其它三维变量在传递给子函数文件wsm62D()时,由仅保持j不变,改为保持i和j不变,如q(its:ite,kts:kte,j)改为q(i,kts:kte,j);子函数文件名称由wsm62D()改为wsm61D()(此处wsm61D名字为自定义,文件名称中的1D表示仅对一个维度进行循环,为了和wsm62D区别),函数文件的参数个数和参数名与wsm62D()函数相同,同样在wsm61D()函数文件中,原先的二维变量需要重新定义为一维变量,即将REAL,DIMENSION(its:ite,kts:kte)::t,重新定义为REAL,DIMENSION(kts:kte)::t,然后在wsm61D()函数文件中把所有原来针对i和k的循环改为只对k进行循环。
本实施例中,计算机设备将目标循环变量迁移至子函数文件对应的主函数文件中,能够根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行准确地调整,进而可以使计算机设备能够准确地运行目标主函数文件和子函数文件。
在上述计算机设备将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件的场景中,计算机设备将对得到的目标主函数文件进行一致性验证,在上述实施例的基础上,如图3所示,上述方法还包括:
S301,对原函数文件和目标函数文件进行一致性验证;原函数文件包括主函数文件和子函数文件,目标函数文件包括目标主函数文件和目标子函数文件,目标子函数文件为将子函数文件中的目标循环变量迁移之后得到的文件。
具体地,计算机设备对得到的目标函数文件和目标函数文件对应的原函数文件进行一致性验证。其中,原函数文件包括上述主函数文件和上述子函数文件,目标函数文件包括目标主函数文件和目标子函数文件,目标子函数文件为将上述子函数文件中的目标循环变量迁移之后得到的文件。可选的,计算机设备可以通过调用预设的主程序运行上述目标函数文件,得到第一运行结果,并调用该预设的主程序运行上述原函数文件,得到第二运行结果,若第一运行结果和第二运行结果相同,则对目标函数文件和目标函数文件对应的原函数文件的一致性校验通过。
S302,若验证通过,则确定目标函数文件有效。
具体地,若计算机设备对目标函数文件和目标函数文件对应的原函数文件的一致性校验通过,则计算机设备确定上述得到的目标函数文件有效。可选的,若计算机设备对目标函数文件和目标函数文件对应的原函数文件的一致性校验不通过,则计算机设备重新执行上述根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整的步骤。
本实施例中,计算机设备对上述得到的目标函数文件和该目标函数文件对应的原函数文件进行一致性验证,若一致性验证通过则能够确保得到的目标函数文件的运行结果与原函数文件的运行结果一致,确保了得到的目标函数文件的准确度,若一致性验证不通过,则通过重新执行根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整的步骤,更进一步地确保了得到的目标函数文件的准确度。
在上述对原函数文件和目标函数文件进行一致性验证的场景中,在上述实施例的基础上,作为一种可选的实施方式,原函数文件为天气研究预测模型WRF数值模式中的WSM6函数文件。
具体地,上述原函数文件为WRF数值模式中的WSM6函数文件。需要说明的是,WRF数值模式主要用Fortran语言编写,物理过程都以Fortran语言中的子函数形式存在,作为WRF的物理过程之一,WSM6函数文件存放在WRF代码子目录phys下的module_mp_wsm6.F文件中,对应其中的wsm6()函数文件,而气象变量在空间上的分布一般以三维形式存在,包括水平方向的经度(即东西方向)、纬度(即南北方向)以及垂直方向上的高度。WRF数值模式把计算的空间区域划分为三维的网格,对于某个网格点上的气象变量,其表示类似于q(i,k,j),其中i代表东西方向的索引,j代表南北方向的索引,k代表高度层的索引,q(i,k,j)表示某个网格点所在位置的湿度,wsm6()函数文件会对所有网格点进行循环计算。目前wsm6()函数文件内部仅有一个单层的基于j的循环,循环内部调用另一个子函数wsm62D()函数文件,wsm62D()函数文件再对i和k做循环,从而完成三个维度的计算,目前wsm6()函数文件中的主要循环结构示例如下:
其中,jts和jte是南北方向索引的下限和上限。
在wsm62D()函数文件中循环结构如下:
其中,kts和kte是垂直方向索引的下限和上限,its和ite是东西方向索引的下限和上限。通常情况下,垂直方向索引的范围远小于东西和南北方向索引的范围。换言之,针对k的循环次数远小于针对i或j的循环次数。
需要说明的是,通常,在wsm6()函数文件中将针对j的循环移至GPU并行,需要加入类似于以下的以!$acc开头的OpenACC编译器指示语句:
这样,wsm6()函数文件将把jte-jts+1次循环分配给若干个线程同时计算。
本实施例中,原函数文件为天气研究预测模型WRF数值模式中的WSM6函数文件,能够对WSM6函数文件中的循环层次进行重组,使主要的计算过程由单层循环转化为两层嵌套循环,便于利用OpenACC进行细粒度并行,保证了WSM6函数文件的高性能运算。
为了便于本领域技术人员的理解,以下对本申请提供的函数文件的调整方法进行详细介绍,如图4所示,该方法可以包括:
S401,获取调整指令;调整指令中包括目标循环变量的标识。
S402,根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件。
S403,根据目标主函数文件中包括的变量以及变量的数量,对目标主函数文件传递给目标子函数文件的变量维度进行调整,得到目标变量维度。
S404,根据目标变量维度,对传递变量的变量名进行调整,得到目标变量名。
S405,运行目标函数文件,得到第一运行结果;运行原函数文件,得到第二运行结果;若第一运行结果和第二运行结果相同,则对原函数文件和目标函数文件进行一致性验证通过,确定目标函数文件有效;原函数文件包括主函数文件和子函数文件,目标函数文件包括目标主函数文件和目标子函数文件,目标子函数文件为将子函数文件中的目标循环变量迁移之后得到的文件。
S406,若验证不通过,则重新执行根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整的步骤。
S407,通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种函数文件的调整装置,包括:获取模块、第一调整模块和执行模块,其中:
获取模块,用于获取调整指令;调整指令中包括目标循环变量的标识;
第一调整模块,用于根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件;
执行模块,用于通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到主函数文件对气象数据的处理结果。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述装置还包括:第二调整模块,其中:
第二调整模块,用于根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整;传递变量为目标主函数文件调用目标子函数文件时传递给目标子函数文件的变量。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述第二调整模块包括:第一调整单元和第二调整单元,其中:
第一调整单元,用于根据目标主函数文件中包括的变量以及变量的数量,对目标主函数文件传递给目标子函数文件的变量维度进行调整,得到目标变量维度。
第二调整单元,用于根据目标变量维度,对传递变量的变量名进行调整,得到目标变量名。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述装置还包括验证模块和确定模块,其中:
验证模块,用于对原函数文件和目标函数文件进行一致性验证;原函数文件包括主函数文件和子函数文件,目标函数文件包括目标主函数文件和目标子函数文件,目标子函数文件为将子函数文件中的目标循环变量迁移之后得到的文件。
确定模块,用于若验证通过,则确定目标函数文件有效。
可选的,原函数文件为天气研究预测模型WRF数值模式中的WSM6函数文件。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述装置还包括第三调整模块,其中:
第三调整模块,用于若验证不通过,则重新执行根据目标主函数文件中的变量以及变量的数量,对目标主函数文件的传递变量进行调整的步骤。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述验证模块包括:第一运行单元、第二运行单元和验证单元,其中:
第一运行单元,用于运行目标函数文件,得到第一运行结果。
第二运行单元,用于运行原函数文件,得到第二运行结果。
验证单元,用于若第一运行结果和第二运行结果相同,则一致性校验通过。
本实施例提供的函数文件的调整装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于函数文件的调整装置的具体限定可以参见上文中对于函数文件的调整方法的限定,在此不再赘述。上述函数文件的调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取调整指令;调整指令中包括目标循环变量的标识;
根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件;
通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。
上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取调整指令;调整指令中包括目标循环变量的标识;
根据标识,在子函数文件中确定目标循环变量,并将目标循环变量迁移至子函数文件对应的主函数文件,得到目标主函数文件;其中,子函数文件中包括至少两个循环变量;主函数文件与子函数文件均用于对气象数据进行处理,且主函数文件被执行时调用子函数文件;
通过多个并行线程执行目标主函数文件,对气象数据进行处理,得到气象数据的处理结果。
上述实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种函数文件的调整方法,其特征在于,所述方法包括:
获取调整指令;所述调整指令中包括目标循环变量的标识;
根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述气象数据的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标循环变量迁移至所述子函数文件对应的主函数文件之后,所述方法还包括:
根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整;所述传递变量为所述目标主函数文件调用目标子函数文件时传递给所述目标子函数文件的变量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整,包括:
根据所述目标主函数文件中包括的变量以及所述变量的数量,对所述目标主函数文件传递给所述目标子函数文件的变量维度进行调整,得到目标变量维度;
根据所述目标变量维度,对所述传递变量的变量名进行调整,得到目标变量名。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:
对原函数文件和目标函数文件进行一致性验证;所述原函数文件包括所述主函数文件和所述子函数文件,所述目标函数文件包括所述目标主函数文件和目标子函数文件,所述目标子函数文件为将所述子函数文件中的目标循环变量迁移之后得到的文件;
若所述验证通过,则确定所述目标函数文件有效。
5.根据权利要求4所述的方法,其特征在于,若所述验证不通过,则重新执行所述根据所述目标主函数文件中的变量以及所述变量的数量,对所述目标主函数文件的传递变量进行调整的步骤。
6.根据权利要求4或5所述的方法,其特征在于,所述对原函数文件和目标函数文件进行一致性验证,包括:
运行所述目标函数文件,得到第一运行结果;
运行所述原函数文件,得到第二运行结果;
若所述第一运行结果和所述第二运行结果相同,则所述一致性校验通过。
7.根据权利要求6所述的方法,其特征在于,所述原函数文件为天气研究预测模型WRF数值模式中的WSM6函数文件。
8.一种函数文件的调整装置,其特征在于,所述装置包括:
获取模块,用于获取调整指令;所述调整指令中包括目标循环变量的标识;
第一调整模块,用于根据所述标识,在子函数文件中确定所述目标循环变量,并将所述目标循环变量迁移至所述子函数文件对应的主函数文件,得到目标主函数文件;其中,所述子函数文件中包括至少两个循环变量;所述主函数文件与所述子函数文件均用于对气象数据进行处理,且所述主函数文件被执行时调用所述子函数文件;
执行模块,用于通过多个并行线程执行所述目标主函数文件,对所述气象数据进行处理,得到所述主函数文件对所述气象数据的处理结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010765978.2A CN111949336A (zh) | 2020-08-03 | 2020-08-03 | 函数文件的调整方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010765978.2A CN111949336A (zh) | 2020-08-03 | 2020-08-03 | 函数文件的调整方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949336A true CN111949336A (zh) | 2020-11-17 |
Family
ID=73338892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010765978.2A Pending CN111949336A (zh) | 2020-08-03 | 2020-08-03 | 函数文件的调整方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949336A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372068A1 (en) * | 2015-02-26 | 2017-12-28 | Alpha Mice Ltd. | Method to identify known compilers functions, libraries and objects inside files and data items containing an executable code |
CN110069259A (zh) * | 2019-03-04 | 2019-07-30 | 北京三快在线科技有限公司 | 基于idl文件的解析方法、装置、电子设备和存储介质 |
CN110609687A (zh) * | 2019-04-12 | 2019-12-24 | 北京字节跳动网络技术有限公司 | 一种编译方法、装置、电子设备和存储介质 |
CN111381905A (zh) * | 2018-12-27 | 2020-07-07 | 北京华为数字技术有限公司 | 一种程序处理方法、装置及设备 |
-
2020
- 2020-08-03 CN CN202010765978.2A patent/CN111949336A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372068A1 (en) * | 2015-02-26 | 2017-12-28 | Alpha Mice Ltd. | Method to identify known compilers functions, libraries and objects inside files and data items containing an executable code |
CN111381905A (zh) * | 2018-12-27 | 2020-07-07 | 北京华为数字技术有限公司 | 一种程序处理方法、装置及设备 |
CN110069259A (zh) * | 2019-03-04 | 2019-07-30 | 北京三快在线科技有限公司 | 基于idl文件的解析方法、装置、电子设备和存储介质 |
CN110609687A (zh) * | 2019-04-12 | 2019-12-24 | 北京字节跳动网络技术有限公司 | 一种编译方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
苗春葆 等: "一个通用的并行函数库", 《计算机应用与软件》, vol. 28, no. 6, pages 108 - 111 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101759266B1 (ko) | 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법 | |
US9146609B2 (en) | Thread consolidation in processor cores | |
CN113095474A (zh) | 深度学习模型的资源使用情况预测 | |
US9891958B2 (en) | System and method for parallelizing grid search method facilitating determination of PK-PD parameters | |
CN115016951B (zh) | 流场数值模拟方法、装置、计算机设备和存储介质 | |
CN105550977A (zh) | 一种并行方式栅格影像切片方法 | |
CN110866610A (zh) | 一种深度学习模型分布式运算的方法及装置 | |
KR20210148586A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 가속기 시스템 | |
Giordano et al. | Dynamic load balancing in parallel execution of cellular automata | |
CN115934102B (zh) | 通用寄存器动态分配方法、装置、计算机设备和存储介质 | |
DE112020004315T5 (de) | Geräteverbindungsverwaltung | |
CN111523642A (zh) | 用于卷积运算的数据重用方法、运算方法及装置、芯片 | |
Dou et al. | A fine-granularity scheduling algorithm for parallel XDraw viewshed analysis | |
CN118313458A (zh) | 数据处理方法、数据处理器、电子设备、存储介质 | |
CN111898276B (zh) | 架空线路的模型处理方法、装置、计算机设备和介质 | |
Castro et al. | NUMA-ICTM: A parallel version of ICTM exploiting memory placement strategies for NUMA machines | |
CN117808980A (zh) | 地图栅格图片生成方法、系统、设备及存储介质 | |
CN111949336A (zh) | 函数文件的调整方法、装置、计算机设备和存储介质 | |
Cui et al. | Directive-based pipelining extension for openmp | |
Fernández-Fabeiro et al. | Simplifying the multi-gpu programming of a hyperspectral image registration algorithm | |
Zhou et al. | A Parallel Scheme for Large‐scale Polygon Rasterization on CUDA‐enabled GPUs | |
Carabaño et al. | Efficient implementation of a fast viewshed algorithm on SIMD architectures | |
CN116010093A (zh) | 数据处理方法、装置、计算机设备和可读存储介质 | |
CN113157806B (zh) | 网格数据分布式存储服务系统、方法、装置、设备及介质 | |
Zhang et al. | A two-level storage strategy for map-reduce enabled computation of local map algebra |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |