[发明专利]一种针对分子动力仿真模型的并行化加速方法有效
| 申请号: | 201711258343.8 | 申请日: | 2017-12-04 |
| 公开(公告)号: | CN109871553B | 公开(公告)日: | 2021-07-09 |
| 发明(设计)人: | 陈一峯;张明悦;王贝 | 申请(专利权)人: | 北京大学 |
| 主分类号: | G06F30/20 | 分类号: | G06F30/20;G06F9/46;G06F119/14 |
| 代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 黄凤茹 |
| 地址: | 100871*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 针对 分子 动力 仿真 模型 并行 加速 方法 | ||
1.一种针对分子动力仿真模型的并行化加速方法,针对具有时间依赖性的分子动力系统数据计算任务,采用运行在众核架构、以GPU为协处理器的集群进行分子动力学模型的并行化计算加速,使得在集群计算性能相同时,能够自适应地找到一个最大的时间步长进行一次数据交换,从而实现模型运行速度的加速优化;通过采用消息传递接口MPI进行节点间的计算并行化,采用统一计算设备架构CUDA,在单机上利用GPU进行并行加速;
在单机上利用GPU进行并行加速,具体通过将数据平均拆分成多份,放到各处理器中独立处理一段时间步长,然后再进行同步操作,各处理器交换数据,直到计算结果不发生改变,得到正确的计算结果;再继续进行下一轮迭代计算;包括如下步骤:
A.对计算任务进行拆分,执行操作A1~A2:
A1.记所有待计算的粒子数为N,存储每个粒子的状态信息数据为X,粒子标号从0到N-1,xi表示i号粒子的状态数据,集群中可用处理器核数为P,处理器标号从0到P-1,Pi表示第i号处理器;
A2.将N个粒子平均分为P份,处理器Pi计算第N/P*i号粒子到N/P*(i+1)-1号粒子;当i=P-1时,处理器Pi计算第N/P*i号粒子到N-1号粒子;在每个处理器中设置两块存储空间,一块用于存储待计算粒子的状态数据,记为M1;另一块用于存储全局N个粒子的数据,记为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++,t=t+dt;
B3.设置step阈值为S,当step大于S时,执行步骤C进行数据同步;否则跳回步骤B1;
C.执行数据同步操作:
C1.处理器Pi以广播形式向其他处理器传输数据Pi(M2)0,Pi(M2)1,Pi(M2)2,…,Pi(M2)S+1;并等待其他P-1个处理器传来数据;
C2.处理器Pi将本地S+2组数据和其他处理器传来的数据一一进行比较,当数据全部相同时,设置S=S+1,释放Pi(M2)0,Pi(M2)1,Pi(M2)2…Pi(M2)S数据,更新Pi(M2)为Pi(M2)S+1并跳回步骤B,继续进行异步计算操作;反之,找到最早不同的数据,设为Pi(M2)S’和Pj(M2)S’,释放Pi(M2)S’,Pi(M2)S’+1,…,Pi(M2)S+1数据,设置Pi(M2)为Pi(M2)S’-1,设置S=S-1,跳回步骤B,继续进行异步计算操作;
通过上述步骤,实现针对分子动力仿真模型的并行化加速。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711258343.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种不同深度的土壤温度估算方法
- 下一篇:一种汽车饰件的共享设计方法





