24小时热门版块排行榜    

查看: 1272  |  回复: 7

bab00n

新虫 (小有名气)

[求助] 关于MD模拟使用Openmp效率的问题 已有1人参与

本人小硕一枚,本科也没接触过并行计算,现在导师研究方向是MD模拟团簇沉积过程,MD模拟程序时老师之前写好的并且发表了文章,程序使用的是fortran语言,现在导师要求我把源程序改写成并行计算。通过上网查资料发现主要运用的并行方法有OpenMP和MPI,由于MPI适用于集群服务器以及编程对源程序改动大等原因,我最终选择了Openmp,通过用Vtune对程序进行热点分析,发现其中主要是对分子之间作用力的子程序占了计算了的90%,因此对其力的计算的部分加入并行语句,通过对比串行与并行的数据发现数据吻合的很好,但是其计算效率并没有提高,相反的计算时间却翻了2倍之多,其中对力部分并行的源代码在附件中。期间通过调研文献,其中文献也是对其力的计算加入并行,其效率能提高1.7之多。希望能有大神帮我分析下其中原因?万分感谢!
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : subroutine_Force.txt
  • 2017-09-18 16:31:05, 39.75 K

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijf517

木虫 (小有名气)

我看过的所有知名的分子动力学程序还有我自己曾经写过的分子动力学程序,都是用MPI并行的。分子动力学问题天然适合MPI并行。把空间区域分成多块,每个进程独立地处理一块。写得好的可以在上百个处理器下依然取得60%以上的并行加速比。分子动力学问题规模通常很大,几十万上百万原子数的模拟很常见,串行跑不但运行时间久(动辄运行几天),还有可能内存超过单个计算结点最大内存而无法运行。MPI并行使用分布式存储,没有内存大小限制,而且在服务器上用几百个核时计算效率可提高几十倍,比你提到的文献里用OPENMP提高1.7倍强多了。当然MPI并行入门门槛要比OPENMP高很多。用OPENMP你只用在循环处简单加几条语句就行了。不过OPENMP对循环的优化是有条件的,要求循环之间没有数据的相互依赖。比如第I次循环计算原子I的作用力时不能依赖于第J次循环的计算结果,否则循环并不会自动并行,反而会增加额外开销。你可以检查下是不是这个问题

发自小木虫Android客户端
2楼2017-09-19 12:38:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bab00n

新虫 (小有名气)

引用回帖:
2楼: Originally posted by lijf517 at 2017-09-19 12:38:57
我看过的所有知名的分子动力学程序还有我自己曾经写过的分子动力学程序,都是用MPI并行的。分子动力学问题天然适合MPI并行。把空间区域分成多块,每个进程独立地处理一块。写得好的可以在上百个处理器下依然取得60% ...

调研文献都说MPI适用于集群服务器,实验室只有单个服务器,因此我才采用openmp进行并行。那对于单个服务器采用mpi效率能提高很大吗?还有我用openmp是对作用力分解法,只是对作用力的计算循环加入了openmp语句并行,现在模拟的原子尺寸还在几万的级别,用串行程序大概得跑一天,若对更大尺寸的原子数进行模拟时间消耗太大,因此我才想要把程序进行并行计算来提高效率,但加入openmp后虽然结果对的上但是时间却翻了2倍之多。大概原因应该是其中并行线程反复的创建与销毁增加了开销。还有想问的是,我不是很懂计算机,若采用mpi并行的话,难度会大多少呢?谢谢
3楼2017-09-20 10:58:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lyl453433939

金虫 (正式写手)

高性能设备软硬件集成商

【答案】应助回帖

建议购买或者租用计算机集群提高效率,我们这里有的。可以私信。
4楼2017-10-10 13:52:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bab00n

新虫 (小有名气)

引用回帖:
4楼: Originally posted by lyl453433939 at 2017-10-10 13:52:54
建议购买或者租用计算机集群提高效率,我们这里有的。可以私信。

可是我这边光有串行程序,就算租用你们的集群服务器也不会改成并行的啊,你们可以帮忙改写程序吗?
5楼2017-11-02 10:38:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lyl453433939

金虫 (正式写手)

高性能设备软硬件集成商

【答案】应助回帖

引用回帖:
5楼: Originally posted by bab00n at 2017-11-02 10:38:29
可是我这边光有串行程序,就算租用你们的集群服务器也不会改成并行的啊,你们可以帮忙改写程序吗?...

你们是什么程序,得看能不能改写。

发自小木虫IOS客户端
6楼2017-11-02 15:26:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bab00n

新虫 (小有名气)

引用回帖:
6楼: Originally posted by lyl453433939 at 2017-11-02 15:26:29
你们是什么程序,得看能不能改写。
...

Fortran写的程序

发自小木虫Android客户端
7楼2017-11-02 23:24:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bab00n

新虫 (小有名气)

引用回帖:
6楼: Originally posted by lyl453433939 at 2017-11-02 15:26:29
你们是什么程序,得看能不能改写。
...

是一个用分子动力学来模拟团簇沉积的围观过程的程序

发自小木虫Android客户端
8楼2017-11-02 23:25:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bab00n 的主题更新
信息提示
请填处理意见