CN105183434A - 采用隐式求解的众核流水线并行方法 - Google Patents
采用隐式求解的众核流水线并行方法 Download PDFInfo
- Publication number
- CN105183434A CN105183434A CN201510661925.5A CN201510661925A CN105183434A CN 105183434 A CN105183434 A CN 105183434A CN 201510661925 A CN201510661925 A CN 201510661925A CN 105183434 A CN105183434 A CN 105183434A
- Authority
- CN
- China
- Prior art keywords
- core
- many
- along
- variable
- calculating
- 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.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种采用隐式求解的众核流水线并行方法,包括:在众核处理器的p个计算核心上将变量ai,j沿i方向划分数据,使得变量ai,j被分成p段,其中p为大于1的整数,而且将{ai,j,i=nk,…,nk+1-1}存储在计算核心pk上,其中k=0,…,p-1,并且1=n0<n1<…<np-1=n+1;采用计算核心间寄存器通信实现流水线并行。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种采用隐式求解的众核流水线并行方法。
背景技术
隐式算法(implicitalgorithm)指的是,在将微分方程转化为代数方程的过程中,如果求解某时刻函数值需要用到该时刻的变量,那么这种离散方法即为隐式算法。
在数值计算中,隐式算法由于稳定性好、收敛速度快等优点得到广泛应用。采用隐式算法对微分方程进行离散,最终归结为分块并行求解大型稀疏矩阵线性代数方程组。如果采用两步扫描格式,即LU-SGS方法求解线性代数方程组,将得到递归方程,在给定边界条件后,采用递推方法求解。隐式求解得到的方程组在空间方向有严格的相关性,并行较为困难。
近年来,高性能计算正在从多核CPU并行计算模式向CPU+众核的多级并行计算模式发展。基于众核的高性能并行计算技术在科学与工程数值计算领域显现出巨大的利用价值,能够在保证计算精度的情况下,大幅缩短复杂物理问题的计算时间。但是众核处理器并行度高,每个计算核心存储资源有限,计算核心之间数据交互复杂,因此在众核处理器上实现隐式算法的并行难度更大。
目前众核处理器上的多数应用都是采用显式数值算法,隐式算法的众核应用非常有限,仅能做到部分并行,无法使整个计算区域整体求解,因此无法保证算法的严格隐式,对数值计算的稳定性和收敛性都造成较大影响。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种采用隐式求解的众核流水线并行方法,其能够在众核处理器的各计算核心之间通过流水线并行,实现隐式算法中空间结点的关联,保证串并行结果的严格一致,最大限度地保留隐式算法较高的稳定性和收敛性。
根据本发明,提供了一种采用隐式求解的众核流水线并行方法,包括:
第一步骤:在众核处理器的p个计算核心上将变量ai,j沿i方向划分数据,使得变量ai,j被分成p段,其中p为大于1的整数,而且将{ai,j,i=nk,…,nk+1-1}存储在计算核心pk上,其中k=0,…,p-1,并且1=n0<n1<…<np-1=n+1;
第二步骤:采用计算核心间寄存器通信实现流水线并行。
优选地,第二步骤包括:在沿j方向的循环中,使得非0号计算核心pk从前一个计算核心pk+1处取数据并开始沿i方向的循环,在沿i方向的循环中根据递归函数计算ai,j:=F(ai-1,j),然后结束沿i方向的循环;随后,计算核心pk向后一个计算核心pk+1发送数据此后结束沿j方向的循环。
优选地,变量ai,j沿j方向计算相互独立。
优选地,变量ai,j沿i方向的计算存在着向前依赖关系。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了局部相关的递归问题图示。
图2示意性地示出了根据本发明优选实施例的采用隐式求解的众核流水线并行方法的具体示例的流程图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
本发明主要针对众核处理器,采用流水线并行解决隐式求解带来的分块递归相关性问题,保证隐式求解串并行计算结果严格一致,从而保留隐式求解的稳定性和收敛性优势,扩大众核处理器的应用范围。其中,流水线并行是这样一种并行技术,其基本思想是将一个计算任务分成一系列的阶段,一旦前面的阶段完成,后继的阶段立即开始,处理多个计算任务时,流水线并行能够支持与阶段数相同的并行性。
下面参考附图并且以一个局部相关的递归问题为例,阐述众核处理器上流水线并行算法所对应的方法处理。
隐式算法离散后得到递归方程组,各变量之间存在相关性,需要求解出一个变量后再计算另一个变量,依次求解。如求出变量a0,j,才能计算变量a1,j,然后依次计算ai,j=F(ai-1,j),i=1,…,n,j=1,…,m。其中n和m分别为i和j方向的网格单元数,其中F()是递归方程。其中,i方向和j方向是相互独立的两个方向。
如图1所示,沿j方向计算相互独立,沿i方向的计算存在着向前依赖关系(递归关系),无法独立进行。当数据在众核处理器的各计算核心之间的划分仅沿j方向进行时,计算完全并行。因此,需要考虑当沿i方向进行数据划分时递归问题的并行算法。不失一般性,假设在众核处理器的p个计算核心上沿i方向划分数据,使得变量ai,j被分成p段(p为大于1的整数),其中{ai,j,i=nk,…,nk+1-1}存储在计算核心pk上,k=0,…,p-1,这里1=n0<n1<…<np-1=n+1。采用计算核心间寄存器通信实现流水线并行。
在沿j方向的循环中,使得非0号计算核心pk从前一个计算核心pk+1处取数据并开始沿i方向的循环,在沿i方向的循环中根据递归函数计算ai,j:=F(ai-1,j),然后结束沿i方向的循环;随后,计算核心pk向后一个计算核心pk+1发送数据此后结束沿j方向的循环。
例如,计算流程示例如下:
通过计算核心间流水线并行,实现了递归方程组各变量之间顺序计算,从而保证了众核并行计算结果与串行计算结果的一致性。
相应地,图2示意性地示出了根据本发明优选实施例的采用隐式求解的众核流水线并行方法的具体示例的流程图。
如图2所示,根据本发明优选实施例的采用隐式求解的众核流水线并行方法包括:
第一步骤S1:在众核处理器的p个计算核心上将变量ai,j沿i方向划分数据,使得变量ai,j被分成p段,其中p为大于1的整数,而且将{ai,j,i=nk,…,nk+1-1}存储在计算核心pk上,其中k=0,…,p-1,并且1=n0<n1<…<np-1=n+1;
第二步骤S2:采用计算核心间寄存器通信实现流水线并行。
具体地,例如,第二步骤S2包括下述步骤:在沿j方向的循环中,使得非0号计算核心pk从前一个计算核心pk+1处取数据并开始沿i方向的循环,在沿i方向的循环中根据递归函数计算ai,j:=F(ai-1,j),然后结束沿i方向的循环;随后,计算核心pk向后一个计算核心pk+1发送数据此后结束沿j方向的循环。
本发明使用流水线并行算法实现隐式求解在众核处理器上的应用,其中通过各计算核心间寄存器通信实现流水线并行的方式,而且通过流水线并行解决递归方程组求解的相关性问题,保证隐式数值算法的串并行完全一致,实现隐式算法在众核处理器上的应用。
本发明的优点包括:众核处理器上的多数应用都是采用显式数值算法,隐式算法的众核应用非常有限,仅能做到部分并行,无法使整个计算区域整体求解。采用本发明,能够有效解决递归方程组求解的相关性问题,保证隐式数值算法的串并行完全一致,从而最大限度地保留隐式算法较高的稳定性和收敛性,实现隐式算法在众核处理器上的应用。
此外,需要说明的是,除非特别指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (4)
1.一种采用隐式求解的众核流水线并行方法,其特征在于包括:
第一步骤:在众核处理器的p个计算核心上将变量ai,j沿i方向划分数据,使得变量ai,j被分成p段,其中p为大于1的整数,而且将{ai,j,i=nk,…,nk+1-1}存储在计算核心pk上,其中k=0,…,p-1,并且1=n0<n1<…<np-1=n+1;
第二步骤:采用计算核心间寄存器通信实现流水线并行。
2.根据权利要求1所述的采用隐式求解的众核流水线并行方法,其特征在于,第二步骤包括:在沿j方向的循环中,使得非0号计算核心pk从前一个计算核心pk+1处取数据并开始沿i方向的循环,在沿i方向的循环中根据递归函数计算ai,j:=F(ai-1,j),然后结束沿i方向的循环;随后,计算核心pk向后一个计算核心pk+1发送数据此后结束沿j方向的循环。
3.根据权利要求1或2所述的采用隐式求解的众核流水线并行方法,其特征在于,变量ai,j沿j方向计算相互独立。
4.根据权利要求1或2所述的采用隐式求解的众核流水线并行方法,其特征在于,变量ai,j沿i方向的计算存在着向前依赖关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510661925.5A CN105183434B (zh) | 2015-10-14 | 2015-10-14 | 采用隐式求解的众核流水线并行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510661925.5A CN105183434B (zh) | 2015-10-14 | 2015-10-14 | 采用隐式求解的众核流水线并行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183434A true CN105183434A (zh) | 2015-12-23 |
CN105183434B CN105183434B (zh) | 2017-08-11 |
Family
ID=54905539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510661925.5A Active CN105183434B (zh) | 2015-10-14 | 2015-10-14 | 采用隐式求解的众核流水线并行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183434B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751376A (zh) * | 2009-12-30 | 2010-06-23 | 中国人民解放军国防科学技术大学 | 利用cpu和gpu协同工作对三角线性方程组求解的加速方法 |
CN102902514A (zh) * | 2012-09-07 | 2013-01-30 | 西安交通大学 | 半隐式类粒子法的大规模并行处理方法 |
US20130159669A1 (en) * | 2011-12-20 | 2013-06-20 | International Business Machines Corporation | Low latency variable transfer network for fine grained parallelism of virtual threads across multiple hardware threads |
US8522224B2 (en) * | 2010-06-22 | 2013-08-27 | National Cheng Kung University | Method of analyzing intrinsic parallelism of algorithm |
CN104375803A (zh) * | 2013-08-13 | 2015-02-25 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN104699464A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 一种基于依赖网格的指令级并行调度方法 |
-
2015
- 2015-10-14 CN CN201510661925.5A patent/CN105183434B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751376A (zh) * | 2009-12-30 | 2010-06-23 | 中国人民解放军国防科学技术大学 | 利用cpu和gpu协同工作对三角线性方程组求解的加速方法 |
US8522224B2 (en) * | 2010-06-22 | 2013-08-27 | National Cheng Kung University | Method of analyzing intrinsic parallelism of algorithm |
US20130159669A1 (en) * | 2011-12-20 | 2013-06-20 | International Business Machines Corporation | Low latency variable transfer network for fine grained parallelism of virtual threads across multiple hardware threads |
CN102902514A (zh) * | 2012-09-07 | 2013-01-30 | 西安交通大学 | 半隐式类粒子法的大规模并行处理方法 |
CN104375803A (zh) * | 2013-08-13 | 2015-02-25 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN104699464A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 一种基于依赖网格的指令级并行调度方法 |
Non-Patent Citations (3)
Title |
---|
刘鑫 等: "《CFD 计算中某些并行方法的讨论》", 《信息工程大学学报》 * |
张兵 等: "《基于GPU 和隐式格式的CFD 并行计算方法》", 《航空学报》 * |
李芳 等: "《隐式Runge-Kutta方法在非定常化学非平衡流动中的应用》", 《空气动力学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN105183434B (zh) | 2017-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180322219A1 (en) | Simplification of large networks and graphs | |
US9495329B2 (en) | Calculating node centralities in large networks and graphs | |
Wang et al. | DSP-efficient hardware acceleration of convolutional neural network inference on FPGAs | |
JP7387017B2 (ja) | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム | |
US10210137B2 (en) | Binary multiplier for binary vector factorization | |
Borkar et al. | A new Markov selection procedure for degenerate diffusions | |
CN113407351A (zh) | 执行运算的方法、装置、芯片、设备、介质和程序产品 | |
CN105183434A (zh) | 采用隐式求解的众核流水线并行方法 | |
US10460233B2 (en) | Self-adaptive neural networks | |
US9378535B2 (en) | Efficient duplicate elimination | |
CN104615404A (zh) | 一种基于查表操作的高速浮点除法部件装置 | |
CN115346099A (zh) | 基于加速器芯片的图像卷积方法、芯片、设备及介质 | |
CN109190039B (zh) | 确定相似对象的方法、装置及计算机可读存储介质 | |
CN113094970A (zh) | 一种基于泰勒展开的函数计算加速装置 | |
Chen et al. | High Speed Winograd Convolutional Circuit for Convolutional Neural Networks | |
CN116502028B (zh) | 基于浮点数压缩技术的大规模fft实现方法及装置 | |
CN110751161A (zh) | 基于Spark的节点相似度计算方法、装置及终端 | |
CN117240717B (zh) | 分片结构网格处理方法及优化方法和存储介质、设备 | |
CN112596912B (zh) | 二值或三值神经网络卷积计算的加速运算方法及装置 | |
US20230367548A1 (en) | Computing method | |
AU2022235536B2 (en) | Quantum state processing method, computing device, computing apparatus and storage medium | |
Li et al. | Research on parallel solution of GRAPES Helmholtz equation | |
CN110750249B (zh) | 一种快速傅里叶变换代码的生成方法及装置 | |
KR20150063745A (ko) | 레지스터 페어링을 이용한 simd 연산 방법 및 장치 | |
Zhou et al. | Efficient sorting design on a novel embedded parallel computing architecture with unique memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |