The invention discloses a parallel acceleration method for molecular dynamics simulation model, which belongs to the field of parallel computing technology. Aiming at the time-dependent data computing task of molecular dynamics system, the parallel acceleration method of molecular dynamics model is implemented by a cluster running in a multi-core architecture and taking GPU as a coprocessor, so as to make it self-adaptive when the cluster computing performance is the same. We should find a maximum time step to exchange data once, so as to realize the accelerated optimization of the model running speed. In the process of parallel computing, the parallel computing speed is increased from one data exchange per time step to one data exchange per time step. By adopting the technical scheme of the invention, the accuracy of calculation can be improved, the calculation speed can be accelerated, the communication cost of data transmission can be reduced, and the overall calculation performance of multi-core GPU cluster system for molecular dynamics simulation can be improved.
【技术实现步骤摘要】
一种针对分子动力仿真模型的并行化加速方法
本专利技术属于并行计算
,涉及程序并行化加速方法,尤其涉及一种针对分子动力学仿真模型进行并行加速的方法。
技术介绍
分子动力学仿真是科学计算领域中非常重要的一部分,依靠牛顿力学,对分子运动状态进行模拟,经过大量的数值运算,得到一个系统整体的宏观特性。目前,分子动力学仿真技术的基本方法在高分子空间形态研究、蛋白质结构分析、湍流模拟、气象云图分析等领域均有很好的应用。但是,这种方法要求极大的计算量,普通计算机难以满足要求,通常需要用大型机甚至超级计算机来进行运算。分子动力学仿真是一种典型的时间依赖性问题。这种具有时间依赖性的科学计算问题,需要满足如下条件:X[t+dt]=f(X[t]),其中,X[t]是t时刻下的状态向量,f是由物理模型演算出的函数。因此,解决这类问题,大多需要进行大量的迭代运算。现有技术对这种迭代运算的并行化手段是,将状态向量X拆分成较小的部分状态向量Xp,将Xp的计算任务分配到p号处理器上,按照Xp[t+dt]=fp(X[t])进行数据处理。但是,这种并行化方法在数据更新时,需要同其他处理器进行同步操作,交换数据,再次计算。目前所有的众核或者带有GPU(GraphicsProcessingUnit,图形处理器)加速的集群系统,通过PCI(PeripheralComponentInterconnect,外部设备互连总线)进行数据交换的速度非常慢,在实际计算过程中,这种同步操作产生的通信开销约占整个执行时间的20%,大多数集群系统运算速度仅为每秒运行100~600个时间步。这样的速度对于分子动力学 ...
【技术保护点】
1.一种针对分子动力仿真模型的并行化加速方法,针对具有时间依赖性的分子动力系统数据计算任务,采用运行在众核架构、以GPU为协处理器的集群进行分子动力学模型的并行化计算加速,使得在集群计算性能相同时,能够自适应地找到一个最大的时间步长进行一次数据交换,从而实现模型运行速度的加速优化;包括如下步骤:A.对计算任务进行拆分,执行操作A1~A2:A1.记所有待计算的粒子数为N,存储每个粒子的状态信息数据为X,粒子标号从0到N‑1,xi表示i号粒子的状态数据,集群中可用处理器核数为P,处理器标号从0到P‑1,Pi表示第i号处理器;A2.将X个粒子平均分为P份,处理器Pi计算第(X/P*i)号粒子到(X/P*(i+1)‑1)号粒子;当i=P‑1时,处理器Pi计算第(X/P*i)号粒子到(X‑1)号粒子;在每个处理器中设置两块存储空间,一块用于存储待计算粒子的状态数据,记为M1;另一块用于存储全局X个粒子的数据,记为M2;用Pi(M1)表示第i号处理器上待计算粒子的状态数据,集合mi表示在Pi(M1)中存在的粒子,Pi(M2)表示第i号处理器上全体粒子的数据;B.执行异步计算操作,包括B1~B3:B ...
【技术特征摘要】
1.一种针对分子动力仿真模型的并行化加速方法,针对具有时间依赖性的分子动力系统数据计算任务,采用运行在众核架构、以GPU为协处理器的集群进行分子动力学模型的并行化计算加速,使得在集群计算性能相同时,能够自适应地找到一个最大的时间步长进行一次数据交换,从而实现模型运行速度的加速优化;包括如下步骤:A.对计算任务进行拆分,执行操作A1~A2:A1.记所有待计算的粒子数为N,存储每个粒子的状态信息数据为X,粒子标号从0到N-1,xi表示i号粒子的状态数据,集群中可用处理器核数为P,处理器标号从0到P-1,Pi表示第i号处理器;A2.将X个粒子平均分为P份,处理器Pi计算第(X/P*i)号粒子到(X/P*(i+1)-1)号粒子;当i=P-1时,处理器Pi计算第(X/P*i)号粒子到(X-1)号粒子;在每个处理器中设置两块存储空间,一块用于存储待计算粒子的状态数据,记为M1;另一块用于存储全局X个粒子的数据,记为M2;用Pi(M1)表示第i号处理器上待计算粒子的状态数据,集合mi表示在Pi(M1)中存在的粒子,Pi(M2)表示第i号处理器上全体粒子的数据;B.执行异步计算操作,包括B1~B3:B1.设状态转移函数为式1:xi[t+dt]=f(x0[t],x1[t],x2[t]…xN-1[t])(式1)其中,xi[t]表示第i号粒子在t时间步的状态信息,dt为时间跨度,默认为1个单位的时间步;t初值为0;处理器Pi选择粒子集合mi,从Pi(M2)中取出粒子状态数据,代入状态转移函数,计算粒子集合mi在dt后的状态数据DATA;设定终止条件,当满足终止条件时计算完成,反之继续计算;B2.设置跨步计数器step,step=0;设置一块与Pi(M2)相等大小的新空间,记为Pi(M2)step,根据状态数据DATA更新Pi(M1)和Pi(M2)step;更新step和t:step++...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。