一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种解决耦合器插值计算的众核并行优化算法的制作方法

2022-03-22 20:14:22 来源:中国专利 TAG:


1.本发明涉及一种解决耦合器插值计算的众核并行优化算法,属于计算机技术领域。


背景技术:

2.地球系统模式是大气模式、海洋模式、海浪模式、陆面模式、海冰模式以及耦合器分量模式共同组成的多模式系统,能够预测全球气候、重大天气灾害乃至地球环境的演变。其中,耦合器在地球系统中主要负责其它分量模式相互之间的数据通信。由于分量模式在实际应用中的地区差异化特点,分辨率也不尽相同,数据在进行通信之前需要进行插值处理。因此,耦合器插值计算的性能制约了地球系统模式的运行速度。
3.地球系统模式实际模拟计算时,需要适配具有大量可用计算资源的计算机系统,异构众核计算机系统近年来高速发展,可以为地球系统模式的模拟计算提供十分丰富的计算资源。针对地球系统模式的耦合器插值的计算特点,充分利用异构众核计算机系统的优点,可以优化耦合器插值计算任务的并发度,提高耦合器插值计算的速度,增加单位时间内地球系统模式的产能。
4.地球系统模式各个分量模式的模拟计算顺序执行,在耦合器前后其他分量模式需要等待,整个计算过程具有计算时间长,数据输出量大,数据通信频繁的特性,其中耦合器插值计算具有执行次数多,核心变量数据结构复杂,迭代任务数据访存离散的问题。


技术实现要素:

5.本发明的目的是提供一种解决耦合器插值计算的众核并行优化算法,其能够大幅度减少从核的离散访存开销,极大程度的提高众核并行程序的运算速度。
6.为达到上述目的,本发明采用的技术方案是:提供一种解决耦合器插值计算的众核并行优化算法,包括以下步骤:s1、运行插值计算程序,并根据插值计算程序的运行结果获取插值计算中的核心代码;s2、针对s1中获取的核心代码,逐行进行分析,获取核心代码中作为输入输出变量的全局变量;s3、对s2中获取的全局变量,按照数据结构复杂度分为基础数据类型变量与复杂数据类型变量两类,其中,基础数据类型指计算机编程语言中的整数型、浮点型、字符型,复杂数据类型由多个基础数据类型或复杂数据类型的子元素组成;s4、分析通过s3分类获得的每个复杂数据类型变量,具体为通过表的形式记录变量的内存需求大小以及其子元素的类别和大小,直到每个复杂数据类型变量的子元素均为基础数据类型;s5、将通过s3分类获得的复杂数据类型变量进行数据结构优化,具体为将复杂数据类型变量按照其子元素的顺序进行存储,将相同名称的子元素内存存储为连续的相等字
节长度;s6、使用按照上述步骤编写的代码替换插值计算程序中相对应的代码,重新进行程序的编译和运行。
7.由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明主要针对地球系统模式中耦合器插值计算的特点,提供一种高效的异构众核并行优化算法以提高耦合器的计算性能,能够大幅度减少从核的离散访存开销,极大程度的提高众核并行程序的运算速度,最终提高地球系统模式的性能。
附图说明
8.附图1为本发明的流程示意图;附图2为数据结构优化前的存储示意图;附图3 为本发明的数据结构存储示意图。
具体实施方式
9.实施例:本发明提供一种解决耦合器插值计算的众核并行优化算法,通过降低程序相关变量数据结构复杂度,提高众核并行程序访存性能,包括以下步骤:s1、运行插值计算程序,并根据插值计算程序的运行结果获取插值计算中的核心代码;s2、针对s1中获取的核心代码,逐行进行分析,获取核心代码中作为输入输出变量的全局变量;s3、对s2中获取的全局变量,按照数据结构复杂度分为基础数据类型变量与复杂数据类型变量两类,其中,基础数据类型指计算机编程语言中的整数型、浮点型、字符型,复杂数据类型由多个基础数据类型或复杂数据类型的子元素组成;s4、分析通过s3分类获得的每个复杂数据类型变量,具体为通过表的形式记录变量的内存需求大小以及其子元素的类别和大小,直到每个复杂数据类型变量的子元素均为基础数据类型;s5、将通过s3分类获得的复杂数据类型变量进行数据结构优化,具体为将复杂数据类型变量按照其子元素的顺序进行存储,将相同名称的子元素内存存储为连续的相等字节长度,优化前的变量按照子元素的排序进行存储,相同名称的子元素内存存储为离散的相等字节长度,如图1,优化后的变量按照子元素的顺序进行存储,相同名称的子元素内存存储为连续的相等字节长度,如图2;s6、使用按照上述步骤编写的代码替换插值计算程序中相对应的代码,重新进行程序的编译和运行。
10.对上述实施例的进一步解释如下:本专利应用异构众核协处理器具有高效计算、低速访主存、有限本地存储的特点,提出一种异构众核并行优化算法,预先优化插值计算变量的复杂数据结构,减少众核并行计算中核心变量的内存需求,降低插值计算变量的访存离散度。
11.一般情况下,通过使用本专利的异构众核并行优化算法,耦合器插值计算能够大幅度减少从核的离散访存开销,最大限度提高众核并行程序的运算速度;
本发明的关键点是解决耦合器插值计算的众核并行优化算法,优化复杂数据结构的算法及耦合器插值计算的众核并行代码,可适用于大多数的高性能科学计算领域,适用于在国产异构众核计算机系统进行众核并行的大部分应用,可以优化应用软件核心算法的数据结构,使其更加适配国产异构众核并行的优势,最终提高计算机系统的高速本地存储的访存性能。
12.本专利提出的优化数据结构方法,主要是对复杂结构的数据类型进行重新排序,目标是调整全局变量的存储粒度和存储顺序,具体实现如图1所示。
13.图1示意了复杂数据结构的组成,表格中一行示意一个元素,包括了1个整型,2个双精度和1个字符型,按照数据元素在内存中的排列,内存需求分别为4、8、4、8字节,相邻地址的长度不统一;在实现众核并行化过程中,优先考虑众核访存性能优势,期望从核在访问主存的过程中,获取相同字节长度的n个连续地址变量的值,因此,将复杂数据结构进行调整,数据结构优化为图2所示组成。
14.优化后的数据结构组成中,表示相同物理元素的值存储在一段连续的地址空间,实现众核并行之后,各个从核计算某物理量时,可以从主存获取连续地址段的数据初始值,此时,连续地址段的访存可以充分利用带宽,同时,减少了初始复杂数据结构中冗余物理元素在从核本地存储的需求,提高了从核本地存储的利用率。
15.采用上述一种解决耦合器插值计算的众核并行优化算法时,其能够大幅度减少从核的离散访存开销,极大程度的提高众核并行程序的运算速度,最终提高地球系统模式的性能。
16.为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:并行:英文parallel,同构计算机系统中,一个处理器一次处理一个任务,在同一时刻,多个处理器对同一批次的多个任务进行处理,称为并行。
17.异构众核并行:异构计算机系统中 ,一个处理器具有多个协处理器;在同一时刻,多个协处理器对同一批次的多个任务进行处理,称为异构众核并行。
18.上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献