CN102929841B - 一种利用gpu加速哈特里-福克计算的方法 - Google Patents

一种利用gpu加速哈特里-福克计算的方法 Download PDF

Info

Publication number
CN102929841B
CN102929841B CN201210398977.4A CN201210398977A CN102929841B CN 102929841 B CN102929841 B CN 102929841B CN 201210398977 A CN201210398977 A CN 201210398977A CN 102929841 B CN102929841 B CN 102929841B
Authority
CN
China
Prior art keywords
hartree
particle
gpu
calculating
harmony
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
CN201210398977.4A
Other languages
English (en)
Other versions
CN102929841A (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 Electronic Information Industry Co Ltd
Original Assignee
Inspur 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 Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201210398977.4A priority Critical patent/CN102929841B/zh
Publication of CN102929841A publication Critical patent/CN102929841A/zh
Application granted granted Critical
Publication of CN102929841B publication Critical patent/CN102929841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明提供一种利用GPU加速哈特里-福克计算的方法,该方法充分利用了GPU所拥有的强大的浮点处理能力和高带宽等众核处理器的特点,并将哈特里-福克近似计算方法中占用机时最长的哈特里-福克本征方程的计算,交给GPU来处理,而将本征值问题求解以及自洽控制部分的工作依然由串行和分支计算能力较强的CPU来完成,从而极大的提高了哈特里-福克近似方法的计算速度。在计算过程中,我们充分考虑并利用了基矢间的非相关性,从而实现了从哈特里-福克本征方程的解空间到GPU线程空间的简单映射,从而保证了算法的易用性和高可扩展性。

Description

一种利用GPU加速哈特里-福克计算的方法
技术领域
本发明涉及高性能计算领域在计算物理学、计算化学和纳米材料科学等领域有关第一性原理计算的应用,具体涉及一种利用GPU加速哈特里-福克计算的方法。
背景技术
随着人类社会的不断进步,科学技术的发展,人们对自然界的认识越来越广泛,并逐步的向微、纳观等物理体系结构深入。与此同时,生物技术、化学生产及制药的需求,也迫切的要求人们能够更多的在微观层面上,特别是在电子、原子或分子尺度上来精确把握物体的性态。但遗憾的是,微观体系往往动辄包括成千上万个电子和原子,从理论上来看,多体问题是没有严格的解析解的。因此对多体问题的求解一直是物理学界的难题。为了突破这一困难,自上世纪量子力学理论诞生以来,人们逐渐发展了像:绝热近似、哈特里近似、哈特里-福克近似(Hartree-Fock)、密度泛函理论(DFT)、变分法(VariationalMethod)、随机相近似(Random-PhaseApproximation)以及组态相互作用(ConfigurationInteraction)等等来计算微观结构的多体问题。这其中,哈特里-福克近似方法以其简单的描述、深刻的物理内涵以及较为精确的结果获得了广泛应用,特别是在计算化学、生物制药、量子分子动力学等领域应用最广。
哈特里-福克近似的核心思想是在绝热近似的前提下,将多粒子体系的哈密顿量使用斯拉特行列式(Slaterdeterminant)来表示,这样就把一个复杂的多体问题简化成为一系列单粒子本征值问题(哈特里-福克本征方程)的叠加。在实际计算过程中,唯一不知道的量即是斯拉特行列式中的单粒子态,它可以使用一系列基矢组来展开,包括高斯轨道型基矢(Gaussianorbit)、斯拉特轨道型基矢(Slaterorbit,即原子轨道型基矢)、原子激发态轨道型基矢或平面波型基矢等等。通过求解本征值问题即可求得单粒子态,进而计算粒子-粒子相互作用生成新的哈特里算符,再次求解本征值问题……。依次以迭代的方法,即可求出多体系统的能量及态矢。这其中,粒子-粒子间的相互作用计算,包括直库仑相互作用及交换相互作用,它的计算量非常大,需要计算大量的多重积分。因此,这就意味着,在每次自洽迭代的过程中,均需要计算为数众多的多重积分问题,故而计算量大,阻碍了哈特里-福克方法所能计算的物理体系的规模。
除上述多重积分问题的制约外,哈特里-福克方法在每次迭代里还需要做一次本征值问题的求解,现在多数软件的做法也是使用迭代的方法来求解,如最陡下除法、共轭梯度法、赝分子动力学方法,以及这些方法的改进方法等等。这些方法的计算速度虽然都比较快,但它们也有共同的不足之处,即精度问题。如果我们可以加速每次迭代中的矩阵生成速度,那么可以使用精确的直接对角化方法来求解本征值问题。因此,如何加速迭代计算是本发明所要解决的主要问题。
发明内容
本发明的目的是提供一种利用GPU加速哈特里-福克计算的方法。
本发明的目的是按以下方式实现的,将福克矩阵元中的粒子-粒子相互作用分离出来,然后将由粒子-粒子相互作用构成的问题解空间同GPU中的线程空间相对应,将内存中的初始参数传入GPU设备显存,并在设备上计算相互作用,完毕后拷贝结果回主机内存,并完成福克矩阵的初始化,利用CPU对福克矩阵对角化求得本征能量和本征态矢,从而有效加速哈特里-福克方法的计算,具体步骤如下:
1)将福克矩阵元中需要计算多重积分的库仑和交换相互作用计算分离出来,形成问题的解空间,其规模由所研究的多体问题的规模来决定;
2)将问题解空间同GPU线程空间相对应,利用粒子-粒子间相互作用的两体性,将步骤1)中生成的问题解空间与CUDA的三重线程模型对应起来,即同Grid,Block,Thread对应起来;
3)执行运算,执行设备端的kernel函数完成计算,将计算完成的结果从显存拷贝到内存中;
4)利用步骤3)的计算结果生成哈特里-福克矩阵,并在CPU上调用Lapack数学库来完成计算,在CPU上做矩阵对角化操作;
5)计算得新的单粒子态,重新返回步骤1)计算新的哈特里-福克算符,再次自洽运算,直接两次自洽达到预定的精度则退出自洽计算;
6)根据自洽后所得到的精确单粒子态,计算多体系的能量及态矢的进一步物理量。
本发明的有益效果是:本发明充分剖析了哈特里-福克计算方法的计算负载特点,并充分利用了计算机中的各种计算资源,大幅加速了使用哈特里-福克近似方法对多体物理、化学问题的精确模拟计算,并且使得以往需要借助大型超级计算机才能完成的计算轻松的移植到桌面等个人超算平台上,极大的方便了研究人员对微、纳体系做更深入的探索和发现,发明简单、实用、高效,可以方便而有效的利用哈特里-福克(Hartree-Fock)近似方法编写程序,提高从事基础科学研究、分子药物设计、新材料设计等涉及大规模第一性原理计算的研究人员的工作效率。
附图说明
图1是采用的问题空间与GPU计算线程的对应关系;
图2是计算方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优势更加清晰,我们结合附图,对本发明中的关键步骤进行详细说明。
本发明要解决的技术问题是设计一种利用GPU来加速哈特里-福克方法中自洽迭代计算的方法,从而充分发挥GPU众核结构的多计算处理单元、高带宽优势,以及CPU的逻辑处理能力和主内存的大容量优势,来大幅缩短对多体问题的计算模拟时间。
本发明针对哈特里-福克自洽计算的计算特点,将每次自洽计算大体上分为两个主要步骤:哈特里-福克矩阵元的生成以及哈特里-福克方程本征值问题的求解。对于前者由于需要初始化的矩阵元数目比较大(与粒子数有关),要求较多的计算资源和较高的存储器带宽,而相应的对存储器的容量需求较小,因此我们可以将这部分计算移植到GPU上来完成。而后者,即哈密顿矩阵对角化,是对整个哈密顿矩阵的归约操作,它需要占用大量的内存资源,并且由于矩阵各部分的依赖关系,大部分时间是做串行处理,因此我们将其交给CPU来完成。
具体来说,每次自洽迭代的过程大体上可以分为如下几个步骤:
1.划分解空间;
2.拷贝输入参数到设备存储器(显存);
3.设备端计算(GPU);
4.返回计算结果;
5.生成哈特里-福克矩阵;
6.哈特里-福克矩阵对角化。
实施例
如附图1所示,给出了本发明所涉及的问题解空间与GPU中计算线程的对应关系。对于哈特里-福克方法,粒子-粒子间相互作用为库仑相互作用与交换相互作用,即:Jij-Kij,下标i、j遍历多体系统中的所有粒子,且i≠j。在实际计算过程中对单粒子态是使用基矢组(如平面波)来展开的,这样,在波矢空间中粒子-粒子间相互作用表示为:Jijpq-Kijpq,其中,p、q遍历基矢组。因此,粒子-粒子相互作用构成了问题的解空间Interaction(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为本发明算法的具体流程图。基本的程序架构和组织流程为:
1.选择基矢并构建试探单粒子态,生成哈特里-福克算符,将其存放在一线性内存中,做为初始参数;
2.如附图1所示,生成问题的解空间,即Interaction(i,j,p,q);
3.划分计算网格(grid0、block(i,j)、thread(p,q)),传递输入参数到显存,并将计算中需要频繁访问的参数放到GPU的共享存储器中(sharedmemory);
4.调用设备端函数(kernel函数)计算粒子-粒子相互作用,并将各线程对应的结果存放到显存中;
5.将计算完成的结果从显存拷贝到内存中;
6.生成哈特里-福克矩阵,在CPU上做矩阵对角化操作;
7.计算得新的单粒子态,重新返回步骤1计算新的哈特里-福克算符,再次自洽运算,直接两次自洽达到预定的精度则退出自洽计算步骤;
8.根据自洽后所得到的精确单粒子态,计算多体系的能量及态矢等进一步物理量。
本发明所采用的算法可以极大的加速第一性原是方法中的哈特里-福克方法的计算速度,且算法简单,比较易于实现和扩展,可以极大的利用有限的计算资源加速计算物理、计算化学、生物制药等方面的研究,此外还比较节能。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (1)

1.一种利用GPU加速哈特里-福克计算的方法,其特征在于,将福克矩阵元中的粒子-粒子相互作用分离出来,然后将由粒子-粒子相互作用构成的问题解空间同GPU中的线程空间相对应,将内存中的初始参数传入GPU设备显存,并在设备上计算相互作用,完毕后拷贝结果回主机内存,并完成福克矩阵的初始化,利用CPU对福克矩阵对角化求得本征能量和本征态矢,从而有效加速哈特里-福克方法的计算,具体步骤如下:
1)将福克矩阵元中需要计算多重积分的库仑和交换相互作用计算分离出来,形成问题的解空间,其规模由所研究的多体问题的规模来决定;
2)将问题解空间同GPU线程空间相对应,利用粒子-粒子间相互作用的两体性,将步骤1)中生成的问题解空间与CUDA的三重线程模型对应起来,即同Grid,Block,Thread对应起来;
3)执行运算,执行设备端的kernel函数完成计算,将计算完成的结果从显存拷贝到内存中;
4)利用步骤3)的计算结果生成哈特里-福克矩阵,并在CPU上调用Lapack数学库来完成计算,在CPU上做矩阵对角化操作;
5)计算得新的单粒子态,重新返回步骤1)计算新的哈特里-福克算符,再次自洽运算,直接两次自洽达到预定的精度则退出自洽计算;
6)根据自洽后所得到的精确单粒子态,计算多体系的能量及态矢的进一步物理量。
CN201210398977.4A 2012-10-19 2012-10-19 一种利用gpu加速哈特里-福克计算的方法 Active CN102929841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210398977.4A CN102929841B (zh) 2012-10-19 2012-10-19 一种利用gpu加速哈特里-福克计算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210398977.4A CN102929841B (zh) 2012-10-19 2012-10-19 一种利用gpu加速哈特里-福克计算的方法

