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