本申请涉及分子动力学领域,特别是涉及一种基于host和fpga协同的分子动力学非共价键计算方法及装置。
背景技术:
1、分子动力学是运用统计物理学原理,通过计算机模拟的手段来研究分子系统中原子和分子的动态流变,从而对分子间相互作用及对引力法则、量子力学理论和其它物理定律的结果等进行模拟研究的仿真技术。
2、非共价键指离子键、金属键和分子间的作用力,非共价键就是两个或多个原子不共同使用它们的外层电子,在理想情况下达到电子饱和的状态,由此组成比较稳定的化学结构叫做非共价键,在分子动力学的非共价键计算时需要处理大量的原子和分子,并计算它们之间的相互作用,这通常需要大量的计算资源,但受硬件计算平台限制,在模拟复杂系统或进行长时间尺度的模拟时往往需要涉及一次运行数月的大型计算集群的实验。
3、综上所述,目前虽然可以通过计算得到分子动力学中每一个粒子的非共价键作用力,但是其受到硬件计算平台的限制导致整体的计算量较大,计算效率低下。
技术实现思路
1、本申请实施例提供了一种基于host和fpga协同的分子动力学非共价键计算方法及装置,通过将host与fpga进行协同计算粒子的非共价键作用力从而提高计算效率。
2、第一方面,本申请实施例提供了一种基于host和fpga协同的分子动力学非共价键计算方法,所述方法包括:
3、host端基于分子结构构建模拟盒子并采用网格划分的方法将所述模拟盒子划分为多个相同大小的子格子,基于分子结构中每一粒子的粒子数据信息构建粒子信息查找表存储于共享存储区域中,所述粒子数据信息包括粒子编号、粒子所属子格子、粒子所属子格子的子格子标识号、粒子的实时位置信息以及粒子的计算参数;
4、设定含有粒子的子格子为主叫格子,每一主叫格子一半数量的相邻格子作为该主叫格子的计算区域,其中相邻格子为直接相邻主叫格子的子格子,host端通过pcie接口将共享存储区域中的粒子信息查找表传输到fpga中的hbm2存储设备中,fpga基于接收到的粒子信息查找表中的粒子数据信息并行计算每一主叫格子与对应计算区域的作用力作为第一作用力结果,并将第一作用力结果缓存到所述共享存储区域中;
5、当host端从共享存储区域中接收每一主叫格子的第一作用力结果后将其传输给fpga,fpga基于每一主叫格子的第一作用力结果计算每一主叫格子与对应对称区域的作用力作为第二作用力结果并将所述第二作用力结果传输到共享存储区域中,所述对称区域为与主叫格子的计算区域对称且与该主叫格子相邻的子格子组成的区域;
6、host端基于共享存储区域中每一主叫格子的第一作用力结果和第二作用力结果更新分子结构中每一粒子的坐标信息完成非共价键计算。
7、第二方面,本申请实施例提供了一种基于host和fpga协同的分子动力学非共价键计算装置,包括:
8、区域划分模块,用于通过host端基于分子结构构建模拟盒子并采用网格划分的方法将所述模拟盒子划分为多个相同大小的子格子,基于分子结构中每一粒子的粒子数据信息构建粒子信息查找表存储于共享存储区域中,所述粒子数据信息包括粒子编号、粒子所属子格子、粒子所属子格子的子格子标识号、粒子的实时位置信息以及粒子的计算参数;
9、第一计算模块,设定含有粒子的子格子为主叫格子,每一主叫格子一半数量的相邻格子作为该主叫格子的计算区域,其中相邻格子为直接相邻主叫格子的子格子,host端通过pcie接口将共享存储区域中的粒子信息查找表传输到fpga中的hbm2存储设备中,fpga基于接收到的粒子信息查找表中的粒子数据信息并行计算每一主叫格子与对应计算区域的作用力作为第一作用力结果,并将第一作用力结果缓存到所述共享存储区域中;
10、第二计算模块,当host端从共享存储区域中接收每一主叫格子的第一作用力结果后将其传输给fpga,fpga基于每一主叫格子的第一作用力结果计算每一主叫格子与对应对称区域的作用力作为第二作用力结果并将所述第二作用力结果传输到共享存储区域中,所述对称区域为与主叫格子的计算区域对称且与该主叫格子相邻的子格子组成的区域;
11、整合模块,用于通过host端基于共享存储区域中每一主叫格子的第一作用力结果和第二作用力结果更新分子结构中每一粒子的坐标信息完成非共价键计算。
12、第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种基于host和fpga协同的分子动力学非共价键计算方法。
13、第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据一种基于host和fpga协同的分子动力学非共价键计算方法。
14、本发明的主要贡献和创新点如下:
15、本申请实施例本申请实施例使用host的fpga进行协同计算,host负责对分子结构进行区域划分,而fpga负责对粒子之间的作用力进行计算,从而加快了分子动力学中非共价键的计算速度;本方案将同一区域中的粒子数据信息存储单独存放于一个独立的存储单元中,从而在进行计算时可以更快的调用想要的粒子数据信息;本方案对与待计算粒子相连比较近的粒子进行过滤,从而减少了计算量。
16、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,包括:
2.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,在“host端基于分子结构构建模拟盒子并采用网格划分的方法将所述模拟盒子划分为多个相同大小的子格子”步骤中,分子结构越大,所述模拟盒子越大,且所述模拟盒子内包含所有的分子结构。
3.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,每一粒子信息数据在所述粒子信息查找表中的存储格式相同,且每一粒子的数据信息通过数据标识位进行区分。
4.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,host端通过bypass接口将启动信号传输到fpga中,fpga接收启动信号后进行计算。
5.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,当fpga完成计算时通过dma通道向host端发送中断信号,host端接收到中断信号后在所述共享存储区域中接收每一主叫格子的第一作用力结果。
6.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,设置过滤模块,所述过滤模块通过粒子的实时位置信息判断粒子间的距离,并对与待计算粒子的距离在设定长度阈值以下的粒子进行过滤,被过滤的粒子不参与计算。
7.根据权利要求1所述的一种基于host和fpga协同的分子动力学非共价键计算方法,其特征在于,在“host端基于共享存储区域中每一主叫格子的第一作用力结果和第二作用力结果更新分子结构中每一粒子的坐标信息”步骤中,对每一主叫格子的第一作用力和第二作用力进行加合处理来更新分子结构中每一粒子的坐标信息。
8.一种基于host和fpga协同的分子动力学非共价键计算装置,其特征在于,包括:
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-7任一所述的一种基于host和fpga协同的分子动力学非共价键计算方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1-7任一所述的一种基于host和fpga协同的分子动力学非共价键计算方法。