CN114186468B - 一种基于gpu加速的二次电子发射模拟方法及系统及设备 - Google Patents
一种基于gpu加速的二次电子发射模拟方法及系统及设备 Download PDFInfo
- Publication number
- CN114186468B CN114186468B CN202111547285.7A CN202111547285A CN114186468B CN 114186468 B CN114186468 B CN 114186468B CN 202111547285 A CN202111547285 A CN 202111547285A CN 114186468 B CN114186468 B CN 114186468B
- Authority
- CN
- China
- Prior art keywords
- electron
- simulation
- calculation
- electrons
- gpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000001133 acceleration Effects 0.000 title claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 97
- 238000004088 simulation Methods 0.000 claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 61
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims abstract description 55
- 230000005672 electromagnetic field Effects 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 18
- 238000009825 accumulation Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 8
- 239000002245 particle Substances 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
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
一种基于GPU加速的二次电子发射模拟方法及系统及设备,包括以下步骤:初始化微放电模拟所需的参数及数据结构,对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进函数的起始位置,并保证该函数在整个程序生命周期内仅执行一次;GPU读取数据后采用并行方式推进计算电子,并对二次电子发射过程进行计算;若达到结束调节则终止模拟计算过程,否则继续计算下一时间的电子推进模拟。本发明提出了一种基于GPU加速的二次电子发射模拟计算方法,采用GPU设备对微波器件中的大量电子进行并行轨迹计算并计算二次电子发射过程,实现了航天微波器件微放电模拟过程的快速、准确模拟。
Description
技术领域
本发明涉属于空间微波部件可靠性研究技术领域,特别涉及一种基于GPU加速的二次电子发射模拟方法及系统及设备。
背景技术
随着科学技术的发展,利用计算机进行数值模拟已经成为科学研究的一种重要方法。作为众多数值模拟方法之一的粒子模拟方法,最初被用来对等离子体进行研究,经过几十年的快速发展和不断完善,应用范围越来越广,其中微波部件微放电粒子模拟就是最重要的应用领域之一。
近年来广泛应用于电子推进及二次电子发射过程算法是基于粗粒度的进程级并行编程模型,最常用的是基于消息通信的MPI并行编程模型。基于MPI并行编程模型的仿真算法,其实质是独立的地址空间和显式并行,即在该模型中,每个进程都有属于自己独立的地址空间,各个进程只能访问自己地址空间内的数据,如果需要访问其他进程地址空间中的数据,则需要用户显式通过消息传递机制来实现。
随着多核处理器的兴起,多线程编程方式越来越受到人们的关注,相比多进程并行模型,多线程模型在上下文切换、线程间通信等方面效率更高。OpenMP采用fork-join的并行执行模式,初始时程序从单线程开始执行,遇到编译制导语句时,单线程根据编译制导语句创建多个子线程,主线程和子线程同时并行完成计算任务,但OpenMP应用范围较窄,只适用于共享存储体系结构计算机。
发明内容
本发明的目的在于提供一种基于GPU加速的二次电子发射模拟方法及系统及设备,以解决当前微放电模拟过程中计算电子推进及二次电子发射过程速度慢的问题。
为实现上述目的,本发明采用以下技术方案:
一种基于GPU加速的二次电子发射模拟方法,包括以下步骤:
初始化微放电模拟所需的参数及数据结构,对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进函数的起始位置,并保证该函数在整个程序生命周期内仅执行一次;
GPU读取数据后采用并行方式推进计算电子,并对二次电子发射过程进行计算;
在GPU完成电子推进及二次电子发射计算后,将数据传回系统主存进行数据结构更新,并由CPU进程判断是否继续进行模拟,若达到结束调节则终止模拟计算过程,否则继续计算下一时间的电子推进模拟。
进一步的,初始化微放电模拟所需的参数及数据结构包括:
步骤1,采用三维CAD建模软件/电磁场仿真软件建立待求电子发射器件模型,然后将其以STL/STEP格式进行存储;
步骤2,通过已有粒子模拟软件/电磁场仿真软件求解电子发射器件中的电磁场分布并将其以频域形式导出;
步骤3,将电子发射器件几何结构进行离散剖分以构成电磁场计算的交错对偶网格体系,即Yee网格;
步骤4,采用已有二次电子发射模拟程序导入步骤1中的几何模型并读取步骤2中导出的电磁场数据。
进一步的,开启电子推进及二次电子发射计算过程,具体步骤如下:
设置初始加载电子参数,包括初始加载电子的总数,每个宏电子所包含的实际电子数目,电子加载区域,电子加载开始时间,电子加载结束时间;计算参数初始化,设置初始模拟时间步长以及模拟时长;
对GPU设备的CUDA运行环境进行初始化,初始化过程必须在电子推进过程之前完成,且整个程序生命周期内仅执行一次初始化操作;
将空间中的电子划分为若干个电子组,每个电子组中包含2000个电子,在电子推进过程中对每个电子组再次进行划分形成多个流处理计算组,流处理计算组中的电子数目是启用CUDA计算线程的整数倍;
调用GPU设备核函数完成一个电子组中各个流处理计算组的电子轨迹计算任务,并判断电子是否与器件边界发生碰撞,若发生碰撞,则计算二次电子发射情况,否则仅进行电子推进计算。
进一步的,通过调用设备核函数完成一个电子组的电子轨迹计算任务,具体为:
每个线程负责完成一个电子的相关计算任务,启用多个CUDA线程,并行读取电子的初始位置x及速度u,根据获得的电磁场并行计算电子的新位置x'与速度u',然后判断电子运动轨迹是否越过器件边界,若越过边界,则根据二次电子发射模型计算新的二次电子并确定电子数目和速度。
进一步的,在电子推进及二次电子发射计算过程中,采用GPU原子累加操作计算新增的二次发射电子总数M,并记录原子累加过程中每个CUDA线程的累加起始位置,存放在数组stackStartPos[i]中,其中i为CUDA线程编号,stackStartPos[i]的值为i号CUDA线程应该写入的新增电子数组位置;
在GPU上动态申请大小为M的存储空间数组newParticles,用于存放新增的二次发射电子;
启用CUDA核函数,以并行方式读取stackStartPos数组,第i号CUDA线程读取stackStartPos[i]的值,并将上一步计算产生的二次发射电子数据存储到数组newParticles中,写入存储的起始位置为newParticles[stackStartPos[i]+k-1],其中k为正整数,表示第i号线程产生的二次发射电子数;
CUDA线程对电子组中的电子进行标记,若发生碰撞则将标记变量Flag[i]值设置为1,否则Flag[i]值设为0,Flag为整数类型的数组;CUDA核函数计算完成后,将计算产生的电子位置、速度信息及newParticles、Flag数组由设备显存传输到主存中。
进一步的,根据Flag[i]值,由CPU线程更新主存中电子组的电子速度、位置信息,并将产生的二次发射电子加入到主存电子组队列中;判断当前所有电子组是否推进计算完毕,推进完毕则执行判断是否到达仿真时间,若超过则停止仿真,否则增加一个仿真使时间步并继续执行调用GPU设备核函数完成一个电子组中各个流处理计算组的电子轨迹计算任务。
进一步的,采用GPU原子累加操作实现二次发射电子的多线程并行累加计数,同时提取累加计算的中间结果,获取每个CUDA线程的累加起始位置,存放在数组变量stackStartPos[i]中,用于标记后续写入二次发射电子的数组位置,其中i为CUDA线程编号,stackStartPos[i]的值为i号CUDA线程应该写入的二次发射电子数组起始位置。
进一步的,Flag[i]值更新电子组中的电子信息,若Flag[i]值为1,删除索引号为i的电子位置、速度,同时将该电子组的总数减1;之后使用计算推进后的电子位置及速度替换主存中相应的数据,申请存储空间存放本次推进新的增二次发射电子并加入原主存电子组队列。
进一步的,一种基于GPU加速的二次电子发射模拟系统,包括:
初始化模块,用于初始化微放电模拟所需的参数及数据结构,对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进函数的起始位置,并保证该函数在整个程序生命周期内仅执行一次;
计算模块,用于GPU读取数据后采用并行方式推进计算电子,并对二次电子发射过程进行计算;
判断模块,用于在GPU完成电子推进及二次电子发射计算后,将数据传回系统主存进行数据结构更新,并由CPU进程判断是否继续进行模拟,若达到结束调节则终止模拟计算过程,否则继续计算下一时间的电子推进模拟。
进一步的,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现基于GPU加速的二次电子发射模拟方法步骤。
与现有技术相比,本发明有以下技术效果:
本发明在电子推进过程中将空间中的电子划分为若干个电子组,并依照CUDA线程执行模型进一步将电子组划分为多个流处理计算组,通过调用CUDA核函数逐个对流处理计算组中的电子进行推进计算,并采用并行方式完成二次电子发射的模拟计算过程,使电子推进及二次电子发射过程能够正确、高效的在GPU设备上完成,解决了CPU串行计算电子轨迹及二次电子发射耗费时间长的问题。
本发明提出了一种基于GPU加速的二次电子发射模拟计算方法,采用GPU设备对微波器件中的大量电子进行并行轨迹计算并计算二次电子发射过程,实现了航天微波器件微放电模拟过程的快速、准确模拟。
附图说明
图1本发明方法中电子推进及二次电子发射过程的GPU计算流程。
具体实施方式
下面结合具体实例和说明书附图对本发明的具体实施方式进行进一步的解释说明。
本发明在原有微波部件微放电阈值计算的基础上,采用GPU技术对电子推进及二次电子发射过程进行加速计算,实现了微波部件微放电过程的快速模拟。图1给出了GPU加速推进电子及计算二次电子发射过程的具体流程图。
在进行模拟计算之前,需要进行相关的模型及数据准备工作,准备工作包括:
(1)采用三维CAD建模软件/电磁场仿真软件建立待求微波部件模型(以STL/STEP格式存储),并导入微放电模拟计算程序;
(2)通过已有粒子模拟软件/电磁场仿真软件求解电子发射器件中的电磁场分布并
将其以频域形式导出;
(3)将电子发射器件几何结构进行离散剖分以构成电磁场计算的交错对偶网格体
系,即Yee网格;
(4)采用已有二次电子发射模拟程序导入步骤1中的几何模型并读取步骤2中导
出的电磁场数据;
在导入部件模型及电磁场幅值数据后,便可开启电子推进及二次电子发射计算过程,具体步骤如下:
(1)设置初始加载电子参数,包括初始加载电子的总数,每个宏电子所包含的实际电子数目,电子加载区域,电子加载开始时间,电子加载结束时间;计算参数初始化,设置初始模拟时间步长以及模拟时长;
(2)对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进计算函数之前,并保证该函数在整个程序生命周期内仅执行一次;
(3)将电子划分为若干个电子组,且每个电子组中包含2000个电子,在电子推进过程中对每个电子组再次进行划分形成多个流处理计算组,流处理计算组中的电子数目是启用CUDA计算线程的整数倍;
(4)判断当前指定的电子组是否为空,若为空,则转入步骤(13)结束本次推进过程并向前推进一个时间步长;否则转入步骤(5);
(5)设置CUDA变量参数,包括当前电子组中电子的速度x、位置u、当前电磁场强度,指定当前流处理计算组并开启调用CUDA核函数进行电子推进计算;
(6)各个CUDA线程并行读取当前流处理计算组中电子的速度u及位置x,根据电子位置处的电磁场强度计算出电子推进后的位置x’及速度u’;
(7)各个CUDA线程判断所计算的电子在推进计算后是否与器件模型边界发生碰撞:若发生碰撞,则计算二次发射电子数目,并采用GPU原子累加操作将当前CUDA线程产生的二次发射电子数累加到全局统计变量M中,并将新产生的二次发射电子速度、位置信息存入当前CUDA线程的私有变量localNewParticlesi中(其中localNewParticlesi位于GPU显存,i为当前CUDA线程编号,下同),同时每个CUDA线程将新增电子写入起始位置存入变量stackStartPos[i];
(8)在GPU上动态申请大小为M的存储空间数组newParticles,用于存放新增的二次发射电子;启用CUDA核函数,各CUDA线程以并行方式读取stackStartPos数组,第i号CUDA线程读取stackStartPos[i]的值,并将步骤(7)中计算产生的二次发射电子数据localNewParticlesi并行写入到数组newParticles中,写入存储的起始位置为newParticles[stackStartPos[i]+k-1],其中k为正整数,表示第i号CUDA线程新产生的二次发射电子数;
(9)各CUDA线程并行设置二次电子发射标记变量Flag:若当前CUDA线程所推进的电子与器件边界发生碰撞,则设置Flag[i]为1;若未发生碰撞,则Flag[i]设置为0;
(10)CPU进程读取二次发射电子总数M,并申请大小为M的存储空间存放新产生的二次发射电子信息;CPU进程读取CUDA计算出的电子速度、位置结果更新主存数据:
(11)根据Flag[i]的值更新电子组中电子相关信息,若Flag[i]值为1则删除索引号为i的电子(位置、速度),同时将该电子组的总数减1,否则不做处理;
(12)完成当前电子组推进计算后,设置下一电子组为当前电子组并返回步骤(4);
(13)判断是否达到仿真时间,若已达到仿真时间则停止微放电模拟计算,否则推进下一时间步,并返回执行步骤(3)。
实验验证及效果
为验证本发明的有效性,选取典型的GPU硬件平台对不同电子数目情况下的微放电过程进行模拟计算,并对比CPU串行执行时间与GPU并行计算时间。计算平台硬件选取如下:CPU为Intel(R)Core(TM)i5-2430M,时钟频率为2.4GHz,运行内存8G;GPU为NVIDIAGeForce GT525M,时钟频率600Hz,显存带宽28.8GB/s,显存为2G,2个流多处理器,每个流多处理器包含48个流处理器,GPU计算加速比如表1所示。
表1.不同电子数目情况下的GPU计算加速比
电子数目 | 5000 | 10000 | 20000 | 40000 | 80000 | 160000 | 320000 | 640000 |
加速比 | 1.3615 | 1.6397 | 2.1625 | 2.936 | 3.716 | 4.7101 | 5.159 | 6.035 |
本发明对原有串行执行的电子推进及二次电子发射计算模拟程序进行了异构并行改造,将其核心计算过程移植到GPU上进行运算,从表1可以看出,在电子数目较多的情况下(64万电子数),采用GPU并行计算较传统CPU串行计算速度提升6倍以上,证实本发明的技术方案能够有效提高电子推进及二次电子发射模拟计算过程。
本发明首先导入已有的微波部件模型及电磁场分布数据到微放电计算模拟程序,然后进行计算参数初始化设置,并对CUDA计算环境进行初始化,之后对拟推进计算的电子进行两层划分,形成电子组及流处理计算组,再调用CUDA核函数在GPU设备上实现流处理计算组中电子的并行推进及二次电子发射计算,最后由CPU进程收集GPU计算结果,并更新主存相关数据。实验结果表明,本发明能够有效提高电子推进及二次电子发射计算过程,有助于快速完成微放电阈值预测等数值模拟应用。
Claims (8)
1.一种基于GPU加速的二次电子发射模拟方法,其特征在于,包括以下步骤:
初始化微放电模拟所需的参数及数据结构,对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进函数的起始位置,并保证该函数在整个程序生命周期内仅执行一次;
GPU读取数据后采用并行方式推进计算电子,并对二次电子发射过程进行计算;
在GPU完成电子推进及二次电子发射计算后,将数据传回系统主存进行数据结构更新,并由CPU进程判断是否继续进行模拟,若达到结束调节则终止模拟计算过程,否则继续计算下一时间的电子推进模拟;
初始化微放电模拟所需的参数及数据结构包括:
步骤1,采用三维CAD建模软件/电磁场仿真软件建立待求电子发射器件模型,然后将其以STL/STEP格式进行存储;
步骤2,通过已有粒子模拟软件/电磁场仿真软件求解电子发射器件中的电磁场分布并将其以频域形式导出;
步骤3,将电子发射器件几何结构进行离散剖分以构成电磁场计算的交错对偶网格体系,即Yee网格;
步骤4,采用已有二次电子发射模拟程序导入步骤1中的几何模型并读取步骤2中导出的电磁场数据;
开启电子推进及二次电子发射计算过程,具体步骤如下:
设置初始加载电子参数,包括初始加载电子的总数,每个宏电子所包含的实际电子数目,电子加载区域,电子加载开始时间,电子加载结束时间;计算参数初始化,设置初始模拟时间步长以及模拟时长;
对GPU设备的CUDA运行环境进行初始化,初始化过程必须在电子推进过程之前完成,且整个程序生命周期内仅执行一次初始化操作;
将空间中的电子划分为若干个电子组,每个电子组中包含2000个电子,在电子推进过程中对每个电子组再次进行划分形成多个流处理计算组,流处理计算组中的电子数目是启用CUDA计算线程的整数倍;
调用GPU设备核函数完成一个电子组中各个流处理计算组的电子轨迹计算任务,并判断电子是否与器件边界发生碰撞,若发生碰撞,则计算二次电子发射情况,否则仅进行电子推进计算。
2.根据权利要求1所述的一种基于GPU加速的二次电子发射模拟方法,其特征在于,通过调用设备核函数完成一个电子组的电子轨迹计算任务,具体为:
每个线程负责完成一个电子的相关计算任务,启用多个CUDA线程,并行读取电子的初始位置x及速度u,根据获得的电磁场并行计算电子的新位置x'与速度u',然后判断电子运动轨迹是否越过器件边界,若越过边界,则根据二次电子发射模型计算新的二次电子并确定电子数目和速度。
3.根据权利要求1所述的一种基于GPU加速的二次电子发射模拟方法,其特征在于,在电子推进及二次电子发射计算过程中,采用GPU原子累加操作计算新增的二次发射电子总数M,并记录原子累加过程中每个CUDA线程的累加起始位置,存放在数组stackStartPos[i]中,其中i为CUDA线程编号,stackStartPos[i]的值为i号CUDA线程应该写入的新增电子数组位置;
在GPU上动态申请大小为M的存储空间数组newParticles,用于存放新增的二次发射电子;
启用CUDA核函数,以并行方式读取stackStartPos数组,第i号CUDA线程读取stackStartPos[i]的值,并将上一步计算产生的二次发射电子数据存储到数组newParticles中,写入存储的起始位置为newParticles[stackStartPos[i]+k-1],其中k为正整数,表示第i号线程产生的二次发射电子数;
CUDA线程对电子组中的电子进行标记,若发生碰撞则将标记变量Flag[i]值设置为1,否则Flag[i]值设为0,Flag为整数类型的数组;CUDA核函数计算完成后,将计算产生的电子位置、速度信息及newParticles、Flag数组由设备显存传输到主存中。
4.根据权利要求3所述的一种基于GPU加速的二次电子发射模拟方法,其特征在于,根据Flag[i]值,由CPU线程更新主存中电子组的电子速度、位置信息,并将产生的二次发射电子加入到主存电子组队列中;判断当前所有电子组是否推进计算完毕,推进完毕则执行判断是否到达仿真时间,若超过则停止仿真,否则增加一个仿真使时间步并继续执行调用GPU设备核函数完成一个电子组中各个流处理计算组的电子轨迹计算任务。
5.根据权利要求4所述的一种基于GPU加速的二次电子发射模拟方法,其特征在于,采用GPU原子累加操作实现二次发射电子的多线程并行累加计数,同时提取累加计算的中间结果,获取每个CUDA线程的累加起始位置,存放在数组变量stackStartPos[i]中,用于标记后续写入二次发射电子的数组位置,其中i为CUDA线程编号,stackStartPos[i]的值为i号CUDA线程应该写入的二次发射电子数组起始位置。
6.根据权利要求5所述的一种基于GPU加速的二次电子发射模拟方法,其特征在于,Flag[i]值更新电子组中的电子信息,若Flag[i]值为1,删除索引号为i的电子位置、速度,同时将该电子组的总数减1;之后使用计算推进后的电子位置及速度替换主存中相应的数据,申请存储空间存放本次推进新的增二次发射电子并加入原主存电子组队列。
7.一种基于GPU加速的二次电子发射模拟系统,其特征在于,包括:
初始化模块,用于初始化微放电模拟所需的参数及数据结构,对GPU设备进行初始化,在进行CUDA语言编程过程中,将GPU设备的初始化代码放置在电子推进函数的起始位置,并保证该函数在整个程序生命周期内仅执行一次;
计算模块,用于GPU读取数据后采用并行方式推进计算电子,并对二次电子发射过程进行计算;
判断模块,用于在GPU完成电子推进及二次电子发射计算后,将数据传回系统主存进行数据结构更新,并由CPU进程判断是否继续进行模拟,若达到结束调节则终止模拟计算过程,否则继续计算下一时间的电子推进模拟;
初始化微放电模拟所需的参数及数据结构包括:
步骤1,采用三维CAD建模软件/电磁场仿真软件建立待求电子发射器件模型,然后将其以STL/STEP格式进行存储;
步骤2,通过已有粒子模拟软件/电磁场仿真软件求解电子发射器件中的电磁场分布并将其以频域形式导出;
步骤3,将电子发射器件几何结构进行离散剖分以构成电磁场计算的交错对偶网格体系,即Yee网格;
步骤4,采用已有二次电子发射模拟程序导入步骤1中的几何模型并读取步骤2中导出的电磁场数据;
开启电子推进及二次电子发射计算过程,具体步骤如下:
设置初始加载电子参数,包括初始加载电子的总数,每个宏电子所包含的实际电子数目,电子加载区域,电子加载开始时间,电子加载结束时间;计算参数初始化,设置初始模拟时间步长以及模拟时长;
对GPU设备的CUDA运行环境进行初始化,初始化过程必须在电子推进过程之前完成,且整个程序生命周期内仅执行一次初始化操作;
将空间中的电子划分为若干个电子组,每个电子组中包含2000个电子,在电子推进过程中对每个电子组再次进行划分形成多个流处理计算组,流处理计算组中的电子数目是启用CUDA计算线程的整数倍;
调用GPU设备核函数完成一个电子组中各个流处理计算组的电子轨迹计算任务,并判断电子是否与器件边界发生碰撞,若发生碰撞,则计算二次电子发射情况,否则仅进行电子推进计算。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的基于GPU加速的二次电子发射模拟方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547285.7A CN114186468B (zh) | 2021-12-16 | 2021-12-16 | 一种基于gpu加速的二次电子发射模拟方法及系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111547285.7A CN114186468B (zh) | 2021-12-16 | 2021-12-16 | 一种基于gpu加速的二次电子发射模拟方法及系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114186468A CN114186468A (zh) | 2022-03-15 |
CN114186468B true CN114186468B (zh) | 2024-03-29 |
Family
ID=80544195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111547285.7A Active CN114186468B (zh) | 2021-12-16 | 2021-12-16 | 一种基于gpu加速的二次电子发射模拟方法及系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114186468B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094410A1 (zh) * | 2012-12-20 | 2014-06-26 | 中国科学院近代物理研究所 | 颗粒流动仿真系统和方法 |
WO2018064917A1 (zh) * | 2016-10-09 | 2018-04-12 | 华讯方舟科技有限公司 | 基于gpu的人体微波回波模拟方法及系统 |
CN110442919A (zh) * | 2019-07-12 | 2019-11-12 | 西安空间无线电技术研究所 | 一种基于gpu架构的微波部件微放电数值模拟方法 |
CN111709179A (zh) * | 2020-05-28 | 2020-09-25 | 西安交通大学 | 一种微波部件微放电发展过程快速过渡方法 |
CN113705064A (zh) * | 2021-07-27 | 2021-11-26 | 西安交通大学 | 一种微波部件微放电的电磁-静电混合模拟方法及系统 |
-
2021
- 2021-12-16 CN CN202111547285.7A patent/CN114186468B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094410A1 (zh) * | 2012-12-20 | 2014-06-26 | 中国科学院近代物理研究所 | 颗粒流动仿真系统和方法 |
WO2018064917A1 (zh) * | 2016-10-09 | 2018-04-12 | 华讯方舟科技有限公司 | 基于gpu的人体微波回波模拟方法及系统 |
CN110442919A (zh) * | 2019-07-12 | 2019-11-12 | 西安空间无线电技术研究所 | 一种基于gpu架构的微波部件微放电数值模拟方法 |
CN111709179A (zh) * | 2020-05-28 | 2020-09-25 | 西安交通大学 | 一种微波部件微放电发展过程快速过渡方法 |
CN113705064A (zh) * | 2021-07-27 | 2021-11-26 | 西安交通大学 | 一种微波部件微放电的电磁-静电混合模拟方法及系统 |
Non-Patent Citations (1)
Title |
---|
粒子模拟在空间大功率微波器件微放电效应研究中的应用;林舒;翟永贵;张磊;王洪广;王瑞;李永东;刘纯亮;;真空电子技术(06);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114186468A (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107085743A (zh) | 一种基于国产众核处理器的深度学习算法实现方法与平台 | |
Dong et al. | Characterizing the microarchitectural implications of a convolutional neural network (cnn) execution on gpus | |
CN107977444A (zh) | 基于大数据的海量数据并行处理方法 | |
CN114186468B (zh) | 一种基于gpu加速的二次电子发射模拟方法及系统及设备 | |
Chang et al. | uSAP: An Ultra-Fast Stochastic Graph Partitioner | |
US9311597B2 (en) | Early generation of individuals to accelerate genetic algorithms | |
CN102841881A (zh) | 一种基于众核处理器的多重积分计算方法 | |
CN116860587B (zh) | 面向战场态势性能优化的普适体系化设计框架的构建方法 | |
CN106598688B (zh) | 一种深度学习汇编优化中的寄存器冲突避免方法 | |
Chang et al. | GSAP: A GPU-Accelerated Stochastic Graph Partitioner | |
CN105260222A (zh) | 一种可重构编译器中循环流水迭代间启动间距优化方法 | |
CN108108242A (zh) | 基于大数据的存储层智能分发控制方法 | |
Zhang et al. | Cpu-gpu hybrid parallel binomial american option pricing | |
CN108062249A (zh) | 基于大数据的云端数据分配调度方法 | |
AlBahnassi et al. | A design pattern for parallel programming of games | |
Wang et al. | Optimizing Memory Mapping Using Deep Reinforcement Learning | |
Waterland et al. | Parallelization by simulated tunneling | |
Kosiachenko | Efficient GPU Parallelization of the Agent-Based Models Using MASS CUDA Library | |
Bennour et al. | Study of runtime performance for Java-multithread PSO on multicore machines | |
CN115861030B (zh) | 图形处理器及其系统变量生成方法、介质 | |
Köster et al. | MACSQ: Massively Accelerated DeepQ Learning on GPUs Using On-the-fly State Construction | |
Dali et al. | Different parallelism levels using GPU for solving Max-CSPs with PSO | |
Zong et al. | Parallel monte carlo integration algorithm based on gpu | |
CN112861333B (zh) | 基于OpenMP和MPI的电磁波与等离子体作用的计算方法及装置 | |
CN116484715A (zh) | 一种用于发动机系统辨识的并行鲸鱼优化算法 |
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 |