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

一种面向DCU-CPU混合架构的团簇动力学方法的并行计算方法

2022-05-18 02:42:26 来源:中国专利 TAG:

一种面向dcu-cpu混合架构的团簇动力学方法的并行计算方法
技术领域
1.本发明涉及核材料辐照模拟
技术领域
,特别是指一种面向dcu-cpu混合架构的团簇动力学方法的并行计算方法。
背景技术
:2.团簇动力学(clusterdynamics,cd)是基于平均场速率理论发展而来的数值模拟方法,该方法忽略了原子的空间信息及相互作用力,而把关注点放在原子聚集形成的团簇的尺寸及浓度信息,能够进行中长时间的演化过程模拟,属于介观尺度的模拟方法。由于团簇动力学可以对材料的微观动力学演化行为进行较为准确的模型描述及模拟计算,因此目前应用于材料微观演化机理研究的多个相关领域之中。以核反应堆为例,其内部材料的服役性能大都依赖于辐照条件下产生的材料缺陷的动力学行为(如结构材料的辐照损伤、核燃料裂变气体导致的辐照肿胀等),因此使用团簇动力学方法研究掌握材料缺陷的微观演化机理是保障核反应堆安全运行、提高服役性能、延长使用寿命的关键。团簇动力学在核反应堆研究应用中,已成功模拟了如压力容器的团簇析出、裂变气体迁移等微观过程。3.随着应用范围的扩大,传统的团簇动力学方法暴露出其在计算及模型上的瓶颈问题。从计算上来说,由于团簇动力学方法依赖于一组偏微分方程的求解,通常情况下方程组的方程数量超106,且方程大多数情况下为刚性方程,因此团簇动力学方程的求解需要极大的计算量,仅凭目前cpu(centralprocessingunit,中央处理器)的计算能力难以完成计算任务。从模型上来说由于传统的团簇动力学模拟没有考虑团簇间的空间相关性,团簇被假定在一个均匀介质中,因此在进行环境信息快速变化,或存在团簇迁移过程的模拟时,团簇动力学的模型便不在适用。4.基于空间依赖的团簇动力学模拟方法,是近年来发展的一种改进团簇动力学模型的方法。基于空间依赖的团簇动力学模拟方法通过在传统团簇动力学模拟的基础上,引入扩散项的信息,并在空间上进行划分,使得模型可以在一定情景中克服上述的不足。但此种方法增加了团簇动力学方程求解的计算量,使得求解过程存在计算时间过长的问题,并存在一些模拟条件下由于计算量过大而无法进行的问题,导致这种方法的使用受限。5.曙光超级计算机在传统cpu基础上,搭载了深度计算器(deepcomputingunit,dcu),形成了异构混合架构的整体设计。dcu是以通用图形处理器(general-purposecomputingongraphicsprocessingunits,gpgpu)架构为基础,兼容通用的类cuda环境,适用于计算密集型的科学计算等方面的程序设计与移植,能够有效地提升程序的计算效率,缩短程序执行时间。但由于其架构相对单cpu来说较为复杂,要结合实际计算模型进行程序设计会给设计人员带来一定挑战。技术实现要素:6.本发明实施例提供了面向dcu-cpu混合架构的团簇动力学方法的并行计算方法,能够扩展团簇动力学模拟方法的时空规模,并减少团簇动力学模拟的计算时间。所述技术方案如下:7.本发明实施例提供了一种面向dcu-cpu混合架构的团簇动力学方法的并行计算方法,包括:8.s1,建立dcu上的数据结构信息,用于存储计算所需数据;其中,所述数据结构包括:团簇基本信息的数据结构、团簇信息的管理结构、网格信息的管理结构和团簇反应基本信息的数据结构;9.s2,cpu端向dcu端传递计算所需的数据;10.s3,将建立的网格区域求解任务分配至dcu端;11.s4,在cpu端,调用求解器,建立求解方程组的初值与方程矩阵,并进行方程组求解;12.s5,将方程组求解结果传输至dcu端;13.s6,dcu端根据接收到的求解结果以及接收到的计算所需的数据,计算下一时间步所需初值及方程矩阵;14.s7,dcu端将计算结果传回cpu端;15.s8,重复s4-s7直至达到模拟所需计算时间。16.进一步地,所述团簇基本信息的数据结构包括:单一类型团簇的尺寸、编号、扩散系数、结合能、迁移能、反应半径和浓度中的一种或多种。17.进一步地,所述团簇信息的管理结构包括:模拟对象的晶格尺寸、缺陷原子尺寸、反应信息存储地址、反应个数和团簇信息存储地址中的一种或多种;其中,所述团簇信息存储地址指向团簇基本信息的数据结构,所述反应信息存储地址指向团簇反应基本信息的数据结构。18.进一步地,所述网格信息的管理结构包括:网格数量、网格的尺寸和网格的温度中的一种或多种。19.进一步地,所述团簇反应基本信息的数据结构包括:反应类型、参与反应的团簇信息存储地址和反应速率系数中的一种或多种;其中,所述参与反应的团簇信息存储地址指向团簇基本信息的数据结构。20.进一步地,所述将建立的网格区域求解任务分配至dcu端包括:21.以网格划分的方式将求解区域进行分解,以单一网格上的计算任务为计算单元,分配至dcu上的线程上,形成网格-线程,区域-线程池的任务划分方法。22.进一步地,所述dcu端根据接收到的求解结果以及接收到的计算所需的数据,计算下一时间步所需初值及方程矩阵包括:23.dcu端根据接收到的求解结果,计算各网格点各团簇相应的参数信息,所述参数信息包括:扩散系数和反应速率系数;24.线程间同步,使得所有线程达到同一时间点和执行步骤;25.计算各网格点各团簇下一时间步的反应速率初值;26.计算各网格点各团簇下一时间步的偏导数用于方程求解;27.线程间同步,使得所有线程达到同一时间点和执行步骤。28.本发明实施例提供的技术方案带来的有益效果至少包括:29.1)扩展团簇动力学模拟方法的时空规模30.本实施例实现了基于空间依赖的团簇动力学模型,并实现了dcu-cpu异构混合架构的版本,可以在cpu上及dcu上进行大规模并行模拟,扩展了团簇动力学模拟方法的时空规模。31.2)减少团簇动力学模拟的计算时间32.利用了dcu的计算能力优势,进行dcu-cpu异构混合架构上的团簇动力学方法的并行计算方法设计,有效提升了该方法的执行效率,大幅缩短了团簇动力学的求解时间,较目前所知相同模型下进行团簇动力学模拟的程序性能提升60%,从而解决现有技术中存在的基于空间依赖的团簇动力学模拟方法的计算时间过长的问题,使得计算时间达到实际应用可接受的范围。附图说明33.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。34.图1为本发明实施例提供的面向dcu-cpu混合架构的团簇动力学方法的并行计算方法的流程示意图;35.图2为本发明实施例提供的dcu上数据结构示意图;36.图3为本发明实施例提供的dcu计算任务划分示意图;37.图4为本发明实施例提供的dcu端计算流程示意图。具体实施方式38.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。39.如图1所示,本发明实施例提供了一种面向dcu-cpu混合架构的团簇动力学方法的并行计算方法,包括:40.s1,建立dcu上的数据结构信息,用于存储计算所需数据;41.如图2所示,dcu(例如,曙光dcu)上主要包含以下4个数据结构:团簇基本信息的数据结构、团簇信息的管理结构、网格信息的管理结构和团簇反应基本信息的数据结构,图2带箭头的折线表示存储的地址信息指向的数据结构,在4个结构右边是其结构中包含的部分数据信息,具体的:42.1、团簇基本信息的数据结构,包含但不限于单一类型团簇的尺寸、编号、扩散系数、结合能、迁移能、反应半径和浓度等信息中的一种或多种。43.2、团簇信息的管理结构,包含但不限于模拟对象的晶格尺寸、缺陷原子尺寸、反应信息存储地址、反应个数和团簇信息存储地址等信息中的一种或多种,其中,团簇信息存储地址指向1中所描述的结构,反应信息存储地址指向4中所描述的结构。44.3、网格信息的管理结构,包含但不限于网格数量、网格的尺寸和网格的温度等信息中的一种或多种。45.4、团簇反应基本信息的数据结构,包含但不限于反应类型、参与反应的团簇信息存储地址和反应速率系数等信息中的一种或多种,其中,参与反应的团簇信息存储地址指向1中所描述的结构。46.s2,cpu端向dcu端传递计算所需的数据;47.本实施例中,cpu端将经初始化后的团簇基本信息、团簇信息管理结构信息、网格信息管理结构信息和团簇反应基本信息等使用hip编程语言由cpu端内存拷贝至dcu端内存的相应结构中。48.s3,将建立的网格区域求解任务分配至dcu端;49.本实施例中,以网格划分的方式将求解区域进行分解,在计算过程中,每个网格需要计算网格上的各团簇的浓度、参与反应的速率系数等信息,本实施例中,以单一网格上的计算任务为计算单元,是最小任务划分单位,可以与dcu上最小计算单元(计算线程)对应,因此,将单一网格上的计算任务分配至dcu上的线程上,如图3所示,形成网格-线程,区域-线程池的任务划分方法;其中,图3是dcu计算任务划分示意图,自上而下,是计算任务划分的整体思路,将模拟区域与dcu结构相对应,首先将网格划分后的区域进行二次划分,一块区域与一个dcu计算结构cu相对应,然后将每块区域中的每个网格点与cu中的计算线程相对应。50.s4,在cpu端,调用求解器,建立求解方程组的初值与方程矩阵,并进行方程组求解;51.本实施例中,以调用petsc(portableextensibletoolkitforscientificcomputation,科学计算可移植扩展工具包)外部求解器为例,对这一部分进行说明,但要说明的是,本实施例中,也可调用其他外部求解器进行相应流程的执行。调用petsc中ts时间步进积分求解器进行与时间相关的团簇动力学模拟求解,利用petsc中vec结构和mat结构,进行方程组初值与方程矩阵的建立。52.s5,将方程组求解结果传输至dcu端;53.本实施例中,将方程组的求解结果,包括:求解的各网格点各缺陷浓度信息、温度等信息,使用hip编程语句传输至dcu端,更新dcu端相关结构的数据。54.s6,dcu端根据接收到的求解结果以及接收到的计算所需的数据,计算下一时间步所需初值(指a3中描述的反应速率初值)及方程矩阵(指a4中描述的偏导数),如图4所示,具体可以包括以下步骤:55.a1,dcu端根据接收到的求解结果,计算各网格点各团簇相应的参数信息,所述参数信息包括:扩散系数和反应速率系数;56.a2,线程间同步,使得所有线程达到同一时间点和执行步骤;57.a3,计算各网格点各团簇下一时间步的反应速率初值;58.a4,计算各网格点各团簇下一时间步的偏导数用于方程求解;59.a5,线程间同步,使得所有线程达到同一时间点和执行步骤。60.本实施例中,步骤a1-a5,可以使用hip编程语言启动dcu核心函数计算部分实现。61.s7,dcu端将计算结果(包括:s6中计算得到的初值及方程矩阵)传回cpu端;62.图4是dcu端计算流程图,大体分为3个部分,第一部分将求解结果传输至dcu端,dcu端进行数据更新,并进行线程同步;第二部分dcu端计算下一时间步所需的计算初值及偏导数,并进行线程同步;第三部分dcu端将计算结果传输至cpu端。63.本实施例中,将下一时间步所需的数据使用hip编程语言由dcu端内存拷贝至cpu端内存相应结构中。64.s8,重复s4-s7直至达到模拟所需计算时间。65.本实施例中,程序的主要流程部分是循环部分s4-s7,程序以模拟时间是否到达程序既定模拟时间要求作为判断依据,进行迭代循环,在循环的每一步,增加时间步长的模拟时间,循环中dcu端计算的详细流程如图4所示。66.综上,本发明实施例提供的一种面向dcu-cpu混合架构的团簇动力学方法的并行计算方法,至少具有以下有益效果:67.1)扩展团簇动力学模拟方法的时空规模68.本实施例实现了基于空间依赖的团簇动力学模型(包括:数据结构设计部分,以及计算流程中与体系架构无关的部分,比如计算反应速率系数虽然本发明中是在dcu上进行,但这一步计算本身是团簇动力学模型中的一部分,在dcu上进行是对计算任务的优化),并实现了dcu-cpu异构混合架构的版本,可以在cpu上及dcu上进行大规模并行模拟,扩展了团簇动力学模拟方法的时空规模。69.2)减少团簇动力学模拟的计算时间70.利用了dcu的计算能力优势,进行dcu-cpu异构混合架构上的团簇动力学方法的并行计算方法设计,有效提升了该方法的执行效率,大幅缩短了团簇动力学的求解时间,较目前所知相同模型下进行团簇动力学模拟的程序性能提升60%,从而解决现有技术中存在的基于空间依赖的团簇动力学模拟方法的计算时间过长的问题,使得计算时间达到实际应用可接受的范围。71.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
再多了解一些

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

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

相关文献