CN113391932A - 面向异构众核架构的并行特征线法输运扫描方法及装置 - Google Patents
面向异构众核架构的并行特征线法输运扫描方法及装置 Download PDFInfo
- Publication number
- CN113391932A CN113391932A CN202110632652.7A CN202110632652A CN113391932A CN 113391932 A CN113391932 A CN 113391932A CN 202110632652 A CN202110632652 A CN 202110632652A CN 113391932 A CN113391932 A CN 113391932A
- Authority
- CN
- China
- Prior art keywords
- transport
- calculation
- communication
- data
- parallel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 207
- 238000004891 communication Methods 0.000 claims abstract description 141
- 230000006854 communication Effects 0.000 claims abstract description 140
- 238000004364 calculation method Methods 0.000 claims abstract description 136
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000000903 blocking effect Effects 0.000 claims abstract description 26
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 23
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 12
- 230000004907 flux Effects 0.000 claims description 56
- 239000000872 buffer Substances 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- YQGOJNYOYNNSMM-UHFFFAOYSA-N eosin Chemical compound [Na+].OC(=O)C1=CC=CC=C1C1=C2C=C(Br)C(=O)C(Br)=C2OC2=C(Br)C(O)=C(Br)C=C21 YQGOJNYOYNNSMM-UHFFFAOYSA-N 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000695274 Processa Species 0.000 description 1
- 241000135164 Timea Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004992 fission Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E30/00—Energy generation of nuclear origin
- Y02E30/30—Nuclear fission reactors
Abstract
本发明公开了一种面向异构众核架构的并行特征线法输运扫描方法及装置,适用于采用区域分解并行算法和特征线法的中子输运计算系统,本发明方法包括:采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现所述设备端上的输运计算和所述主机端与设备端之间的数据拷贝在运行时间上的重叠;其中,所述流指的是在设备端上一个以预设顺序执行的操作队列。本发明可有效提高大规模并行特征线方法中子输运计算软件系统的并行效率。
Description
技术领域
本发明涉及高性能计算与核反应堆工程技术的交叉技术领域,特别涉及一种面向异构众核架构的并行特征线法输运扫描方法及装置。
背景技术
稳态中子输运计算是用于模拟核裂变反应的主要方法之一,主要是对于中子输运稳态方程的求解,计算功率分布、通量分布和有效增殖系数等。目前对其进行求解具有多种不同的离散方式,其中,特征线法以其简洁的计算流程、良好的几何适应性和较高的数值求解精度等优势成为稳态中子输运计算的热点研究方法之一。多能群玻尔兹曼中子输运方程如公式1所示,其中r代表空间向量,Ω代表角向量,包括方位角和极角,g代表中子能群的索引,qg代表源项。用标通量φg表示各向同性散射修正源项,得到源项的计算方法,如公式2所示。
在特征线法的计算过程中,沿着轨迹进行输运扫描计算边界角通量的过程是程序的核心计算部分,输运扫描是指遍历所有的轨迹,并且遍历每条轨迹的每个线段,运用特征线法公式进行计算的过程。如公式3中所示,其中g表示能群,s表示沿着特征线的长度,a表示轨迹角度索引,r表示空间区域索引。边界角通量指沿着轨迹线段计算到达系统或区域边界的角通量数据,包括轨迹的入射中子角通量和轨迹的出射中子角通量。
当轨迹被几何网格截成不同长度的线段后,根据线段的入射中子角通量线段和网格信息等计算线段的出射中子角通量出射中子角通量又作为下一线段的入射中子角通量,直到到达系统边界。轨迹到达几何边界后会根据边界条件的不同将出射中子角通量传递给下一条轨迹作为其入射中子角通量。当采用区域分解并行的方式进行计算时,轨迹段到达并行区域分解边界终止,边界角通量将被发送到相邻的进程以在下一次迭代中使用。
为了使特征线法能够得到高精度计算解,需要增加特征线的密度以及网格的精细程度,导致程序的计算量和存储量增加,采用并行化的方式提高特征线法程序的计算效率成为了该研究的重点和难点之一。
目前国内外对于特征线法中子输运程序的并行化主要有共享内存的线程级并行和分布式内存的进程级并行。虽然单节点多线程的方式可以获得很好的加速比,但是不能解决特征线法对单处理器内存的巨大需求,为了适应规模较大的复杂堆芯结构求解,必须采用跨节点多进程的并行模式。采用区域分解的方式分解几何数据是最普遍也是比较有效的一种并行方式。将整个计算区域划分为多个区域在不同节点进行计算,导致轨迹在区域边界处截断,引入轨迹边界角通量的进程间通信。Willianm Boyd等在OpenMOC中采用四边形区域分解的方式对均匀堆芯结构进行并行计算,从20进程到200进程,并行效率从87%下降到67%,如果进程数量增加,可能会得到更低的并行效率。
导致并行效率下降的主要原因就是进程间通信量占比的增加,通信量的增加直接影响程序的并行效率,导致无法扩大程序的计算规模,如何减少进程间通信时间以提高程序的并行效率是区域分解并行的研究重点之一。
此外,特征线法中子输运扫描计算的核心是大量的浮点数运算,采用加速卡设备(如曙光DCU)也能够有效的提高程序的计算效率,但是引入设备加速计算的同时也引入了主机端(host)和设备端(device)之间的数据拷贝的操作,所以如何减少主机端与设备端之间的数据拷贝时间是采用设备加速程序所要研究的重要部分。但是,目前对于如何减少进程间通信时间以及主机端与设备端之间的数据拷贝时间,以提高程序的并行效率的问题,尚无有效的解决手段。
发明内容
本发明提供了一种面向异构众核架构的并行特征线法输运扫描方法及装置,以解决大规模并行特征线方法中子输运计算系统的并行效率低的技术问题。
为解决上述技术问题,本发明提供了如下技术方案:
一方面,本发明提供一种面向异构众核架构的并行特征线法输运扫描方法,适用于采用区域分解并行算法和特征线法的中子输运计算系统,所述方法包括:
采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现设备端上的输运计算和主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以预设顺序执行的操作队列。
进一步地,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,包括:
采用MPI非阻塞通信的方式,将进程间通信交给预设的通信硬件去完成,在所述通信硬件进行进程间通信的同时,所述主机端进行输运计算。
进一步地,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,还包括:
为每一个进程初始化缓冲区,所述缓冲区包括发送缓冲区和接收缓冲区;其中,所述发送缓冲区用于存储当前进程需要向其邻居进程发送的轨迹数据,所述接收缓冲区用于存储当前进程从其邻居进程接收的轨迹数据;所述轨迹数据包括轨迹的边界角通量、轨迹的方向以及所连接的轨迹的ID;
在进程间通信时,当前进程循环遍历其所有的邻居进程的发送缓冲区。
进一步地,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,还包括:
每个缓冲区一次存放L条轨迹的轨迹数据,一次传输完成后,再将新的轨迹数据打包到缓冲区中,循环重复此过程直至当前进程与其所有邻居进程完成所有轨迹数据的通信;其中0<L<Ntracks/2,Ntracks是需要发送或接收的轨迹总数。
进一步地,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,还包括:
将主机端的输运计算以分批次的方式进行,每次进行Tc条轨迹的输运计算;其中,
式中,Wc表示当前主机端所分配到的待输运计算的轨迹数量,Ntracks表示总的待输运计算的轨迹数量,L表示每个缓冲区中一次存放的轨迹数据的数量。
进一步地,所述设备端包括:从所述主机端到所述设备端的数据拷贝引擎、从所述设备端到所述主机端的数据拷贝引擎以及计算引擎;在所述设备端中,对于命令的处理采用流的方式,即在同一流中,所有的操作只能够顺序执行。
进一步地,所述采用多流异步调用的方式,实现设备端上的输运计算和主机端与设备端间的数据拷贝在运行时间上至少部分重叠,包括:
采用分批的方式,生成Nstream个流,其中,Nstream不小于3;
每次在所述设备端上运行Td条轨迹,其中,Wd表示当前设备端所分配到的待输运计算的轨迹数量;每个流都执行先将Td条轨迹的入射中子角通量从所述主机端拷贝给所述设备端,然后在所述设备端上进行Td条轨迹的输运计算,最后将计算的轨迹出射中子角通量从所述设备端拷贝给所述主机端,采用循环的方式,依次将所有的异步数据拷贝和输运计算组成流水线的形式,直到一次迭代计算的最后,同步等待所有的流执行完成。
另一方面,本发明还提供一种面向异构众核架构的并行特征线法输运扫描装置,适用于采用区域分解并行算法和特征线法的中子输运计算系统,所述面向异构众核架构的并行特征线法输运扫描装置包括:
并行区域分解进程间通信优化模块,用于采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
异构架构下的主机端与加速卡设备端之间的数据拷贝优化模块,用于当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现所述设备端上的输运计算和所述主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以预设顺序执行的操作队列。
再一方面,本发明还提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。
又一方面,本发明还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。
本发明提供的技术方案带来的有益效果至少包括:
1)本发明采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,在增加了并行算法的情况下,尽可能地隐藏了通信所带来的附加时间,从而提高了程序的并行效率。
2)当CPU和设备端进行协同计算时,本发明采用多stream异步调用的方式实现设备端上的计算和主机端与设备端之间的数据拷贝重叠,在加速中子输运扫描算法核心计算部分的同时尽量减少了由于数据拷贝所增加的运行时间。
3)本发明采用数据分批次进程间通信的方式,在一定程度上减少了通信缓冲区所占内存,同时也能够导致通信信道被低带宽要求的数据频繁填充,使得通信设备一直处于满负荷状态,提高通信效率。
4)本发明采用缓冲同步的方式进行进程间通信,一次和周围所有的邻域进行通信,从而在一定程度上减少了在通信时的循环次数。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为区域分解边界轨迹点对点通信示意图;
图2为迭代计算的数据延迟更新示意图;
图3为本发明实施例提供的设备端异步数据拷贝和计算示意图;
图4为本发明实施例提供的MPI发送/接收缓冲区数据存储形式示意图;
图5为本发明实施例提供的CPU计算与MPI通信重叠示意图;
图6为本发明实施例提供的面向异构众核架构的并行特征线法输运扫描方法的执行流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
第一实施例
本实施例提供了一种面向异构众核架构(包含多核CPU和多加速卡的异构系统,如配备DCU的国产曙光超级计算机),采用特征线法求解中子输运方程的并行输运扫描方法,通过运用流水线的思想建立输运扫描的迭代格式,实现进程间通信、主机-设备通信、输运计算三者的重叠,隐藏数据移动的开销,提高大规模并行特征线方法中子输运计算软件系统的并行效率。具体地,本方法是通过重叠隐藏MPI(信息传递接口)进程间通信代价以及主机(以多核CPU为例)和设备(本文的设备端指的是加速卡,用于进行加速计算的硬件设备,常见的有NVIDIA的GPU等,本实施例以曙光DCU为例)协同计算时的数据拷贝代价以提高程序的并行效率,解决大规模特征线法中子输运计算的关键问题。本方法主要包括并行区域分解进程间通信问题和异构架构下的主机端与加速卡设备端之间的数据拷贝问题两部分,本方法的实现过程包括:
采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
需要说明的是,当进行区域分解并行算法时,轨迹在区域边界被截断,导致区域边界上的轨迹需要与另外一个进程的轨迹进行通信。为了提高程序的精度,需增加计算的轨迹数量,随之也会导致通信量的增加。同时,如果计算规模较大,需要增加区域数量来提高程序的并行性,也会导致通信量的增加。通过采用计算与进程间通信重叠的优化方式,能够使程序在计算的同时进行部分进程间的通信,在一定程度上实现了对通信时间的隐藏,提高程序的并行效率。
当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现设备端上的输运计算和主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以特地顺序执行的操作队列。
需要说明的是,当采用主机端(通用CPU,例如Intel至强处理器等)与加速卡设备端(支持HIP或者CUDA编程的加速卡,例如曙光DCU等)协同计算时,程序的核心计算部分得到了有效的加速,但由于有多进程的存在,需要CPU执行进程间的数据交换,引入了主机端和设备端之间的频繁数据拷贝,利用异步计算和数据拷贝的过程,可以隐藏部分数据拷贝的时间,在一定程度上减少数据拷贝所带来的负面影响,以提高异构架构下协同计算时的运行效率。
特征线法的输运扫描的基本流程是:一次迭代中遍历所有轨迹,对每条轨迹按照从起点到终点的顺序遍历它包含的所有线段,对每一线段应用特征线法公式计算边界角通量。计算直到轨迹终点时,将得到轨迹出射中子角通量。在一次迭代的结束,需要根据边界条件更新轨迹起点的入射中子角通量用于下一次迭代计算。由于区域分解的存在,区域分解边界的轨迹入射中子角通量数据从相邻区域进程接收。边界角通量数据流如表1所示,第i次迭代接收到的边界角通量数组bi用于第i+1次计算,第i+1次计算的结果bi'将在第i+2次迭代时发送给邻居进程,即每次输运扫描计算所应用的初始边界角通量并不是当前其他进程计算所得到的结果,而是其他进程上一次计算所得到的结果,采用延迟更新的方式,对于计算和通信的先后顺序要求不那么严格,是能够进行计算和MPI进程间通信重叠的基础。基于此,本实施例方法的实现过程如下:
每次迭代中,输运扫描的输入为边界角通量数组bi,将该数组分为三部分:
-从邻居进程接收的,记为ri;
-向邻居进程发送的,记为si;
-其余的,记为pi。
在本实施例中,数组bi的各个部分与迭代次数、通信、输运扫描的关系如下表所示:
表1输运扫描迭代计算的数据流
轨迹在区域分解边界进行边界角通量数据跨进程的点对点通信时,每个进程都要与周围所有邻居进程通信,不同进程之间通信的数据也不相同,所以需要为每一个邻居初始化一个发送缓冲区和一个接收缓冲区,在通信时循环遍历所有的邻居进程,缓冲区中所存储的数据除了轨迹的边界角通量外,还需存储轨迹的方向以及所连接的轨迹的ID。此外,每个缓冲区不是一次性存储所有需要发送和接收的数据,而是采用分批次的方式,一次存放L条轨迹的数据信息(0<L<Ntracks/2,Ntracks是总的轨迹数量,一般会根据经验取值Ntracks/100左右),一次传输完成后将新的数据打包到缓冲区中,循环重复这个过程直到与所有的邻居完成所有数据的通信。采用分批次的方式,不仅在一定程度上减少了缓冲区所占内存,而且这种方式能够使得所有的通信信道被很多低带宽需求的通信数据所频繁填充,从而提高性能。
如果使用CPU和设备端协同计算,需要在两者之间分配计算数据,由于输运扫描计算是沿着轨迹进行,将总的轨迹数量Ntracks作为总负载,以Rc和Rd分别代表CPU和设备端的计算性能,负载的动态估计方法为:在两个设备上采用同样数据进行一次输运扫描计算得到的运行时间tc和td,则Rd/Rc=tc/td,CPU上的负载为Wc=Ntracks·Rc/(Rc+Rd),设备端上的负载为Wd=Ntracks·Rd/(Rc+Rd).
由于多进程的存在,当主机端和设备端进行协同计算时,每一次迭代计算后都需要将边界角通量数据从设备端拷贝给主机端,然后通过MPI进程间通信获取下一次迭代的数据,再将数据从主机端拷贝给设备端,数据的频繁拷贝占据了很大一部分运行时间。支持HIP或CUDA编程的加速卡一般都存在三个引擎,包括从主机端到设备端的数据拷贝引擎、从设备端到主机端的数据拷贝引擎以及计算引擎,即主机和设备之间的双向数据拷贝操作和设备端的计算都是相互独立的,所以可以采用异步的方式重叠部分数据拷贝和计算的时间。在设备端中对于命令的处理采用流(stream)的方式,即在同一stream中,所有的操作只能够顺序执行,为了能够实现异步,采用分批的方式,生成Nstream(Nstream≥3)个stream分别控制(大于3个stream就可以让三个引擎在一定程度上同时进行操作),每次在设备端上运行条轨迹,每个stream都执行先将Td条轨迹的入射中子角通量从主机端拷贝给设备端,然后在设备端上进行Td条轨迹的计算,最后将计算的轨迹出射中子角通量从设备端拷贝给主机端,从采用循环的方式,依次将所有的异步数据拷贝和核函数启动,形成流水线的形成,直到一次迭代计算的最后同步等待所有的stream执行完成。
采用MPI非阻塞通信,不必等到通信操作完成便可以返回,通信操作可以交给特定的通信硬件去完成,在通信硬件进行通信操作的同时CPU进行计算,从而实现计算与通信的重叠。由于MPI的进程间通信采用分批次操作,为了能够使得多次通信都能够与计算进行重叠,采用将CPU的计算分批次的方式进行,每次进行Tc条轨迹的计算,在MPI非阻塞调用启动后直接进行轨迹的计算,可以实现计算与通信的重叠,提高程序的运行效率。由于每个进程需要与周围最多14个邻居进行通信,且6个面相邻进程需要通信的轨迹数量远大于其余边相邻进程,所以采用来确定每次分批计算的轨迹数据。
基于上述,采用本实施例所提供的方法实现并行输运扫描的步骤如下:
A.读取输入参数,实现方法为:
A1.读取区域分解信息,在x,y,z方向划分的区域数量nx,ny,nz;
A2.读取轨迹生成所需的参数,包括轨迹方位角数量a,轨迹间距δx等;
A3.读取能群的数量G;
A4.读取每个缓冲区所存储的轨迹数量L;
A5.读取是否使用CPU进行计算Tagcpu和设备端进行计算Tagdcu;
A6.读取设备端分批计算是每次所计算的轨迹数量Td,如果不使用设备端则Td=0。
B.初始化参数,实现方法为:
B1.采用笛卡尔拓扑的方式进行区域分解,得到分解后的子通信域;
B2.根据轨迹的方位角数量和轨迹间距等信息生成轨迹,获取总的轨迹数量Ntracks;
B3.初始化用于通信的边界角通量Fb和用于暂存计算数据的起始边界角通量Fs,大小均为2·G·Ntracks;
B4.根据区域分解的划分方式,获取进程所包含的所有邻居进程U(u0...um);
C.分配CPU和设备端的计算量,实现方法为:
C1.如果采用CPU和设备端协同进行计算,即Tagcpu=true,Tagdcu=true,首先进行一次输运扫描计算,根据运行时间计算Rc和Rd,并分配计算轨迹数量Wc=Ntracks·Rc/(Rc+Rd),Wd=Ntracks·Rd/(Rc+Rd);
C2.如果仅采用CPU进行计算,即Tagcpu=true,Tagdcu=false,则Wc=Ntracks,Wd=0;
C3.如果仅采用设备端进行计算,即Tagcpu=false,Tagdcu=true,则Wc=0,Wd=Ntracks。
D.CPU和设备端协同下的轨迹输运扫描计算,实现方法为:
D1.拷贝上一次迭代求解得到的边界角通量数据,遍历所有的轨迹将Fs数据拷贝给Fb;
D2.如果Tagdcu=true,启动设备端多stream异步调用,具体实现如下:
a)设置计算轨迹的初始索引为0,Td_id=0,初始化stream编号i=0;
b)初始化一个新的stream_i;
c)启动主机端到设备端的异步数据拷贝,判断需要计算的剩余轨迹数量是否大于Td,如果大于Td,则边界角通量数据从Td_id开始拷贝,共拷贝Td条轨迹的数据,Td_id=Td_id+Td;否则拷贝所有剩余轨迹数据;
d)启动异步计算核函数调用;
e)启动设备端到主机端的异步数据拷贝;
f)判断是否处理完所有的轨迹,如果没有,则i=i+1,返回b);如果完成,结束循环继续下一步。
D4.设置CPU输运计算时轨迹的初始索引Tc_id=Wd,表示从第一条没有被设备端计算的轨迹进行输运计算;
D5.采用缓冲同步方法,每次遍历部分轨迹进行输运计算并进行部分轨迹的边界角通量通信,但是每次都与所有的邻接区域进行通信,具体实现如下:
a)设置布尔变量Tagc和Tagt分别代表通信是否完成和输运计算是否完成,令Tagc=true,Tagt=false;
b)数据封装:遍历所有的邻域U,将需传输给进程u的边界角通量数据Fb和轨迹信息填充到缓冲区Su。根据数据包索引Pu决定开始填充的轨迹数据编号Tidstart,如果需要发送的剩余轨迹数量大于L,则将L条轨迹数据填充到缓冲区中,更新数据包索引Pu=Pu+L,否则将所有剩余轨迹数据填充到缓冲区中;
c)非阻塞发送和接收,启动发送和接收后立即返回:遍历所有的邻域U,判断缓冲区中是否存在需要发送的轨迹数据,需要发送,则置Tagc=false,启动非阻塞发送和接收;
d)如果Tagcpu=true,从Tc_id轨迹开始输运计算,如果剩余未计算轨迹数量大于Tc条,则计算Tc条轨迹,更新轨迹索引Tc_id=Tc_id+Tc;否则计算所有剩余轨迹,并更新Tagt=true;
e)同步等待:等待所有进程的非阻塞发送和接收结束;
f)数据解封:遍历所有的邻域U,将接收缓冲区的轨迹边界角通量数据复制到Fs;
g)检查Tagt和Tagc是否均为true,如果是,结束循环,继续下一步;否则,返回a);
D6.同步等待所有进程结束;
E.同步等待所有的设备端计算完成,删除所有创建的stream。
F.判断迭代是否收敛,若未收敛,则返回继续执行D,迭代收敛则算法结束。
综上,本实施例采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,在增加了并行算法的情况下,尽可能地隐藏了通信所带来的附加时间,从而提高了程序的并行效率。当CPU和设备端进行协同计算时,采用多stream异步调用的方式实现设备端上的计算和主机端与设备端之间的数据拷贝重叠,在加速中子输运扫描算法核心计算部分的同时尽量减少了由于数据拷贝所增加的运行时间。并且,本实施例采用数据分批次进程间通信的方式,在一定程度上减少了通信缓冲区所占内存,同时也能够导致通信信道被低带宽要求的数据频繁填充,使得通信设备一直处于满负荷状态,提高通信效率。此外,本实施例采用缓冲同步的方式进行进程间通信,一次和周围所有的邻域进行通信,从而在一定程度上减少了在通信时的循环次数。
第二实施例
本实施例将结合附图,以具体的应用实例对本发明的面向异构众核架构的并行特征线法输运扫描方法的实现过程进行详细说明。请参阅图1至图6,如图6所示,该面向异构众核架构的并行特征线法输运扫描方法的实现过程如下:
1)区域分解和轨迹生成。根据图1所示,在程序中输入nx=2,ny=2,nz=1,将空间区域分为四个区域分别由Rank0~Rank3四个进程进行计算,每个进程采用相同的轨迹生成方式获取相同的轨迹排布。由图1可知,在区域分解的边界,如果没有区域划分时本应该相连的轨迹(图中黑点位置)需要在每一次迭代计算结束后进行点对点的通信,如传给传给
2)初始化通量和缓冲区。如图2所示,初始化边界角通量数据b0,每条轨迹每个方向每个能群下都有一个边界角通量数据,即每个进程中有(2·G·Ntracks)个初始边界角通量数据。由图2可知,在进行迭代计算时,计算所用的数据并不是上一次的计算结果,这是能够采用计算通信重叠方式的基础。图中第0次计算使用的是初始数据b0,第0次通信的数据是本进程的初始数据b0而不是第0次的计算结果,第1次计算时使用的是第0次通信获得的值,这样第0次的计算和第0次的通信数据不会互相干扰,计算和通信的先后顺序并不是那么严格,也就可以将计算过程和通信过程进行重叠。发送和接收缓冲区的主要数据和存储形式如图4所示,缓冲区中存储了每条轨迹每一个能群下的边界角通量,以及轨迹方向和连接轨迹的ID,保证轨迹在进行点对点通信时的正确性。初始化缓冲区主要是为周围的2个邻域每个邻域生成一个一维数组,数组的大小为((G+2)·L),并且将存储边界角通量数据的位置初始化为0,连接的轨迹的ID设为-1,轨迹的方向设为0和1(图4中第一条轨迹方向为0,第二条则为1,实际上是同一条轨迹正反两个方向的边界角通量)。
3)主机/设备计算分配。首先进行一次输运扫描计算,根据运行时间计算Rc和Rd,并分配计算轨迹数量Wc=Ntracks·Rc/(Rc+Rd),Wd=Ntracks·Rd/(Rc+Rd);
4)更新边界角通量。对应图2中的数据拷贝过程,对于Rank0来说,除了第一次是用初始值,其他都是将上一次从Rank1中获取的边界角通量作为新的一次迭代的初始边界角通量,即b0→B0,b1→B1……
5)设备端多stream计算启动调用。对应于图3中的多stream的设备端异步数据拷贝和计算过程,采用流水线的方式依次将拷贝数据和输运计算的调用启动;由图3可知,采用主机和设备之间的异步数据拷贝方式以及异步启动核函数,利用多stream的方式,可以构造出流水线方式的输运扫描计算,在一定程度上重叠主机和设备之间的数据拷贝时间。图中cpHtoD表示从主机端拷贝数据到设备端,DCU calculate表示在设备端上进行输运计算,cpDtoH表示从设备端拷贝数据到主机端,这三个调用都是异步执行的,启动调用后直接返回。
6)发送缓冲区中填充数据。将各自进程中轨迹的边界角通量按照图4所示的数据存储形式填充到发送缓冲区中,缓冲区一次最多只能发送L轨迹的数据。
7)启动非阻塞发送和接收。通过MPI_Isend()和MPI_Irecv()接口启动程序的发送和接收,处理器会立即返回,通信会交由硬件处理。
8)CPU输运计算。将第4)步得到的起点的边界角通量B0,经过沿着轨迹的输运计算,得到终点的边界角通量S0,为了计算通信重叠,将所有的轨迹计算分段处理,一次只能够进行Tc条轨迹的输运计算。
9)读取接收缓冲区数据。在通信完成后,接收缓冲区中存储的是邻域传来的边界角通量,该数据是下一次计算的初始数据,对应图2中的b1,b2……
10)通信和计算完成判断。为了将计算与通信重叠,程序中将计算和通信在一次迭代中划分为多次进行,如图5所示,在一次迭代中,通信和迭代根据L和Tc的值被分成多段,需要有判断条件使其跳出循环。由于计算和通信的次数不一定一致,所以采用两次判断保证计算和通信都全部完成。由图5可以看到在时间轴上计算与通信重叠的具体实现。其中横轴代表时间,纵轴代表n次迭代,每次迭代的第一行是处理器的处理时间,第二行代表硬件通信时间,图中pack表示向发送缓冲区中写数据,send/receive表示非阻塞通信的启动以及硬件的通信处理的部分,calculate代表输运扫描计算,unpack代表读取接收缓冲区中的数据。时间上的重叠主要体现在send/receive部分。
11)同步设备端。同步等待在最开始启动的所有设备端调用,等待所有设备端上的计算完成。
12)迭代收敛。特征线法的求解需要多次迭代计算才能够得到收敛解,每次迭代计算都需要进行通信,所以如果没有收敛则返回第4)步。
以上已经详细描述了MPI非阻塞通信计算重叠以及设备端多stream异步拷贝的实现过程。其中,MPI计算与通信重叠实现是在启动通信后立即返回,处理器继续执行计算操作,而数据的发送和接收则交由硬件完成,只需要在读取接收缓冲区数据之前同步等待通信完成即可。主机端和设备端之间的数据拷贝和设备端的计算以流水线的方式实现,启动所有的设备端调用后直接进行后面的CPU计算与通信,直到一次迭代计算结束时同步等待所有的设备端完成。
第三实施例
本实施例提供了一种面向异构众核架构的并行特征线法输运扫描装置,适用于采用区域分解并行算法和特征线法的中子输运计算系统,所述装置包括:
并行区域分解进程间通信优化模块,用于采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
异构架构下的主机端与加速卡设备端之间的数据拷贝优化模块,用于当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现所述设备端上的输运计算和所述主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以预设顺序执行的操作队列。
本实施例的面向异构众核架构的并行特征线法输运扫描装置与上述面向异构众核架构的并行特征线法输运扫描方法相对应;其中,该面向异构众核架构的并行特征线法输运扫描装置中的各功能模块实现的功能与上述面向异构众核架构的并行特征线法输运扫描方法的各流程步骤一一对应;故,在此不再赘述。
第四实施例
本实施例提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述实施例的方法。
该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)和一个或一个以上的存储器,其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行上述方法。
第五实施例
本实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述实施例的方法。其中,该计算机可读存储介质可以是ROM、随机存取存储器、CD-ROM、磁带、软盘和光数据存储设备等。其内存储的指令可由终端中的处理器加载并执行上述方法。
此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
Claims (8)
1.一种面向异构众核架构的并行特征线法输运扫描方法,适用于采用区域分解并行算法和特征线法的中子输运计算系统,其特征在于,所述方法包括:
采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现设备端上的输运计算和主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以预设顺序执行的操作队列。
2.如权利要求1所述的面向异构众核架构的并行特征线法输运扫描方法,其特征在于,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,包括:
采用MPI非阻塞通信的方式,将进程间通信交给预设的通信硬件去完成,在所述通信硬件进行进程间通信的同时,所述主机端进行输运计算。
3.如权利要求2所述的面向异构众核架构的并行特征线法输运扫描方法,其特征在于,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,还包括:
为每一个进程初始化缓冲区,所述缓冲区包括发送缓冲区和接收缓冲区;其中,所述发送缓冲区用于存储当前进程需要向其邻居进程发送的轨迹数据,所述接收缓冲区用于存储当前进程从其邻居进程接收的轨迹数据;所述轨迹数据包括轨迹的边界角通量、轨迹的方向以及所连接的轨迹的ID;
在进程间通信时,当前进程循环遍历其所有的邻居进程的发送缓冲区。
4.如权利要求3所述的面向异构众核架构的并行特征线法输运扫描方法,其特征在于,所述采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,还包括:
每个缓冲区一次存放L条轨迹的轨迹数据,一次传输完成后,再将新的轨迹数据打包到缓冲区中,循环重复此过程直至当前进程与其所有邻居进程完成所有轨迹数据的通信;其中0<L<Ntracks/2,Ntracks是需要发送或接收的轨迹总数。
6.如权利要求1所述的面向异构众核架构的并行特征线法输运扫描方法,其特征在于,所述设备端包括:从所述主机端到所述设备端的数据拷贝引擎、从所述设备端到所述主机端的数据拷贝引擎以及计算引擎;在所述设备端中,对于命令的处理采用流的方式,即在同一流中,所有的操作只能够顺序执行。
7.如权利要求6所述的面向异构众核架构的并行特征线法输运扫描方法,其特征在于,所述采用多流异步调用的方式,实现设备端上的输运计算和主机端与设备端间的数据拷贝在运行时间上至少部分重叠,包括:
采用分批的方式,生成Nstream个流,其中,Nstream不小于3;
8.一种面向异构众核架构的并行特征线法输运扫描装置,适用于采用区域分解并行算法和特征线法的中子输运计算系统,其特征在于,所述装置包括:
并行区域分解进程间通信优化模块,用于采用MPI非阻塞通信的方式,将中子输运特征线法的输运计算和相邻进程间通信进行重叠优化,使得输运计算和进程间通信在运行时间上至少部分重叠;
异构架构下的主机端与加速卡设备端之间的数据拷贝优化模块,用于当主机端和加速卡设备端进行协同计算时,采用多流异步调用的方式,实现所述设备端上的输运计算和所述主机端与设备端间的数据拷贝在运行时间上至少部分重叠;其中,所述流指的是在所述设备端上一个以预设顺序执行的操作队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110632652.7A CN113391932B (zh) | 2021-06-07 | 2021-06-07 | 面向异构众核架构的并行特征线法输运扫描方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110632652.7A CN113391932B (zh) | 2021-06-07 | 2021-06-07 | 面向异构众核架构的并行特征线法输运扫描方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113391932A true CN113391932A (zh) | 2021-09-14 |
CN113391932B CN113391932B (zh) | 2023-10-27 |
Family
ID=77618429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110632652.7A Active CN113391932B (zh) | 2021-06-07 | 2021-06-07 | 面向异构众核架构的并行特征线法输运扫描方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113391932B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729688A (zh) * | 2022-11-23 | 2023-03-03 | 北京百度网讯科技有限公司 | 处理器的多线程调度方法、装置、电子设备和存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040009455A1 (en) * | 2002-07-09 | 2004-01-15 | Ren-Tai Chiang | Monte carlo criticality-mode systems and methods for computing neutron and gamma fluence in a nuclear reactor |
US20070237282A1 (en) * | 2006-04-06 | 2007-10-11 | Georgia Tech Research Corporation | Boundary condition adjustment methods and systems |
US20120057667A1 (en) * | 2010-09-08 | 2012-03-08 | Mitsubishi Heavy Industries, Ltd. | Resonance calculation program and analyzing apparatus |
US20130166223A1 (en) * | 2011-12-23 | 2013-06-27 | Ge-Hitachi Nuclear Energy Americas Llc | Methods, systems, and computer program products for generating fast neutron spectra |
CN104849698A (zh) * | 2015-05-21 | 2015-08-19 | 中国人民解放军海军工程大学 | 一种基于异构多核系统的雷达信号并行处理方法及系统 |
CN107943592A (zh) * | 2017-12-13 | 2018-04-20 | 江苏省邮电规划设计院有限责任公司 | 一种面向gpu集群环境的避免gpu资源争用的方法 |
US20180150454A1 (en) * | 2016-11-29 | 2018-05-31 | Wipro Limited | System and method for data classification |
US20180217873A1 (en) * | 2017-01-21 | 2018-08-02 | Schlumberger Technology Corporation | Scalable computation and communication methods for domain decomposition of large-scale numerical simulations |
CN110287450A (zh) * | 2019-06-25 | 2019-09-27 | 上海交通大学 | 基于积分变分节块法的响应矩阵并行处理实现方法 |
CN110472187A (zh) * | 2019-08-06 | 2019-11-19 | 中国原子能科学研究院 | 一种三维中子输运特征线法的负载均衡并行方法 |
CN110543663A (zh) * | 2019-07-22 | 2019-12-06 | 西安交通大学 | 一种面向粗粒度MPI+OpenMP混合并行的结构网格区域划分方法 |
CN111695243A (zh) * | 2020-05-20 | 2020-09-22 | 北京科技大学 | 一种同步并行空间分辨随机团簇动力学的通信方法 |
CN112329267A (zh) * | 2020-11-26 | 2021-02-05 | 中国核动力研究设计院 | 一种基于特征线法的组合几何中子输运处理方法及装置 |
CN112346873A (zh) * | 2020-11-26 | 2021-02-09 | 中国核动力研究设计院 | 适应现代超级计算机硬件架构的特征线法多级并行方法 |
-
2021
- 2021-06-07 CN CN202110632652.7A patent/CN113391932B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040009455A1 (en) * | 2002-07-09 | 2004-01-15 | Ren-Tai Chiang | Monte carlo criticality-mode systems and methods for computing neutron and gamma fluence in a nuclear reactor |
US20070237282A1 (en) * | 2006-04-06 | 2007-10-11 | Georgia Tech Research Corporation | Boundary condition adjustment methods and systems |
US20120057667A1 (en) * | 2010-09-08 | 2012-03-08 | Mitsubishi Heavy Industries, Ltd. | Resonance calculation program and analyzing apparatus |
US20130166223A1 (en) * | 2011-12-23 | 2013-06-27 | Ge-Hitachi Nuclear Energy Americas Llc | Methods, systems, and computer program products for generating fast neutron spectra |
CN104849698A (zh) * | 2015-05-21 | 2015-08-19 | 中国人民解放军海军工程大学 | 一种基于异构多核系统的雷达信号并行处理方法及系统 |
US20180150454A1 (en) * | 2016-11-29 | 2018-05-31 | Wipro Limited | System and method for data classification |
US20180217873A1 (en) * | 2017-01-21 | 2018-08-02 | Schlumberger Technology Corporation | Scalable computation and communication methods for domain decomposition of large-scale numerical simulations |
CN107943592A (zh) * | 2017-12-13 | 2018-04-20 | 江苏省邮电规划设计院有限责任公司 | 一种面向gpu集群环境的避免gpu资源争用的方法 |
CN110287450A (zh) * | 2019-06-25 | 2019-09-27 | 上海交通大学 | 基于积分变分节块法的响应矩阵并行处理实现方法 |
CN110543663A (zh) * | 2019-07-22 | 2019-12-06 | 西安交通大学 | 一种面向粗粒度MPI+OpenMP混合并行的结构网格区域划分方法 |
CN110472187A (zh) * | 2019-08-06 | 2019-11-19 | 中国原子能科学研究院 | 一种三维中子输运特征线法的负载均衡并行方法 |
CN111695243A (zh) * | 2020-05-20 | 2020-09-22 | 北京科技大学 | 一种同步并行空间分辨随机团簇动力学的通信方法 |
CN112329267A (zh) * | 2020-11-26 | 2021-02-05 | 中国核动力研究设计院 | 一种基于特征线法的组合几何中子输运处理方法及装置 |
CN112346873A (zh) * | 2020-11-26 | 2021-02-09 | 中国核动力研究设计院 | 适应现代超级计算机硬件架构的特征线法多级并行方法 |
Non-Patent Citations (5)
Title |
---|
C. M. LAVELLE ET.AL.: "Parameterized Radiation Transport Model for Neutron Detection in Complex Scenes", IEEE TRANSACTIONS ON NUCLEAR SCIENCE * |
CHANGJUN HU ET.AL.: "Efficient Parallel Implementation of Molecular Dynamics with Embedded Atom Method on Multi-core Platforms", 2009 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOPS * |
于锐;赵强;: "基于OpenMP的中子输运方程特征线法并行计算研究", 原子能科学技术, no. 10 * |
宋佩涛;张志俭;张乾;梁亮;赵强;: "CPU-GPU协同计算在MOC中子输运异构并行计算中的应用研究", 核动力工程, no. 04 * |
段素霞: "二维中子输运问题的特征线并行算法研究", 中国优秀硕士学位论文全文数据库 (信息科技辑) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729688A (zh) * | 2022-11-23 | 2023-03-03 | 北京百度网讯科技有限公司 | 处理器的多线程调度方法、装置、电子设备和存储介质 |
CN115729688B (zh) * | 2022-11-23 | 2023-09-12 | 北京百度网讯科技有限公司 | 处理器的多线程调度方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113391932B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6525286B2 (ja) | プロセッサコア及びプロセッサシステム | |
Gajski et al. | Essential issues in multiprocessor systems | |
CN103714039B (zh) | 通用计算数字信号处理器 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN104461467A (zh) | 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法 | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
CN110427337B (zh) | 基于现场可编程门阵列的处理器内核及其运行方法 | |
CN108874727A (zh) | 一种面向gpdsp的多核并行计算实现方法 | |
CN103226487A (zh) | 面向异构众核多级存储结构的数据分布与局部性优化方法 | |
US20220043770A1 (en) | Neural network processor, chip and electronic device | |
CN114970294B (zh) | 基于神威架构的三维应变仿真pcg并行优化方法及系统 | |
Lisper | Towards parallel programming models for predictability | |
CN113391932B (zh) | 面向异构众核架构的并行特征线法输运扫描方法及装置 | |
Holk et al. | Declarative parallel programming for GPUs | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
CN111930319B (zh) | 一种多库内存的数据存储、读取方法及系统 | |
CN110543711B (zh) | 一种数值堆热工水力子通道模拟的并行实现与优化方法 | |
CN112947870A (zh) | 一种3D打印模型的G-code并行生成方法 | |
Pereira et al. | Extending OpenACC for efficient stencil code generation and execution by skeleton frameworks | |
CN112783511B (zh) | 一种栅元少群参数计算模块程序的优化方法、系统、终端 | |
CN114706813B (zh) | 多核异构片上系统、非对称同步方法、计算设备和介质 | |
Lin et al. | swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer | |
Hu et al. | VASP porting and parallel optimization on GPU like accelerator | |
Tang et al. | Parallel optimization of stencil computation base on sunway taihulight | |
Raju et al. | Performance enhancement of CUDA applications by overlapping data transfer and Kernel execution |
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 |