CN110188462A - 基于神威架构的lbm算法优化方法 - Google Patents
基于神威架构的lbm算法优化方法 Download PDFInfo
- Publication number
- CN110188462A CN110188462A CN201910455850.3A CN201910455850A CN110188462A CN 110188462 A CN110188462 A CN 110188462A CN 201910455850 A CN201910455850 A CN 201910455850A CN 110188462 A CN110188462 A CN 110188462A
- Authority
- CN
- China
- Prior art keywords
- subdomain
- dimension
- framework
- responsible
- optimization method
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供的一种基于神威架构的LBM算法优化方法,属于算法的优化方法,包括三维的计算域,将计算域沿X维度和Y维度分割为若干子域;一个进程负责一个子域的独立计算;其中,一个核组对应一个进程。通过将三维的计算域分解成若干子域,每个子域由一个进程独立负责计算,一个进程运行在一个核组上,使得LBM算法适应神威架构,充分利用神威架构下多核组并行计算的优势,提高运算效率。
Description
技术领域
本发明涉及算法的优化方法,尤其涉及一种基于神威架构的LBM算法优化方法。
背景技术
作为流体力学的一个分支,计算流体力学(CFD)已成为几乎所有工业领域中必不可少的工具,用于辅助工程设计,如航空航天,汽车,机械等。与现实的实验方法相比,CFD模拟消耗的资源更少,并允许我们在模拟过程中获取更多细节。按照对控制方程求解精度由低到高,数值模拟方法主要分为雷诺平均数值模拟(RANS),大涡模拟(LES)以及直接数值模拟(DNS)。一般来说,LES和DNS可以获得流场更为详细的时空演变信息,计算结果精确很高,其中直接数值模拟(DNS)被认为是解决湍流问题最有效的方案之一。然而,即使在相对较低的雷诺数下,DNS的计算成本和时间成本也非常高,大多数DNS或LES案例可能需要数月或数年来解决现实世界的工业问题甚至在超级计算机上运行。
格子玻尔兹曼方法(LBM)是一种近几十年发展起来的基于Boltzmann方程求解的介观数值方法。采用碰撞-迁移格式求解流动过程,具有局部相关特性,非常适合并行计算。如今,计算流体力学研究对象的规模和复杂程度向更大更深的方向发展,单个计算节点不能满足计算需求,需要借助于高性能计算机满足计算的需要。
近几年我国在高性能计算机研发领域成绩突出,尤其是纯国产的神威太湖之光超级计算机连续四届荣登世界第一,表明了我国超算建设方面已经走在了世界前列。神威太湖之光,是一款用全国产的异构众核架构处理器“SW26010”的超级计算机,整机有40960个处理器。每个SW26010处理器拥有4个核组,每个核组内包括1个主核、64个从核构成的从核簇,64个从核簇采用8*8网格排列,从核局存(LDM)存储空间64k。
如何在神威架构下实现LBM算法的优化方法,以充分利用神威架构的性能,提升LBM算法的计算效率,是当今亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明提供一种基于神威架构的LBM算法优化方法,以充分发挥神威架构的优势,提升LBM算法的计算速度。
为实现上述目的,本发明提供的技术方案为:
本发明提供的基于神威架构的LBM算法优化方法,包括三维的计算域,
将计算域沿X维度和Y维度分割为若干子域;
一个进程负责一个子域的独立计算;
其中,一个核组对应一个进程。
本发明提供的基于神威架构的LBM算法优化方法,优选地,每一个子域在X维度与Y维度构成的平面上包括内部区域和环绕内部区域四周的边界区域;内部区域内的粒子计算需要X维度、Y维度的点信息均位于该子域内,边界区域内的粒子计算需要X维度、Y维度的点信息部分位于该子域的周围子域内;
在步骤“一个进程负责一个子域的独立计算”的同时,一个子域对应的进程与其周围的子域对应的进程进行边界通信,交换边界区域信息;
其中,主核负责边界通信。
本发明提供的基于神威架构的LBM算法优化方法,优选地,一个子域对应的进程需要与其周围的8个子域对应的进程进行边界通信。
本发明提供的基于神威架构的LBM算法优化方法,优选地,步骤“一个进程负责一个子域的独立计算”具体为,进程先进行内部区域计算,再进行边界区域计算;在“进程先进行内部区域计算”的过程中,进行边界通信;
其中,内部区域计算由从核完成;
边界区域计算由从核与主核共同完成。
本发明提供的基于神威架构的LBM算法优化方法,优选地,进程内,将子域沿Z维度分割为若干个Z子域,一个线程负责一个Z子域的独立计算;
其中,一个从核对应一个线程。
本发明提供的基于神威架构的LBM算法优化方法,优选地,在步骤“一个从核负责一个Z子域的计算”具体为:
线程内,将Z子域沿X维度分割为若干个X子域;
该线程负责沿X维度依次从DMA中读取X子域至从核的LDM中,负责该X子域的独立计算;
其中,线程每次仅读取一个X子域的数据。
本发明提供的基于神威架构的LBM算法优化方法,优选地,与一个X子域相邻且比该X子域先被线程计算的X子域为前X子域,与一个X子域相邻且比该X子域后被线程计算的X子域为后X子域;后X子域中部分粒子计算的沿X维度的点信息包含在一个或多个前X子域中;
步骤“从DMA中读取X子域的数据至从核的LDM中”具体为:若读取的X子域的粒子计算的沿X维度的点信息已经存储在LDM中,则复用存储在LDM中的点信息,放弃从DMA中读取已经存储在LDM中的点信息。
上述技术方案具有如下优点或者有益效果:
本发明提供的一种基于神威架构的LBM算法优化方法,属于算法的优化方法,包括三维的计算域,将计算域沿X维度和Y维度分割为若干子域;一个进程负责一个子域的独立计算;其中,一个核组对应一个进程。本发明提供的基于神威架构的LBM算法优化方法,通过将三维的计算域分解成若干子域,每个子域由一个进程独立负责计算,一个进程运行在一个核组上,使得LBM算法适应神威架构,充分利用神威架构下多核组并行计算的优势,提高运算效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的基于神威架构的LBM算法优化方法的三维计算域的分割示意图;
图2是本发明实施例1提供的基于神威架构的LBM算法优化方法的X维度、Y维度的内部区域、边界区域的示意图;
图3是本发明实施例1提供的LBM采用3维D3Q19模型示意图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
实施例1:
LBM方法将连续介质看作大量位于网格节点上的离散流体质点粒子。粒子按照碰撞和迁移规则在网格上运动,通过对各网格流体质点及运行特征的统计,获得流体宏观运行规律。
由统计力学知,粒子分布函数f的演化满足以下方程:
式中F表示外力,Ω为碰撞相。下标i表示给定的粒子运动方向,Δt为时间步长,τ为无量纲弛豫时间,表征流体恢复到平衡态时的速度。
在本实施例中,LBM采用3维D3Q19模型,如图3所示。
在本实施例中,LBM算的计算区域X或Y维度网格数量一般少于1000,简单的1维区域分解并行度低,而3维区域分解并行度高,但子域间相互重叠部分复杂,大规模运行时边界通信开销更多,因此本发明实施例采用的是一种二维的区域分解方法,以适应神威架构的并行计算,如图1所示,本发明实施例1提供了一种基于神威架构的LBM算法优化方法:S101:将三维的计算域1沿X维度和Y维度分割为若干子域11;S102:一个进程负责一个子域11的独立计算;其中,一个核组对应一个进程。通过将三维的计算域分解成若干子域11,每个子域11由一个进程独立负责计算,一个进程运行在一个核组上,使得LBM算法适应神威架构,充分利用神威架构下多核组并行计算的优势,提高运算效率。
如图2所示,每一个子域在X维度与Y维度构成的平面上包括内部区域和环绕内部区域四周的边界区域;内部区域内的粒子计算需要X维度、Y维度的点信息均位于该子域内,边界区域内的粒子计算需要X维度、Y维度的点信息部分位于该子域的周围子域内;在步骤S102“一个进程负责一个子域的独立计算”的同时,一个子域对应的进程与其周围的8个子域对应的进程进行边界通信,交换边界区域信息;其中,主核负责边界通信。依据上述的D3Q19模型可知,每个点的粒子计算需要周围18个点的信息,位于边界区域内的点,其需要的部分点的信息被划分到其周围的8个子域中的一个子域中,边界区域中的点需要进行粒子计算就需要从DMA中读取被划分在周围子域中的点的信息,为了减少从DMA中的读取次数,本发明实施例采用进程间通信的方式,进行边界区域信息的交换,减少了从DMA中读取次数,提升了DMA带宽的利用率;同时主核负责边界通信,让从核能够得到充分利用,避免从核算力的浪费,提高计算速率。
为了进一步提高效率,充分利用从核与主核之间的并行机制,将边界通信时间隐藏,即让边界通信与从核计算并行工作,为此,步骤“一个进程负责一个子域的独立计算”具体为,进程先进行内部区域计算,再进行边界区域计算;步骤“进程先进行内部区域计算”的过程中,进行边界通信,交换边界区域信息;其中,内部区域计算由从核完成,边界区域计算由从核与主核共同完成。通过该手段可以将边界通信与内部区域计算进行重叠,从而隐藏所有的边界通信开销。
为了充分利用从核,本实施例中,在一个进程内,将子域11沿Z维度分割为若干个Z子域12,一个线程负责一个Z子域12的独立计算;其中,一个从核对应一个线程。例如,可以将子域11沿Z维度按照从核的数量划分为64个Z子域12,每一个从核负责一个Z子域12的独立计算,保证每个从核能够被充分利用。
并且,在SW26010处理器中,每个从核的LDM为64k,一个Z子域的数据大小可能远大于64k,为此在步骤“一个从核负责一个Z子域的计算”中,一个线程内,将Z子域12沿X维度分割为若干个X子域13;该线程负责沿X维度依次从DMA中读取X子域13至从核的LDM中,负责该X子域13的独立计算;其中,线程每次仅读取一个X子域13的数据。划分的X子域13的数据量要小于等于64k,例如可以是X-Y-Z上的64*3*70的大小的X子域13。
与一个X子域13相邻且比该X子域13先被线程计算的X子域为前X子域,与一个X子域相邻且比该X子域后被线程计算的X子域为后X子域;在以一个线程中,后X子域中部分粒子计算的沿X维度的点信息包含在一个或多个前X子域中,为了减少DMA的读取次数,提升DMA带宽,本实施中,步骤“从DMA中读取X子域的数据至从核的LDM中”具体为:若读取的X子域的粒子计算的沿X维度的点信息已经存储在LDM中,则复用存储在LDM中的点信息,放弃从DMA中读取已经存储在LDM中的点信息。通过复用已经存储在LDM中的信息,减少DMA的访问次数,大幅度提高了LBM算法的访存性能。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述,但本发明并不局限于上述特定实施方式,其中未详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,并不影响本发明的实质内容。因此,凡未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (7)
1.一种基于神威架构的LBM算法优化方法,包括三维的计算域,其特征在于,
将计算域沿X维度和Y维度分割为若干子域;
一个进程负责一个子域的独立计算;
其中,一个核组对应一个进程。
2.如权利要求1所述的基于神威架构的LBM算法优化方法,其特征在于,每一个子域在X维度与Y维度构成的平面上包括内部区域和环绕内部区域四周的边界区域;内部区域内的粒子计算需要X维度、Y维度的点信息均位于该子域内,边界区域内的粒子计算需要X维度、Y维度的点信息部分位于该子域的周围子域内;
在步骤“一个进程负责一个子域的独立计算”的同时,一个子域对应的进程与其周围的子域对应的进程进行边界通信,交换边界区域信息;
其中,主核负责边界通信。
3.如权利要求2所述的基于神威架构的LBM算法优化方法,其特征在于,一个子域对应的进程需要与其周围的8个子域对应的进程进行边界通信。
4.如权利要求2所述的基于神威架构的LBM算法优化方法,其特征在于,步骤“一个进程负责一个子域的独立计算”具体为,进程先进行内部区域计算,再进行边界区域计算;在“进程先进行内部区域计算”的过程中,进行边界通信;
其中,内部区域计算由从核完成;
边界区域计算由从核与主核共同完成。
5.如权利要求1所述的基于神威架构的LBM算法优化方法,其特征在于,进程内,将子域沿Z维度分割为若干个Z子域,一个线程负责一个Z子域的独立计算;
其中,一个从核对应一个线程。
6.如权利要求5所述的基于神威架构的LBM算法优化方法,其特征在于,在步骤“一个从核负责一个Z子域的计算”具体为:
线程内,将Z子域沿X维度分割为若干个X子域;
该线程负责沿X维度依次从DMA中读取X子域至从核的LDM中,负责该X子域的独立计算;
其中,线程每次仅读取一个X子域的数据。
7.如权利要求6所述的基于神威架构的LBM算法优化方法,其特征在于,与一个X子域相邻且比该X子域先被线程计算的X子域为前X子域,与一个X子域相邻且比该X子域后被线程计算的X子域为后X子域;后X子域中部分粒子计算的沿X维度的点信息包含在一个或多个前X子域中;
步骤“从DMA中读取X子域的数据至从核的LDM中”具体为:若读取的X子域的粒子计算的沿X维度的点信息已经存储在LDM中,则复用存储在LDM中的点信息,放弃从DMA中读取已经存储在LDM中的点信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455850.3A CN110188462A (zh) | 2019-05-29 | 2019-05-29 | 基于神威架构的lbm算法优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455850.3A CN110188462A (zh) | 2019-05-29 | 2019-05-29 | 基于神威架构的lbm算法优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110188462A true CN110188462A (zh) | 2019-08-30 |
Family
ID=67718398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910455850.3A Pending CN110188462A (zh) | 2019-05-29 | 2019-05-29 | 基于神威架构的lbm算法优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188462A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780842A (zh) * | 2019-10-25 | 2020-02-11 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的船舶三维声弹性模拟计算的并行优化方法 |
CN111104765A (zh) * | 2019-12-24 | 2020-05-05 | 清华大学 | 基于神威架构的气体动理学算法优化方法 |
CN113127200A (zh) * | 2021-04-23 | 2021-07-16 | 苏州流场信息技术有限公司 | 一种基于异构众核的lbm并行优化方法 |
CN116167304A (zh) * | 2023-04-23 | 2023-05-26 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的油藏数值模拟gmres优化方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521854A (zh) * | 2011-12-29 | 2012-06-27 | 北京理工大学 | 一种适用于二维流场的并行流线放置方法 |
CN104933225A (zh) * | 2015-05-25 | 2015-09-23 | 中国科学院过程工程研究所 | 实现计算流体力学大规模实时模拟的方法 |
CN106484532A (zh) * | 2016-09-19 | 2017-03-08 | 华东师范大学 | 面向sph流体模拟的gpgpu并行计算方法 |
CN107273565A (zh) * | 2017-05-04 | 2017-10-20 | 江苏大学 | 一种基于les/lbm的离心泵内流动诱导噪声数值计算方法 |
CN107844654A (zh) * | 2017-11-13 | 2018-03-27 | 北京三力新能科技有限公司 | 一种风机液压变桨系统载荷处理平台 |
WO2019075068A1 (en) * | 2017-10-10 | 2019-04-18 | Exa Corporation | ACOUSTIC EFFECTS OF A MESH ON THE FLOW OF A FLUID |
CN109766208A (zh) * | 2019-01-10 | 2019-05-17 | 国家超级计算无锡中心 | 基于寄存器间通信的非对齐内存访问加速方法 |
-
2019
- 2019-05-29 CN CN201910455850.3A patent/CN110188462A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521854A (zh) * | 2011-12-29 | 2012-06-27 | 北京理工大学 | 一种适用于二维流场的并行流线放置方法 |
CN104933225A (zh) * | 2015-05-25 | 2015-09-23 | 中国科学院过程工程研究所 | 实现计算流体力学大规模实时模拟的方法 |
CN106484532A (zh) * | 2016-09-19 | 2017-03-08 | 华东师范大学 | 面向sph流体模拟的gpgpu并行计算方法 |
CN107273565A (zh) * | 2017-05-04 | 2017-10-20 | 江苏大学 | 一种基于les/lbm的离心泵内流动诱导噪声数值计算方法 |
WO2019075068A1 (en) * | 2017-10-10 | 2019-04-18 | Exa Corporation | ACOUSTIC EFFECTS OF A MESH ON THE FLOW OF A FLUID |
CN107844654A (zh) * | 2017-11-13 | 2018-03-27 | 北京三力新能科技有限公司 | 一种风机液压变桨系统载荷处理平台 |
CN109766208A (zh) * | 2019-01-10 | 2019-05-17 | 国家超级计算无锡中心 | 基于寄存器间通信的非对齐内存访问加速方法 |
Non-Patent Citations (1)
Title |
---|
ZHAO LIU ET AL.: "SunwayLB: Enabling Extreme-Scale Lattice Boltzmann Method Based Computing Fluid Dynamics Simulations on Sunway TaihuLight", 《2019 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780842A (zh) * | 2019-10-25 | 2020-02-11 | 无锡恒鼎超级计算中心有限公司 | 基于神威架构的船舶三维声弹性模拟计算的并行优化方法 |
CN111104765A (zh) * | 2019-12-24 | 2020-05-05 | 清华大学 | 基于神威架构的气体动理学算法优化方法 |
CN111104765B (zh) * | 2019-12-24 | 2021-08-17 | 清华大学 | 基于神威架构的气体动理学算法优化方法 |
CN113127200A (zh) * | 2021-04-23 | 2021-07-16 | 苏州流场信息技术有限公司 | 一种基于异构众核的lbm并行优化方法 |
CN116167304A (zh) * | 2023-04-23 | 2023-05-26 | 山东省计算中心(国家超级计算济南中心) | 基于神威架构的油藏数值模拟gmres优化方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188462A (zh) | 基于神威架构的lbm算法优化方法 | |
CN102880509B (zh) | 基于cuda的格网数字高程模型邻域分析的系统和方法 | |
CN111768502A (zh) | 一种基于gpu加速技术的非结构网格二维洪水模拟系统 | |
CN103345580B (zh) | 基于格子Boltzmann方法的并行CFD方法 | |
CN104933225B (zh) | 实现计算流体力学大规模实时模拟的方法 | |
CN108460195B (zh) | 海啸数值计算模型基于gpu并行的快速执行方法 | |
CN107122545B (zh) | 一种精确计算核反应堆内时空中子分布的方法 | |
CN106683171A (zh) | 一种GPU多线程纹理映射SystemC建模结构 | |
CN103035030A (zh) | 头发模型建模方法 | |
CN102521854A (zh) | 一种适用于二维流场的并行流线放置方法 | |
CN112947870B (zh) | 一种3D打印模型的G-code并行生成方法 | |
CN111186139B (zh) | 一种3d打印模型的多层次并行切片方法 | |
CN105957149A (zh) | 一种适用于高效渲染的城市三维模型数据预处理方法 | |
CN114490011A (zh) | N体模拟在异构架构的并行加速实现方法 | |
CN110532093B (zh) | 数值核反应堆多几何形状全堆芯子通道并行任务划分方法 | |
CN106407499A (zh) | 一种三相变压器三维电磁场的计算方法及装置 | |
KR102041960B1 (ko) | 병렬 처리 방법 및 병렬 처리 장치 | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
CN102646288A (zh) | 一种间隔基本均匀的三维流线放置方法 | |
CN103678888B (zh) | 一种基于欧拉流体模拟算法的心脏血液流动示意显示方法 | |
CN106202613A (zh) | 一种适用于耦合输运计算的大规模并行方法 | |
CN105653772B (zh) | 一种pbx炸药颗粒压制成型数值模拟自动化建模方法及系统 | |
CN105243238B (zh) | 一种一体化快速产品迭代成形装置及其方法 | |
CN109299494B (zh) | 一种反应堆堆芯热工水力多尺度耦合计算的数据重构方法 | |
CN108694299A (zh) | 基于icem-cfd的二维有限元中子学稳态计算方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190830 |
|
RJ01 | Rejection of invention patent application after publication |