CN111104765B - 基于神威架构的气体动理学算法优化方法 - Google Patents
基于神威架构的气体动理学算法优化方法 Download PDFInfo
- Publication number
- CN111104765B CN111104765B CN201911347763.2A CN201911347763A CN111104765B CN 111104765 B CN111104765 B CN 111104765B CN 201911347763 A CN201911347763 A CN 201911347763A CN 111104765 B CN111104765 B CN 111104765B
- Authority
- CN
- China
- Prior art keywords
- core
- block
- blocks
- sub
- data
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的一种基于神威架构的气体动理学算法优化方法,优选地,包括若干核组;所述核组包括一个主核和64个从核;将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算;核组负责一个数据块的计算时,将数据块分割为若干数据子块,核组负责依次对所有数据子块进行计算;核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算。本发明依据神威架构的特点,充分利用神威架构的性能,将气体动理学算法与神威架构充分结构起来,提升并行效率,提高气体动理学算法的运算速度。
Description
技术领域
本发明涉及算法的优化方法,尤其涉及一种基于神威架构的气体动理学算法优化方法。
背景技术
激波诱导的流动现象在惯性约束核聚变等核心大型工业、及超新星爆炸等天文学中广泛存在。在当前全球禁热核试验的大背景下,对于该流动现象采用气体动理学进行数值模拟成为国际研究热点。
近几年我国在高性能计算机研发领域成绩突出,尤其是纯国产的神威太湖之光超级计算机连续四届荣登世界第一,表明了我国超算建设方面已经走在了世界前列。神威太湖之光,是一款用全国产的异构众核架构处理器“SW26010”的超级计算机,整机有40960个处理器。每个SW26010处理器拥有4个核组,每个核组内包括1个主核、64个从核构成的从核簇,64个从核簇采用8*8网格排列,从核局存(LDM)存储空间64k。
如何在神威架构下实现气体动理学算法优化,以充分利用神威架构的性能,提升气体动理学算法的计算效率,是当今亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供一种基于神威架构的气体动理学算法优化方法,以充分发挥神威架构的优势,提升气体动理学算法的计算速度。
为实现上述目的,本发明提供的技术方案为:
本发明提供的一种基于神威架构的气体动理学算法优化方法,优选地,包括若干核组;所述核组包括一个主核和64个从核;
将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算;
核组负责一个数据块的计算时,将数据块分割为若干数据子块,核组负责依次对所有数据子块进行计算;
核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算。
本发明提供的基于神威架构的气体动理学算法优化方法,优选地,所述步骤“核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算”具体为:核组负责一个数据子块计算时,将数据子块沿X维度与Y维度分割为8*8的阵列共64个分块,核组的一个从核沿Z维度负责一个分块的计算。
本发明提供的基于神威架构的气体动理学算法优化方法,优选地,所述分块由若干沿X维度与Y维度的粒子层构成;所述核组中还设置有64个与所述从核一一对应的局部存储器;所述“核组的一个从核沿Z维度负责一个分块的计算”具体为:从核沿Z维度对分块进行计算时,从核的局部存储器中始终保持相同数量的奇数层连续的粒子层,位于中间层的粒子层的计算依赖于其他粒子层,从核对局部存储器中的中间粒子层计算更新,导出计算更新后的中间粒子层到主存,之后局部存储器中的首层粒子层流出、流入与末尾粒子层相邻的后一粒子层,进而对新组成的中间粒子层计算更新并导出至主存,重复流出、流入、计算更新、导出的步骤直至对整个分块中粒子层的计算更新完成。
本发明提供的基于神威架构的气体动理学算法优化方法,优选地,每个数据块中均含有与之相邻的数据块中的粒子计算所必须的粒子,该粒子为边界粒子,边界粒子所在的粒子层为边界粒子层;
步骤“将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算”具体为:将数据层按照可用的核组数量划分为数量相当的若干数据块,沿X维度、Y维度、Z维度分别将相应的边界粒子层中的全部粒子传递给相邻数据块对应的核组,核组接收到的边界粒子与数据块构成一个完整的核组需要数据计算的数据块,一个核组负责一个数据块的计算。
本发明提供的基于神威架构的气体动理学算法优化方法,优选地,所述核组中的从核为8*8阵列设置;同一行的从核负责同一Y维度的分块计算,同一行的从核沿着X维度的顺序分别对一个分块进行计算;
所述“核组的一个从核沿Z维度负责一个分块的计算”具体为:
位于同一Y维度的分块构成一个总分块,总分块可沿在Y维度上被分割为8个总子分块,每个总子分块包括同一Y维度中每个分块中的部分;
同一行的从核分别沿着Y维度顺序读取总子分块,一个从核读取一个总子分块;从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核;在寄存器通信完成后,从核沿Z维度负责一个分块的计算”。
本发明提供的基于神威架构的气体动理学算法,优选地,所述“从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核”具体为:从核读取总子分块后,沿X维度将总子分块打包为8个子分块,每个子分块对应一个从核,通过寄存器通信将全部子分块传递给相应从核;
其中,子分块包括从核对应的分块的部分及对从核对应的分块的部分进行计算所需的边界粒子。
上述技术方案具有如下优点或者有益效果:
本发明提供的一种基于神威架构的气体动理学算法优化方法,优选地,包括若干核组;所述核组包括一个主核和64个从核;将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算;核组负责一个数据块的计算时,将数据块分割为若干数据子块,核组负责依次对所有数据子块进行计算;核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算。本发明依据神威架构的特点,充分利用神威架构的性能,将气体动理学算法与神威架构充分结构起来,提升并行效率,提高气体动理学算法的运算速度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的的一种基于神威架构的气体动理学算法优化方法的分块示意图;
图2是本发明实施例1提供的的一种基于神威架构的气体动理学算法优化方法的步骤S101的优选实施方式的部分分块示意图;
图3是本发明实施例1提供的的一种基于神威架构的气体动理学算法优化方法的步骤S103的优选实施方式的部分分块示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
实施例1:
如图1所示,本发明实施例1提供的一种基于神威架构的气体动理学算法优化方法,其特征在于,包括若干核组;所述核组包括一个主核和64个从核;
S101:将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算;
S102:核组负责一个数据块的计算时,将数据块分割为若干数据子块,核组负责依次对所有数据子块进行计算;
S103:核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算。
为了提高气体动理学算法再在威架构上的计算效率,充分利用神威架构的性能,在神威架构上利用气体动理学算法进行数据层中的数据计算时,将数据层采用二维或者三维划分划分为若干数据块,数据块的数量与进程的数量相当,一个核组对应一个进程,也即是一个核组负责一个数据块的计算,多个核组同时并行对各自负责的数据块进行计算;核组分配到相应的数据块时,受存储空间等限制,并不能够载入一整个数据块,此时需要通过步骤S102将数据块进行二维或者三维划分,划分为若干数据子块,核组依次对划分的这些数据子块进行计算;同时,为了将核组中的从核充分利用起来,提高并行计算效率,在核组对一个数据子块进行计算时,将数据子块分割为64个分块,一个从核负责一个分块的计算,多个从核并行计算,使得核组对数据子块进行计算时,核组得到最高效的利用。
为了保证数据读取的连续性,本实施例中的步骤S103:“核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算”优选为:核组负责一个数据子块计算时,将数据子块沿X维度与Y维度分割为8*8的阵列共64个分块,核组的一个从核沿Z维度负责一个分块的计算。
由于神威架构的核组中还设置有64个与从核一一对应的局部存储器,为充分利用局部存储器,提高运算效率,每个从核从对应的存储器中将数据读取到局部存储器中,但是受限于局部存储器的容量大小,不能一次性将全部的计算数据读取进来,因此,本实施例1步骤S103中的“核组的一个从核沿Z维度负责一个分块的计算”具体为:从核沿Z维度对分块进行计算时,从核的局部存储器中始终保持相同数量的奇数层连续的粒子层,位于中间层的粒子层的计算依赖于其他粒子层,从核对局部存储器中的中间粒子层计算更新,导出计算更新后的中间粒子层到主存,之后局部存储器中的首层粒子层流出、流入与末尾粒子层相邻的后一粒子层,进而对新组成的中间粒子层计算更新并导出至主存,重复流出、流入、计算更新、导出的步骤直至对整个分块中粒子层的计算更新完成。其中,每个分块由若干沿X维度与Y维度的粒子层构成。由于气体动理学中粒子的计算更新依赖于相邻的多个粒子,在本实施例中,局部存储器中存储的粒子层为Z(0)~Z(4)共5层,Z(2)中的粒子计算依赖于Z(0)、Z(1)、Z(3)、Z(4)中的粒子,每层中包括的粒子数量由局部存储器的容量决定;在Z(2)计算完毕后,导出计算后的Z(2),同时流出首层粒子层Z(0),流入末尾粒子层Z(4)的后一层粒子层Z(5),也即此时局部存储其中存储的粒子层为Z(1)~Z(5)共5层,并且此时,首层粒子层为Z(1)、末尾粒子层为Z(5)。
如图2所示,每个数据块中均含有与之相邻的数据块中的粒子计算所必须的粒子,在本实施例中把该粒子称之为边界粒子,边界粒子所在的粒子层称之为边界粒子层;本实施例1中的步骤S101“将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算”优选地:将数据层按照可用的核组数量划分为数量相当的若干数据块,沿X维度、Y维度、Z维度分别将相应的边界粒子层中的全部粒子传递给相邻数据块对应的核组,核组接收到的边界粒子与数据块构成一个完整的核组需要数据计算的数据块,一个核组负责一个数据块的计算。划分为若干数据块后,每个数据块中均存在部分粒子的计算依赖于其他数据块的中的粒子,需要通过进程间通信将边界粒子传递给负责相邻数据块计算的进程,在传递X维度的边界粒子时是将边界粒子对应的边界粒子层中的全部粒子传递给相应的进程,其中包含了Y维度、Z维度的部分边界粒子,从而保证了每个进程能够得到数据块及数据块对应的全部边界粒子,从而原有数据块及边界粒子构成新的数据块,保证计算的完整性。
在神威架构中核组中的从核为8*8阵列设置;为了适应神威架构中的从核阵列,提高数据的读取效率,尽可能的让一个从核自核组对应的存储器中读取数据的长度长,同一行的从核负责同一Y维度的分块计算,同一行的从核沿着X维度的顺序分别对一个分块进行计算;如图3所示,本实施例步骤S103中,“核组的一个从核沿Z维度负责一个分块的计算”中的具体为:位于同一Y维度的分块构成一个总分块,总分块可沿在Y维度上被分割为8个总子分块,每个总子分块包括同一Y维度中每个分块中的部分;同一行的从核分别沿着Y维度顺序读取总子分块,一个从核读取一个总子分块;从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核;在寄存器通信完成后,从核沿Z维度负责一个分块的计算。通过一个从核沿着X维度连续的读取数据,实现同一行的从核沿着Y维度分别读取一个总子分块,然后通过寄存器间通信传输读取的属于其他从核的部分。
为了进一步提高数据传输效率,在进行寄存器间通信,将边界粒子与分块中的部分进行打包构成子分块,保证每个分块计算的完成,同时进一步减少寄存器间通信所需的时间,让每个从核能够在最短时间内得到所需计算的分块及边界粒子,因此,本实施例1步骤S103中“从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核”具体为:从核读取总子分块后,沿X维度将总子分块打包为8个子分块,每个子分块对应一个从核,通过寄存器通信将全部子分块传递给相应从核;其中,子分块包括从核对应的分块的部分及对从核对应的分块的部分进行计算所需的边界粒子。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述,但本发明并不局限于上述特定实施方式,其中未详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,并不影响本发明的实质内容。因此,凡未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (4)
1.一种基于神威架构的气体动理学算法优化方法,其特征在于,包括若干核组;所述核组包括一个主核和64个从核;
将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算;
核组负责一个数据块的计算时,将数据块分割为若干数据子块,核组负责依次对所有数据子块进行计算;
核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算;
所述“核组负责一个数据子块计算时,将数据子块分割为64个分块,核组的一个从核负责一个分块的计算”具体为:核组负责一个数据子块计算时,将数据子块沿X维度与Y维度分割为8*8的阵列共64个分块,核组的一个从核沿Z维度负责一个分块的计算;
所述分块由若干沿X维度与Y维度的粒子层构成;所述核组中还设置有64个与所述从核一一对应的局部存储器;所述“核组的一个从核沿Z维度负责一个分块的计算”具体为:从核沿Z维度对分块进行计算时,从核的局部存储器中始终保持相同数量的奇数层连续的粒子层,位于中间层的粒子层的计算依赖于其他粒子层,从核对局部存储器中的中间粒子层计算更新,导出计算更新后的中间粒子层到主存,之后局部存储器中的首层粒子层流出、流入与末尾粒子层相邻的后一粒子层,进而对新组成的中间粒子层计算更新并导出至主存,重复流出、流入、计算更新、导出的步骤直至对整个分块中粒子层的计算更新完成。
2.如权利要求1所述的基于神威架构的气体动理学算法优化方法,其特征在于,每个数据块中均含有与之相邻的数据块中粒子计算所必须的粒子,该粒子为边界粒子,边界粒子所在的粒子层为边界粒子层;
步骤“将数据层按照可用的核组数量划分为数量相当的若干数据块,一个核组负责一个数据块的计算”具体为:将数据层按照可用的核组数量划分为数量相当的若干数据块,沿X维度、Y维度、Z维度分别将相应的边界粒子层中的全部粒子传递给相邻数据块对应的核组,核组接收到的边界粒子与本身所含数据块构成一个完整的核组计算所需的数据块,一个核组负责一个数据块的计算。
3.如权利要求1所述的基于神威架构的气体动理学算法优化方法,其特征在于,所述核组中的从核为8*8阵列设置;同一行的从核负责相同Y维度的分块计算,同一行的从核沿着X维度的顺序分别对一个分块进行计算;
所述“核组的一个从核沿Z维度负责一个分块的计算”具体为:
位于同一Y维度的分块构成一个总分块,总分块可沿Y维度被分割为8个总子分块,每个总子分块包括同一Y维度中每个分块中的部分;
同一行的从核分别沿着Y维度顺序读取总子分块,一个从核读取一个总子分块;从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核;在寄存器通信完成后,从核沿Z维度负责一个分块的计算”。
4.如权利要求3所述的基于神威架构的气体动理学算法优化方法 ,其特征在于,所述“从核读取总子分块后,通过寄存器通信将总子分块属于其他从核对应分块的部分传递给相应从核”具体为:从核读取总子分块后,沿X维度将总子分块打包为8个子分块,每个子分块对应一个从核,通过寄存器通信将全部子分块传递给相应从核;
其中,子分块包括从核对应的分块的部分及对从核对应的分块的部分进行计算所需的边界粒子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347763.2A CN111104765B (zh) | 2019-12-24 | 2019-12-24 | 基于神威架构的气体动理学算法优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347763.2A CN111104765B (zh) | 2019-12-24 | 2019-12-24 | 基于神威架构的气体动理学算法优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104765A CN111104765A (zh) | 2020-05-05 |
CN111104765B true CN111104765B (zh) | 2021-08-17 |
Family
ID=70424021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911347763.2A Active CN111104765B (zh) | 2019-12-24 | 2019-12-24 | 基于神威架构的气体动理学算法优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104765B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114970294B (zh) * | 2022-08-02 | 2022-10-25 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273094A (zh) * | 2017-05-18 | 2017-10-20 | 中国科学院软件研究所 | 一种适应于“神威·太湖之光”上hpcg优化的数据结构及其高效实现方法 |
CN107451097A (zh) * | 2017-08-04 | 2017-12-08 | 中国科学院软件研究所 | 国产申威26010众核处理器上多维fft的高性能实现方法 |
CN110188462A (zh) * | 2019-05-29 | 2019-08-30 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的lbm算法优化方法 |
CN110362780A (zh) * | 2019-07-17 | 2019-10-22 | 北京航空航天大学 | 一种基于申威众核处理器的大数据张量典范分解计算方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095583B (zh) * | 2016-06-20 | 2018-04-17 | 国家海洋局第一海洋研究所 | 基于新神威处理器的主从核协同计算编程框架 |
CN108446253B (zh) * | 2018-03-28 | 2021-07-23 | 北京航空航天大学 | 一种针对神威体系架构的稀疏矩阵向量乘的并行计算方法 |
-
2019
- 2019-12-24 CN CN201911347763.2A patent/CN111104765B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273094A (zh) * | 2017-05-18 | 2017-10-20 | 中国科学院软件研究所 | 一种适应于“神威·太湖之光”上hpcg优化的数据结构及其高效实现方法 |
CN107451097A (zh) * | 2017-08-04 | 2017-12-08 | 中国科学院软件研究所 | 国产申威26010众核处理器上多维fft的高性能实现方法 |
CN110188462A (zh) * | 2019-05-29 | 2019-08-30 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的lbm算法优化方法 |
CN110362780A (zh) * | 2019-07-17 | 2019-10-22 | 北京航空航天大学 | 一种基于申威众核处理器的大数据张量典范分解计算方法 |
Non-Patent Citations (1)
Title |
---|
SunwayLB: Enabling Extreme-Scale Lattice Boltzmann Method Based Computing Fluid Dynamics Simulations on Sunway TaihuLight;Zhao liu ET AL;《2019 IEEE international parallel and Distributed processing symposium(IPDPS)》;20190524;557-566页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111104765A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rocki et al. | Fast stencil-code computation on a wafer-scale processor | |
CN108564168B (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
KR0169161B1 (ko) | 정보처리 시스템과 정보처리 시스템에서의 계산방법 | |
CN110383237A (zh) | 可重新配置的矩阵乘法器系统和方法 | |
CN103970960B (zh) | 基于gpu并行加速的无网格伽辽金法结构拓扑优化方法 | |
JP2019537793A (ja) | ニューラルネットワーク計算タイル | |
JP7078758B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
US20210406437A1 (en) | Programmable chip, design method and device | |
CN105468439A (zh) | 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法 | |
CN106294278B (zh) | 用于动态可重构阵列计算系统的自适硬件预配置控制器 | |
CN110516316B (zh) | 一种间断伽辽金法求解欧拉方程的gpu加速方法 | |
CN109146067A (zh) | 一种基于FPGA的Policy卷积神经网络加速器 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN111104765B (zh) | 基于神威架构的气体动理学算法优化方法 | |
CN111079078B (zh) | 面向结构网格稀疏矩阵的下三角方程并行求解方法 | |
CN107506329B (zh) | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 | |
Langguth et al. | Scalable heterogeneous CPU-GPU computations for unstructured tetrahedral meshes | |
CN114970294A (zh) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 | |
CN110532093B (zh) | 数值核反应堆多几何形状全堆芯子通道并行任务划分方法 | |
CN101021831A (zh) | 面向科学计算的64位流处理器芯片体系结构 | |
KR102041960B1 (ko) | 병렬 처리 방법 및 병렬 처리 장치 | |
JP5321691B2 (ja) | 並列計算装置、並列計算方法、および並列計算プログラム | |
CN114385972A (zh) | 一种直接求解结构化三角稀疏线性方程组的并行计算方法 | |
Wang et al. | FP-AMR: A Reconfigurable Fabric Framework for Adaptive Mesh Refinement Applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |