CN102663149B - 一种确定微、纳电子结构的方法及装置 - Google Patents

一种确定微、纳电子结构的方法及装置 Download PDF

Info

Publication number
CN102663149B
CN102663149B CN201210051953.1A CN201210051953A CN102663149B CN 102663149 B CN102663149 B CN 102663149B CN 201210051953 A CN201210051953 A CN 201210051953A CN 102663149 B CN102663149 B CN 102663149B
Authority
CN
China
Prior art keywords
coulomb integral
gpu
particle
coulomb
matrix
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
Application number
CN201210051953.1A
Other languages
English (en)
Other versions
CN102663149A (zh
Inventor
刘羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201210051953.1A priority Critical patent/CN102663149B/zh
Publication of CN102663149A publication Critical patent/CN102663149A/zh
Application granted granted Critical
Publication of CN102663149B publication Critical patent/CN102663149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种确定微、纳电子结构的方法及装置,涉及高性能计算领域。本发明公开的方法包括:GPU将CPU求解得到的各单粒子占据态存放在线性内存中作为初始参数;将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将初始参数传入GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢。本发明还公开了一种确定微、纳电子结构的装置。本申请技术方案提高了确定微、纳电子结构的最终效率。

Description

一种确定微、纳电子结构的方法及装置
技术领域
本发明涉及高性能计算领域在计算物理学和纳米材料科学方面的应用,具体涉及一种确定微、纳电子结构的方法及装置。
背景技术
随着人类社会的不断进步,科学技术的发展,人们对自然界的认识越来越广泛,并逐步的向微、纳观等物理体系结构深入。与此同时,生物技术、化学生产及制药的需求,也迫切的要求人们能够在电子、原子或分子尺度上来精确把握物体的性态。但遗憾的是,微观体系往往动辄包括成千上万个电子和原子,而对多体问题的求解一直是物理学界的难题。自上世纪量子力学理论诞生以来,人们逐渐发展了像:绝热近似、哈特里近似、哈特里-福克近似(Hartree-Fock)、密度泛函理论(DFT)、变分法(Variational Method)、随机相近似(Random-Phase Approximation)以及组态相互作用(ConfigurationInteraction)等等来计算微观结构的多体问题。为了使可以计算的粒子数目尽可能的多,这里面大多数计算方法都是近似的,而组态相互作用方法却是一种数值精确的计算方法,因此对于研究半导体量子结构(量子点、量子环等),以及纳米材料来说,组态相互作用方法是一种非常合适并且已被广泛使用的方法。
组态相互作用方法是将多粒子体系的波函数看作是所有可能的单粒子占据态的叠加,因此所考虑的单粒子占据态的数目越多,计算的结果也就越精确。我们考虑一个含有N个粒子的系统,计算中我们使用M个可能的单粒子态,那么多粒子哈密顿(Hamiltonian)矩阵的维度将是由此可见随着所考虑到单粒子态的数目M的增多,矩阵的维度将会急骤的增大。特别的,粒子间还存在着长程相互作用,如电子-电子,电子-质子间的库仑相互作用,在哈密顿量矩阵元的计算中,这是一个四重积分。这将意味着,我们每初始化一个哈密顿量矩阵元就将计算多个四重积分,因此组态相互作用方法的计算量巨大,这也阻碍了组态相互作用方法所能计算的物理体系的大小。
为了简化计算,人们在研究微观量子体系或纳米材料的时候,往往使用抛物限制势(实际上,选取不同类型的限制势在能谱上可能会有定量的不同,但对于我们所感兴趣的物理图像却并不会受到影响),这是因为在抛物限制势下。库仑积分可以解析的求出。然而遗憾的是,经过复杂的计算,我们会发现四重积分将会变成一个十重求和,实现上并没有简化多少,唯一的优点只是通过循环计算所得的结果是精确的。即使利用超级计算机,现在所能计算的电子数也仅仅14个左右,小的计算机系统所能够计算的电子数目就更少了。而事实上在整个过程中,绝大部分的时间都消耗在了哈密顿矩阵元的初始化计算上,如果我们可以加速哈密顿矩阵元的初始化,那么整个计算并不会花费太多的时间。
发明内容
本发明所要解决的技术问题是,提供一种确定微、纳电子结构的方法及装置,以提高确定微、纳电子结构的效率。
为了解决上述技术问题,本发明公开了一种确定微、纳电子结构的方法,包括:
利用中央处理器(CPU)求解单粒子问题,图形处理器(GPU)将求解得到的各单粒子占据态存放在线性内存中作为初始参数;
将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将所述初始参数传入所述GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢。
较佳地,上述方法中,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离指:
将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定。
较佳地,上述方法中,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应的过程如下:
利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构(CUDA)的三重线程模型对应起来,得到网格(网格0、块(i,j)、线程(p,q))。
较佳地,上述方法中通过调用所述GPU的内核函数计算库仑积分。
本发明还公开了一种确定微、纳电子结构的装置,包括中央处理器(CPU)和图形处理器(GPU),其中:
所述CPU,求解单粒子问题,并将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢;
图形处理器(GPU),将求解得到的各单粒子占据态存放在线性内存中作为初始参数,以及将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,并根据所述初始参数,计算库仑积分,将计算结果回传到主机内存。
较佳地,上述装置中,所述CPU,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离是:将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定。
较佳地,上述装置中,所述GPU,将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应指:利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构(CUDA)的三重线程模型对应起来,得到网格(网格0、块(i,j)、线程(p,q))。
较佳地,上述装置中,所述GPU通过调用内核函数计算库仑积分。
本申请技术方案,在确定微、纳电子结构的过程中,利用GPU(GraphicProcessing Unit,图形处理器)来加速大规模哈密顿(Hamiltonian)矩阵初始化计算,从而提高确定微、纳电子结构的最终效率。并且使得以往需要借助大型超级计算机才能完成的计算轻松的转移到桌面等个人超算平台上。极大的方便了研究人员对微、纳体系做更深入的探索和发现。
附图说明
图1为本发明所采用的问题空间与GPU计算线程的对应关系示意图;
图2为本发明方法的流程图;
图3为采用本发明方案和传统方案的对比结果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
实施例1
本发明申请人考虑到可利用GPU来加速组态相互作用方法中库仑积分的计算,从而充分发挥GPU众核结构的多计算处理单元、高带宽优势,以及CPU的逻辑处理能力和主内存的大容量优势,来大幅缩短对少粒子体系的计算模拟时间。针对组态相互作用的计算特点,申请人将确定微、纳电子结构的过程分为两个主要步骤:初始化哈密顿量矩阵元(即计算库仑相互作用积分)和哈密顿矩阵对角化。其中,初始化哈密顿量矩阵元时,需要初始化的矩阵元数目巨大(个),故要求较多的计算资源和较高的存储器带宽,但相应的对存储器的容量需求较小,因此申请人提出可以将这部分计算移植到GPU上来完成。而计算哈密顿矩阵对角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此申请人提出将其交给CPU来完成。
具体来说,本实施例中确定微、纳电子结构的方法包括如下步骤:
利用中央处理器(CPU)求解单粒子问题,图形处理器(GPU)将求解得到的各单粒子占据态存放在线性内存中作为初始参数;
将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,再将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,将所述初始参数传入所述GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢。
需要说明的是,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离时,是将多次使用的库仑积分单独分离出来,从而形成库仑积分矩阵,而所形成的库仑积分矩阵的规模由所选取的单粒子态数目决定。然后GPU再利用库仑积分间的非相关性,将生成的库仑积分矩阵与计算统一设备架构(CUDA)的三重线程模型对应起来,即同Grid,Block,Thread对应起来。
下面假设使用CUDA在Nvidia C2050加速卡上实现含有两个电子的抛物限制势量子点的计算,对本发明中的关键步骤进行详细说明,对于更多电子(粒子)的情形或其他介观体系(量子环等)的实现方式与之相同。
图1所示,为本实施例所涉及的问题解空间与GPU中计算线程的对应关系。由于多体相互作用的哈密顿量矩阵元中均含有二体的库仑相互作用积分,而库仑积分是与两电子所在的占据态相关的,占据态的最大数目为前面所述的M,也就是库仑积分下标i,j,p,q均从1到M遍历,因此可将库仑积分单独生成库仑矩阵Coulomb(i,j,p,q)。现在的CUDA架构把GPU的线程空间划分为grid,block和thread三重结构,简单起见,可以直接把库仑矩阵的(i,j)变量与block联系起来,(p,q)与thread联系起来,即block(i,j)和thread(p,q)。由于各库仑矩阵之间并无相互作用,也就是和block及thread之间无需数据通信,因此,可以看出,图1所示的解空间到线程的简单映射可行且高效。
接下来结合图2说明确定微、纳电子结构的具体过程:
步骤200,利用CPU求解单粒子问题,GPU将求解得到的各单粒子占据态存放在一线性内存中,做为初始参数;
步骤201,利用CPU多次分离库仑积分,得到库仑积分矩阵Coulomb(i,j,p,q);
此步骤是将哈密顿量矩阵元中库仑相互作用部分单独提取出来,并按下标顺序(i,j,p,q)生成四维库仑积分矩阵空间,如图1所示。
步骤202,根据库仑积分组合规律划分计算网格(grid0、block(i,j)、thread(p,q))(如图1所示),传递初始参数到显存,并将计算中需要频繁访问的参数放到GPU的共享存储器中(shared memory);
步骤203,调用GPU内核函数(kernel函数)计算库仑积分,并将各线程对应的结果存放到显存中;
步骤204,将计算完成的库仑矩阵从显存拷贝到主机内存中;
步骤205,生成哈密顿矩阵,在CPU上做矩阵对角化计算;
该步骤中,在CPU上调用Lapack等数学库来完成矩阵对角化计算。
步骤206,完成计算得到本征能量和本征态矢。
从上述实施例可以看出,本申请技术方案充分剖析了组态相互作用算法的计算负载特点,并充分利用了计算机中的各种计算资源,大幅加速了使用组态相互作用方法对含有少量电子(粒子)的量子体系、原子、分子等的精确模拟计算。例如对二电子抛物限制势量子点,可以轻松得到21.58倍的加速比,如图3所示,且算法简单,比较易于实现和扩展,可以极大的利用有限的计算资源加速半导体、材料和纳米等科学方面的研究,并且还比较节能。
实施例2
本实施例介绍一种确定微、纳电子结构的装置,该装置可实现上述实施例1的方法。本实施例中,该装置至少包括中央处理器(CPU)和图形处理器(GPU)。
CPU,求解单粒子问题,并将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢;
需要说明的是,上述CPU,将多粒子相互作用体系哈密顿量矩阵元中的粒子-粒子库仑积分进行分离时,是将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,而所形成的库仑积分矩阵规模由所选取的单粒子态数目决定。
GPU,将求解得到的各单粒子占据态存放在线性内存中作为初始参数,以及将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应,并根据所述初始参数,计算库仑积分,将计算结果回传到主机内存。
具体地,上述GPU将分离出的库仑积分所构成的问题解空间与GPU中的线程空间相对应时:主要利用了库仑积分间的非相关性,将所述库仑积分矩阵与CUDA的三重线程模型对应起来,从而得到网格(网格0、块(i,j)、线程(p,q))具体的对应过程可参见实施例1,在此不再赘述。另外,GPU计算库仑积分时,可通过调用内核函数来实现。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种确定微、纳电子结构的方法,其特征在于,该方法包括:
利用中央处理器CPU求解单粒子问题,图形处理器GPU将求解得到的各单粒子占据态存放在线性内存中作为初始参数;
将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定,再利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构CUDA的三重线程模型对应起来,得到网格(网格0、块(i,j)、线程(p,q)),将所述初始参数传入所述GPU的显存,将计算中需要频繁访问的参数存放在缓存中,由所述GPU计算库仑积分,将计算结果回传到主机内存,由CPU进行多粒子体系哈密顿量矩阵初始化,利用CPU对哈密顿矩阵对角化求得本征能量和本征态矢;
其中,i,j,p,q为库仑积分下标。
2.如权利要求1项所述的方法,其特征在于,通过调用所述GPU的内核函数计算库仑积分。
3.一种确定微、纳电子结构的装置,其特征在于,该装置包括中央处理器CPU和图形处理器GPU,其中:
所述CPU,求解单粒子问题,并将多次使用的库仑积分单独分离出来,形成库仑积分矩阵,所形成的库仑积分矩阵规模由所选取的单粒子态数目决定,以及根据所述GPU回传到主机内存的库仑积分计算结果进行多粒子体系哈密顿量矩阵初始化,并对哈密顿矩阵对角化求得本征能量和本征态矢;
所述图形处理器GPU,将求解得到的各单粒子占据态存放在线性内存中作为初始参数,以及利用库仑积分间的非相关性,将所述库仑积分矩阵与计算统一设备架构CUDA的三重线程模型对应起来,得到网格(网格0、块(i,j)、线程(p,q)),并根据所述初始参数,计算库仑积分,将计算结果回传到主机内存,其中,i,j,p,q为库仑积分下标。
4.如权利要求3所述的装置,其特征在于,所述GPU通过调用内核函数计算库仑积分。
CN201210051953.1A 2012-03-01 2012-03-01 一种确定微、纳电子结构的方法及装置 Active CN102663149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210051953.1A CN102663149B (zh) 2012-03-01 2012-03-01 一种确定微、纳电子结构的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210051953.1A CN102663149B (zh) 2012-03-01 2012-03-01 一种确定微、纳电子结构的方法及装置

Publications (2)

Publication Number Publication Date
CN102663149A CN102663149A (zh) 2012-09-12
CN102663149B true CN102663149B (zh) 2015-06-24

Family

ID=46772640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210051953.1A Active CN102663149B (zh) 2012-03-01 2012-03-01 一种确定微、纳电子结构的方法及装置

Country Status (1)

Country Link
CN (1) CN102663149B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929841B (zh) * 2012-10-19 2016-06-29 浪潮电子信息产业股份有限公司 一种利用gpu加速哈特里-福克计算的方法
CN113807526B (zh) * 2021-09-26 2024-03-29 深圳市腾讯计算机系统有限公司 量子体系的本征态获取方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1668921A (zh) * 2002-07-10 2005-09-14 法米克斯公司 分子系统的分子力学分析的方法及装置
CN101350106A (zh) * 2007-07-17 2009-01-21 普罗姆泰克软件公司 用于邻近粒子搜索的数据结构构建方法
CN101751376A (zh) * 2009-12-30 2010-06-23 中国人民解放军国防科学技术大学 利用cpu和gpu协同工作对三角线性方程组求解的加速方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1668921A (zh) * 2002-07-10 2005-09-14 法米克斯公司 分子系统的分子力学分析的方法及装置
CN101350106A (zh) * 2007-07-17 2009-01-21 普罗姆泰克软件公司 用于邻近粒子搜索的数据结构构建方法
CN101751376A (zh) * 2009-12-30 2010-06-23 中国人民解放军国防科学技术大学 利用cpu和gpu协同工作对三角线性方程组求解的加速方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Christine M. Isborn,et al..Excited-State Electronic Structure with Configuration Interaction Singles and TammDancoff Time-Dependent Density Functional Theory on Graphical Processing Units.《Journal of Chemical Theory and Computation》.2011,(第7期),1814–1823. *
Engineering》.2008,第26-34页. *
Ivan S. Ufimtsev,et al..Graphical Processing Units for Quantum Chemistry.《Computing in Science &amp *
吴强.GPU加速高速粒子碰撞模拟.《中国优秀硕士学位论文全文数据库》.2011,第1-67页. *
许楠,等..一种基于GPU的粒子系统.《计算机工程与应用》.2006,第77-79、139页. *

Also Published As

Publication number Publication date
CN102663149A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
Anderson et al. Scalable Metropolis Monte Carlo for simulation of hard shapes
Gremse et al. GPU-accelerated sparse matrix-matrix multiplication by iterative row merging
Liska et al. H-AMR: A New GPU-accelerated GRMHD Code for Exascale Computing with 3D Adaptive Mesh Refinement and Local Adaptive Time Stepping
Busato et al. An efficient implementation of the Bellman-Ford algorithm for Kepler GPU architectures
Riedy et al. Scalable multi-threaded community detection in social networks
Xiong et al. Efficient parallel implementation of the lattice Boltzmann method on large clusters of graphic processing units
Martínez-Frutos et al. Efficient matrix-free GPU implementation of fixed grid finite element analysis
Rostrup et al. Fast and memory-efficient minimum spanning tree on the GPU
Bonati et al. QCD simulations with staggered fermions on GPUs
You et al. Scaling support vector machines on modern HPC platforms
Watanabe et al. Huge-scale molecular dynamics simulation of multibubble nuclei
Zhang et al. CudaGIS: report on the design and realization of a massive data parallel GIS on GPUs
CN102663207B (zh) 一种利用gpu加速量子介观体系求解的方法
Yao et al. Scalagraph: A scalable accelerator for massively parallel graph processing
Zhang et al. Efficient sparse matrix–vector multiplication using cache oblivious extension quadtree storage format
CN102663149B (zh) 一种确定微、纳电子结构的方法及装置
Maeyama et al. Improved strong scaling of a spectral/finite difference gyrokinetic code for multi-scale plasma turbulence
Wu et al. Exploiting hierarchy parallelism for molecular dynamics on a petascale heterogeneous system
He et al. Gcim: a near-data processing accelerator for graph construction
Bernaschi et al. Solutions to the st-connectivity problem using a GPU-based distributed BFS
Zhou et al. A Parallel Scheme for Large‐scale Polygon Rasterization on CUDA‐enabled GPUs
Liu et al. Accelerating large-scale DEVS-based simulation on the cell processor
Marques et al. A cloud computing based framework for general 2D and 3D cellular automata simulation
Kerbyson et al. Adapting wave-front algorithms to efficiently utilize systems with deep communication hierarchies
Chen et al. BitGNN: Unleashing the Performance Potential of Binary Graph Neural Networks on GPUs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant