请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 177|回复: 1

[molclus] 分解合并Molclus任务的小脚本splitMC

[复制链接]

604

帖子

15

威望

2164

eV
积分
3068

Level 5 (御坂)

发表于 2019-8-27 19:06:28 | 显示全部楼层 |阅读模式
本帖最后由 ggdh 于 2019-8-27 19:33 编辑

sob在Molclus的教程: 使用molclus程序做团簇构型搜索和分子构象搜索中提到,Molclus有个技巧来提高并行效率:
“Molclus可以同时运行多个以试图节约时间。大家都知道支持并行的计算程序的计算耗时不会和调用的核数线性相关,随着核数增加并行效率必然会愈发降低。比如你的机子核数很多,有56核,traj.xyz里有1000个结构需要处理,你希望降低molclus处理这个traj.xyz的总耗时,那么你可以比如把molclus文件夹复制成四份,比如分别叫molc1、molc2、molc3、molc4,分别将这四个目录下的settings.ini里的ngeom设为1,250、251,500、501,750、751,1000。然后开启四个终端,分别进入这四个目录并且运行molclus。等都运行完了,使用这条命令把四个目录下产生的isomers.xyz合并在一起:cat molc1\isomers.xyz molc2\isomers.xyz molc3\isomers.xyz molc4\isomers.xyz”

对于构象很多时,这个技巧非常有用,不过手动分解的情况下,能够分解的任务数有限,比如我有10000个构象,想分解成1000个任务,每个任务10个构象,使用MOPAC计算,每个任务分配1核,提交到超算中心上,这种情况下,如果手动分解,基本不可能,于是就编写了这个脚本。使用步骤如下:

1.准备molclus文件夹
准备好molclus的计算文件夹(这里假设文件夹名为molc),里面应该有设置好的settings.ini文件和模板文件,以及traj.xyz文件,确定在该文件夹下运行molclus可以正常计算。把这个脚本加入PATH路径中

2.分解任务
运行本程序:
  1. splitMC -t 50 molc
复制代码
其中-t 的意思是把该任务分解成50份
得到类似如下的结果:
splitMC1.png
列出了新产生的文件夹名,和其中对应的帧的编号。每个文件夹中settings.ini中的ngeom部分也做了相应的更改。
此时文件夹下已经产生了molc_01到molc_50的50个文件夹。以及三个批处理模板文件,分别是runall.sh,runall.pbs,runall.slurm。
注意这里如果设定任务数大于总的结构数,那么最后得到的任务数就会等于结构数,每个任务一个结构。

3.批量运算
如果本机运行,直接运行sh runall.sh就行,这时候会同时计算所有的任务,所以应该保证任务数乘以每任务cpu数小于总cpu数;
如果提交到超算中心,根据作业调度系统的类型,编辑runall.pbs或runall.slurm文件(主要需要添加队列名称,账户名称)后,运行
sh runall.pbs 或 sh runall.slurm就可以进行批量提交。

4.合并结果
全部算完后运行命令:
  1. splitMC molc
复制代码
不加任何参数表示进行合并任务,得到类似如下的结果:
splicMC2.png
显示了每个文件夹中的计算情况,其中1/1的意思是该文件夹中需要计算1帧,实际获得1帧。如果是10/8,就说明文件夹中需要计算10帧,实际只得到了8帧,这时候可以到那个文件夹下看看出了什么状况导致两帧没算。最后会在当前目录下得到isomers.xyz文件,供后续isostat处理。

5. 脚本的选项说明
-t 选项设定一共有多少个任务
-g 选项设定每个任务算多少个结构(-g 和 -t同时设定的话-t会失效,任务数由-g决定)
-n 选项设定每个任务分配多少核,这个选项只影响最后生成的runall.pbs 和runall.slurm文件中的配置。

最后欢迎提出意见和bug反馈。


splitMC

2.79 KB, 下载次数: 7

评分

参与人数 3威望 +1 eV +10 收起 理由
zsu007 + 5 牛!
captain + 5 赞!
sobereva + 1 GJ!

查看全部评分

2万

帖子

25

威望

2万

eV
积分
45935

管理员

公社社长

发表于 2019-8-27 19:12:52 | 显示全部楼层
好物。已经把这个帖子在molclus的主贴里提及了
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群,1号:18616395,2号:466017436。达5000人,专门交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2019-9-22 08:24 , Processed in 0.153651 second(s), 28 queries .

快速回复 返回顶部 返回列表