本申请涉及分子动力学领域,特别是涉及一种分子动力学非共价键计算方法及装置。
背景技术:
1、分子动力学是运用统计物理学原理,通过计算来研究分子系统中原子和分子的动态流变,从而对分子间相互作用及对引力法则、量子力学理论和其它物理定律的结果等进行模拟研究的仿真技术。
2、非共价键指离子键、金属键和分子间的作用力,非共价键就是两个或多个原子不共同使用它们的外层电子,在理想情况下达到电子饱和的状态,由此组成比较稳定的化学结构叫做非共价键,在分子动力学的非共价键计算时需要处理大量的原子和分子,并计算它们之间的相互作用,这通常需要大量的计算资源,但受硬件计算平台限制,在模拟复杂系统或进行长时间尺度的模拟时往往需要涉及一次运行数月的大型计算集群的实验。
3、综上所述,目前的分子动力学虽然能够得到有价值的非共价键参数,但是其受到硬件计算平台的限制导致整体的计算量较大,计算效率低下。
技术实现思路
1、本申请实施例提供了一种分子动力学非共价键计算方法及装置,通过根据fpga中的dsp资源来构建流水线并通过定义主叫区域与计算区域进行粒子间作用力的计算从而提高了非共价键的计算效率。
2、第一方面,本申请实施例提供了一种分子动力学非共价键计算方法,所述方法包括:
3、cpu端获取分子结构并根据所述分子结构来构建模拟盒子,在所述模拟盒子中通过网格划分的方法配置多个大小相同的区域,设定含有粒子的区域为主叫区域;
4、cpu端获取分子结构中每一粒子的数据信息并存储在fpga中,获取每一主叫区域一半数量的相邻区域作为该主叫区域的计算区域,除计算区域外的相邻区域对称区域,且当前计算区域同对称区域对称,其中相邻区域为直接相邻当前主叫区域的区域;
5、fpga并行计算每一主叫区域与对应计算区域的每一相邻区域的作用力,构建与主叫区域一一对应的一维记录矩阵以及一个二维记录矩阵,其中所述一维记录矩阵的每一列为与该一维记录矩阵对应的主叫区域的计算区域中的每一相邻区域,每一一维记录矩阵中的值默认为0,当主叫区域与对应的一个相邻区域完成计算后,在与该主叫区域对应的一维记录矩阵中将完成计算的相邻区域对应的位置的值变为1,其中所述二维记录矩阵的行为每一主叫区域,列为模拟盒子中的所有区域,当列代表的区域为行代表的主叫区域的计算区域中的相邻区域时,将对应位置的值变为1,否则为0,将每一一维记录矩阵对应的值与对应同一主叫区域在二维记录矩阵中的行的值进行比对,若相同则进一步计算该主叫区域与对称区域的作用力;
6、整合每一主叫区域与所有相邻区域的作用力计算结果完成非共价键的计算。
7、第二方面,本申请实施例提供了一种分子动力学非共价键计算装置,包括:
8、第一获取模块,用于通过cpu端获取分子结构并根据所述分子结构来构建模拟盒子,在所述模拟盒子中通过网格划分的方法配置多个大小相同的区域,设定含有粒子的区域为主叫区域;
9、第二获取模块:用于通过cpu端获取分子结构中每一粒子的数据信息并存储在fpga中,获取每一主叫区域一半数量的相邻区域作为该主叫区域的计算区域,除计算区域外的相邻区域对称区域,且当前计算区域同对称区域对称,其中相邻区域为直接相邻当前主叫区域的区域;
10、计算模块,用于通过fpga并行计算每一主叫区域与对应计算区域的每一相邻区域的作用力,构建与主叫区域一一对应的一维记录矩阵以及一个二维记录矩阵,其中所述一维记录矩阵的每一列为与该一维记录矩阵对应的主叫区域的计算区域中的每一相邻区域,每一一维记录矩阵中的值默认为0,当主叫区域与对应的一个相邻区域完成计算后,在与该主叫区域对应的一维记录矩阵中将完成计算的相邻区域对应的位置的值变为1,其中所述二维记录矩阵的行为每一主叫区域,列为模拟盒子中的所有区域,当列代表的区域为行代表的主叫区域的计算区域中的相邻区域时,将对应位置的值变为1,否则为0,将每一一维记录矩阵对应的值与对应同一主叫区域在二维记录矩阵中的行的值进行比对,若相同则进一步计算该主叫区域与对称区域的作用力;
11、整合模块,用于整合每一主叫区域与所有相邻区域的作用力计算结果完成非共价键的计算。
12、第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种分子动力学非共价键计算方法。
13、第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种分子动力学非共价键计算方法。
14、本发明的主要贡献和创新点如下:
15、本申请实施例通过在模拟盒子中设置主叫区域以及每一主叫区域的相邻区域,从而在进行计算时只计算主叫区域与相邻区域之间的分子作用力,减少计算量;本方案在对主叫区域与相邻区域之间的粒子进行计算时,从相邻区域中进一步选取出一半的计算区域与主叫区域进行计算,再通过牛顿第三定理对剩余的区域进行推理从而进一步减少了计算时间;本方案通过fpga进行大量的并行计算,并且在fpga中设置hbm2存储设备以及ram存储设备分别存储粒子信息以及计算得到的粒子间信息;本方案通过设置一维计算矩阵与二维计算矩阵,从而更好的判断主叫区域与每一计算区域的计算进展。
16、本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
1.一种分子动力学非共价键计算方法,其特征在于,包括:
2.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,所述模拟盒子中区域的大小大于等于粒子之间相互作用的距离。
3.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,在“cpu端获取分子结构中每一粒子的数据信息并存储在fpga中”步骤中,所述数据信息包括粒子的实时位置信息与计算参数,所述每一粒子的数据信息存储在fpga中的hbm2存储设备中。
4.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,在“获取每一主叫区域一半数量的相邻区域作为该主叫区域的计算区域”步骤中,以主叫区域为对称中心点选取一半数量的相邻区域作为计算区域。。
5.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,在“fpga并行计算每一主叫区域与对应计算区域的每一相邻区域的作用力”步骤中,fpga构建非共价键计算流水线,将每一粒子的数据信息转存到fpga中的ram存储设备中并生成粒子信息查找表,在所述粒子信息查找表中以每一粒子所在区域的标识号作为索引,非共价键计算流水线基于索引在所述粒子信息查找表中获取每一粒子的数据信息。
6.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,fpga采用32位浮点数单精度存储数据。
7.根据权利要求1所述的一种分子动力学非共价键计算方法,其特征在于,在所述fpga中设置步数累加器,当所述步数累加器记录到第一数量的时间步计算后对模拟盒子中每一粒子的所属区域进行重新配置,将配置后的结果重新写入所述fpga中。
8.一种分子动力学非共价键计算装置,其特征在于,包括:
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-7任一项所述的一种分子动力学非共价键计算方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括权利要求1-7任一项所述的一种分子动力学非共价键计算方法。