CN106250584B - 在粒子模拟算法并行中去除数据竞争的体分配并行方法 - Google Patents
在粒子模拟算法并行中去除数据竞争的体分配并行方法 Download PDFInfo
- Publication number
- CN106250584B CN106250584B CN201610562865.6A CN201610562865A CN106250584B CN 106250584 B CN106250584 B CN 106250584B CN 201610562865 A CN201610562865 A CN 201610562865A CN 106250584 B CN106250584 B CN 106250584B
- Authority
- CN
- China
- Prior art keywords
- grid
- particle
- data contention
- parallel
- grids
- 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
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
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于粒子模拟方法并行技术领域,具体为一种在粒子模拟算法并行中去除数据竞争的体分配并行方法。本发明通过设定:三维粒子模拟算法中一个网格的数据竞争影响范围Nc=Ns×Ns×Ns,其中Ns=2×nMax+1,nMax为三维粒子模拟算法中一个网格的数据竞争影响范围的最大值;然后对所有网格新增一个为后续应用去除数据竞争方法的编号,编号规则以长宽高均为Ns数目的网格集合为单元,依次编号为1‑Ns,并以此循环,直至遍历所有网格为止;再将编号相同的网格提取出来放入一个集合中,产生Nc个集合;最后将Nc个集合串行执行。本发明使得对粒子模拟算法并行的效率因去除数据竞争而明显提高。
Description
技术领域
本发明属于粒子模拟方法并行技术领域。在通过计算机程序实现三维粒子模拟算法及其并行化过程中,涉及一种在三维算法并行过程中如何去除数据竞争的并行方法,具体为一种在三维粒子模拟算法并行中去除数据竞争的体分配并行方法。
背景技术
在气体放电、真空电子器件等涉及场与带电粒子相互作用的领域中,带电粒子在场的作用下运动,从而改变带电粒子在空间中的分布状态。粒子的状态反过来影响空间的场分布。在上述场与带电粒子相互作用过程中,无论是结构还是物理特性都是不满足任何对称性的,或者任一方向的物理特性均无法通过理论解析等除数值计算之外的方法得到,则对该类场与带电粒子相互作用的数值模拟必须采用三维粒子模拟算法来实现。粒子模拟算法的模拟负担会随着数值求解维数的增加呈数量级的增加,因此在利用三维粒子模拟方法对场与粒子相互作用问题描述时,由于三维空间网格划分产生的大量网格数及随之而产生的庞大的模拟粒子数目,使得粒子模拟程序的运行效率非常低。为了降低三维粒子模拟程序的模拟负担,通常会将模拟程序并行化来缩短运行时间,但在并行过程中,由于存在数据竞争,极大地抑制了并行程序的并行效率。
当多个线程对同一块内存进行修改的时候就会带来数据竞争,而三维粒子模拟程序计算过程中,如果以网格为单元分配线程,则遇到的数据竞争一般有三种情况:
1、不同线程中粒子跨越到同一网格的时候。该种情况的具体实例如图1所示,当线程i中的粒子和线程j中的粒子同时跨越到线程k中的网格时,线程i使线程k中的网格的粒子数从n变到n+1,线程j也使得线程k的网格的粒子数从n变到n+1,这就使得线程i和线程j对线程k的网格的粒子数统计出现了数据竞争。
2、不同线程中粒子对同一网格内电流密度均有贡献的时候。该种情况的具体实例如图2所示,当线程i中的粒子和线程j中的粒子同时对线程k中的网格的电流密度均有贡献时,对于线程k中的网格的电流密度的求解会存在数据竞争。
3、不同线程中粒子对同一网格内电荷密度均有贡献的时候。该种情况的具体实例如图3所示,当线程i中的粒子和线程j中的粒子同时对线程k中的网格的电荷密度均有贡献时,对于线程k中的网格的电荷密度的求解会存在数据竞争。
对于带有上述数据竞争的三维粒子模拟程序,为了保证计算的准确性,对其并行的常规方法有两种。第一种方法是不并行具有竞争的部分,即包含数据竞争部分的程序串行执行;第二种方法是用锁或者原子操作来对并行程序进行控制,即包含数据竞争部分的程序在无竞争时并行、在竞争发生时串行。采用第一种方法对三维粒子模拟程序进行并行时,由于存在数据竞争部分的程序是串行的,而数据竞争部分占总体程序的比例很高,所以第一种方法的并行效率很低,加速比很小。采用第二种方法对三维粒子模拟程序进行并行时,数据竞争部分采用锁或者原子操作来控制,当竞争未发生时并行效率高,但当竞争发生时实质也是串行执行的,而竞争发生的频率在三维粒子模拟程序中很高,所以第二种方法的并行效率也很低。
发明内容
针对上述存在问题或不足,为了解决三维粒子模拟程序在并行过程中由于存在数据竞争导致并行效率低的问题,本发明提供了一种在粒子模拟算法并行中去除数据竞争的体分配并行方法。
具体技术方案如下:
为了表述该方法,进行如下的假设:
步骤1、
设定粒子在单位时间步长内的运动最多可以跨越L个网格;
设定求解网格上电流密度时,某一个网格中的粒子对电流密度的贡献最多影响与粒子所在网格相邻的M个网格;
设定求解网格上电荷密度时,某一个网格中的粒子对电荷密度的贡献最多影响与粒子所在网格相邻的N个网格;
步骤2、
由以上三个设定可知,三维粒子模拟算法中一个网格的数据竞争影响范围取决于L、M、N中的最大值。设L、M、N中的最大值为nMax,则三维粒子模拟算法中一个网格的数据竞争影响范围为Nc=Ns×Ns×Ns个网格,其中Ns=2×nMax+1。然后对所有网格新增一个为后续应用去除数据竞争方法的编号,编号规则是以长宽高均为Ns数目的网格集合为单元,依次编号为1、2、……、Nc,并以此循环,直至遍历所有网格为止。
步骤3、
待所有网格均被赋予编号之后,将编号相同的网格提取出来放入一个集合中,则最终可以产生Nc个集合。这Nc个集合中的每一个集合,其中的所有网格均不存在数据竞争,可以直接并行。最后将Nc个集合串行执行。
综上所述,本发明通过采用如上的体分配并行方法使得对粒子模拟算法并行的效率因去除数据竞争而明显提高。
附图说明
图1为粒子跨越网格时产生的数据竞争;
图2为求解电流密度时产生的数据竞争;
图3为求解电荷密度时产生的数据竞争;
图4为去除数据竞争的体分配方法中的网格编号实例;
图5为去除数据竞争的体分配方法中的网格分组实例。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
假设nMax=1,则Ns=3,Nc=27。
首先以长宽高各为Ns=3的连续网格集合为单元,依次编号为1、2、……、27,并以此循环,直至遍历所有网格为止。如图4所示。
然后将编号相同的网格提取出来放入一个集合中,则最终可以产生27个集合,如图5所示。其中编号为1的所有网格形成第1个集合,编号为2的所有网格形成第2个集合,以此类推,直至编号为27的所有网格形成第27个集合。
这27个集合中的每一个集合,其中的所有网格均不存在数据竞争,因此集合内部可以直接并行。最后27个集合之间串行执行。
综上可见,本发明通过采用如上的体分配并行方法去除了对粒子模拟算法并行中的数据竞争,明显提高了粒子模拟算法的并行效率。
Claims (1)
1.在粒子模拟算法并行中去除数据竞争的体分配并行方法,具体技术方案如下:
步骤1、
设定粒子在单位时间步长内的运动最多可以跨越L个网格;
设定求解网格上电流密度时,某一个网格中的粒子对电流密度的贡献最多影响与粒子所在网格相邻的M个网格;
设定求解网格上电荷密度时,某一个网格中的粒子对电荷密度的贡献最多影响与粒子所在网格相邻的N个网格;
步骤2、
设L、M、N中的最大值为nMax,则三维粒子模拟算法中一个网格的数据竞争影响范围为Nc=Ns×Ns×Ns个网格,其中Ns=2×nMax+1;然后对所有网格新增一个为后续应用去除数据竞争方法的编号,编号规则是以长宽高均为Ns数目的网格集合为单元,依次编号为1、2、……、Nc,并以此循环,直至遍历所有网格为止;
步骤3、
待所有网格均被赋予编号之后,将编号相同的网格提取出来放入一个集合中,则最终可以产生Nc个集合,这Nc个集合中的每一个集合,其中的所有网格均不存在数据竞争,最后将Nc个集合串行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610562865.6A CN106250584B (zh) | 2016-07-18 | 2016-07-18 | 在粒子模拟算法并行中去除数据竞争的体分配并行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610562865.6A CN106250584B (zh) | 2016-07-18 | 2016-07-18 | 在粒子模拟算法并行中去除数据竞争的体分配并行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106250584A CN106250584A (zh) | 2016-12-21 |
CN106250584B true CN106250584B (zh) | 2019-05-10 |
Family
ID=57614077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610562865.6A Active CN106250584B (zh) | 2016-07-18 | 2016-07-18 | 在粒子模拟算法并行中去除数据竞争的体分配并行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250584B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704266B (zh) * | 2017-08-28 | 2021-03-30 | 电子科技大学 | 一种应用于解决粒子模拟并行数据竞争的归约方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456036A (zh) * | 2013-08-31 | 2013-12-18 | 西安电子科技大学 | 基于粒子追踪的集成成像微单元图像并行生成方法 |
CN105701284A (zh) * | 2016-01-11 | 2016-06-22 | 西安电子科技大学 | 时变多尺度电大区域海面电磁散射矢量场的并行计算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9803192B2 (en) * | 2013-10-04 | 2017-10-31 | Cornell University | Programmable and reconfigurable microcolumn affinity chromatography device, system, and methods of use thereof |
-
2016
- 2016-07-18 CN CN201610562865.6A patent/CN106250584B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456036A (zh) * | 2013-08-31 | 2013-12-18 | 西安电子科技大学 | 基于粒子追踪的集成成像微单元图像并行生成方法 |
CN105701284A (zh) * | 2016-01-11 | 2016-06-22 | 西安电子科技大学 | 时变多尺度电大区域海面电磁散射矢量场的并行计算方法 |
Non-Patent Citations (1)
Title |
---|
电磁粒子模拟软件并行算法的研究;廖臣;《中国优秀硕士学位论文全文数据库 基础科学辑》;20070115(第01期);第A005-84/摘要、正文2-54页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106250584A (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Microscopic studies of production cross sections in multinucleon transfer reaction Ni 58+ Sn 124 | |
Davidson et al. | Massively parallel, three-dimensional transport solutions for the k-eigenvalue problem | |
CN105654552B (zh) | 一种面向任意分布大规模点云数据的快速Delaunay构网方法 | |
Hawkins et al. | Efficient massively parallel transport sweeps | |
CN107704266B (zh) | 一种应用于解决粒子模拟并行数据竞争的归约方法 | |
Funke et al. | Parallel track reconstruction in CMS using the cellular automaton approach | |
CN106250584B (zh) | 在粒子模拟算法并行中去除数据竞争的体分配并行方法 | |
Claustre et al. | Particle-in-cell Monte Carlo collision model on GPU—application to a low-temperature magnetized plasma | |
CN104680235A (zh) | 圆形微带天线谐振频率设计方法 | |
CN106201732B (zh) | 在粒子模拟算法并行中去除数据竞争的线分配并行方法 | |
CN106250245B (zh) | 一种去除粒子模拟算法并行运算中数据竞争的方法 | |
Shah et al. | A novel implementation of 2D3V particle-in-cell (PIC) algorithm for Kepler GPU architecture | |
CN102930102B (zh) | 一种微波部件二次电子倍增仿真中粒子合并方法 | |
CN106548512B (zh) | 网格模型数据的生成方法 | |
Rampp et al. | Gpec: A real-time–capable tokamak equilibrium code | |
Grewe et al. | Conserving approximations in direct perturbation theory: new semianalytical impurity solvers and their application to general lattice problems | |
Kalling et al. | Accelerating the numerical simulation of magnetic field lines in tokamaks using the GPU | |
CN106547722A (zh) | 一种大数据并行优化方法 | |
CN104156268B (zh) | 一种GPU上MapReduce的负载分配和线程结构优化方法 | |
Staar et al. | Taking a quantum leap in time to solution for simulations of high-Tc superconductors | |
Iadarola et al. | Electron cloud simulations with PyECLOUD | |
Jiang et al. | A fine-grained parallel power flow method for large scale grid based on lightweight GPU threads | |
Veras et al. | A scale-free structure for power-law graphs | |
CN105279137A (zh) | 一种面向gpu并行的三对角矩阵方程求解方法 | |
Łodyga et al. | Parallel implementation of a Particle-in-Cell code in Julia programming language |
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 |