Publications (2)

Publication Number Publication Date
CN102929841A CN102929841A (zh) 2013-02-13
CN102929841B true CN102929841B (zh) 2016-06-29

Family

ID=47644642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210398977.4A Active CN102929841B (zh) 2012-10-19 2012-10-19 一种利用gpu加速哈特里-福克计算的方法

Country Status (1)

Country Link
CN (1) CN102929841B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663149A (zh) * 2012-03-01 2012-09-12 浪潮(北京)电子信息产业有限公司 一种确定微、纳电子结构的方法及装置
CN102663207A (zh) * 2012-04-28 2012-09-12 浪潮电子信息产业股份有限公司 一种利用gpu加速介观体系物理问题求解的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4870911B2 (ja) * 2004-02-25 2012-02-08 独立行政法人科学技術振興機構 分子軌道演算装置、該方法、該プログラム及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663149A (zh) * 2012-03-01 2012-09-12 浪潮(北京)电子信息产业有限公司 一种确定微、纳电子结构的方法及装置
CN102663207A (zh) * 2012-04-28 2012-09-12 浪潮电子信息产业股份有限公司 一种利用gpu加速介观体系物理问题求解的方法

Also Published As

Publication number Publication date
CN102929841A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
Seritan et al. TeraChem: Accelerating electronic structure and ab initio molecular dynamics with graphical processing units
Joó et al. Status and future perspectives for lattice gauge theory calculations to the exascale and beyond
Kim et al. Hybrid algorithms in quantum Monte Carlo
Xiong et al. Efficient parallel implementation of the lattice Boltzmann method on large clusters of graphic processing units
Delaney et al. Polymer field-theory simulations on graphics processing units
Shao et al. Large-scale ab initio simulations for periodic system
Bonati et al. QCD simulations with staggered fermions on GPUs
Fattebert et al. Modeling dilute solutions using first-principles molecular dynamics: computing more than a million atoms with over a million cores
CN102663207B (zh) 一种利用gpu加速量子介观体系求解的方法
Hu et al. High performance computing of DGDFT for tens of thousands of atoms using millions of cores on Sunway TaihuLight
Song et al. Implementation of the CPU/GPU hybrid parallel method of characteristics neutron transport calculation using the heterogeneous cluster with dynamic workload assignment
Ayala et al. Accelerating multi-process communication for parallel 3-D FFT
Wu et al. Exploiting hierarchy parallelism for molecular dynamics on a petascale heterogeneous system
Doran et al. Stochastic evaluation of fourth-order many-body perturbation energies
Zhang et al. A data-oriented method for scheduling dependent tasks on high-density multi-GPU systems
CN102929841B (zh) 一种利用gpu加速哈特里-福克计算的方法
CN102663149B (zh) 一种确定微、纳电子结构的方法及装置
Hopfer et al. Solving the ghost–gluon system of Yang–Mills theory on GPUs
Terzer et al. Parallel extreme ray and pathway computation
Khan et al. Nearly Linear Scalability of Time-Dependent Discrete Variable Representation (TDDVR) Method for the Dynamics of Multi-Surface Multi-Mode Hamiltonian
Cai et al. GPU-accelerated restricted boltzmann machine for collaborative filtering
Zhang et al. Accelerating lattice QCD on sunway many-core processor
Wu et al. A fast parallel implementation of molecular dynamics with the morse potential on a heterogeneous petascale supercomputer
Peng et al. mAMBER: A CPU/MIC collaborated parallel framework for AMBER on Tianhe-2 supercomputer
Qin et al. High performance computing for first-principles Kohn-Sham density functional theory towards exascale supercomputers

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