计算化学公社

标题: 关于Gaussian批处理或者多步计算 [打印本页]

作者
Author:
醒目苹果倪    时间: 2017-8-3 21:50
标题: 关于Gaussian批处理或者多步计算
请教大家一个问题。关于用gaussian来处理一批相互关联的作业。比如,我有一个计算过程,需要计算四步,A,B,C,D。后面的每一步都需要基于前一步的.chk文件。正常来说这种计算可以把四步通过Link写一个输入文件,一口气算完了。但是这样就只能得到一个log文件和一个chk文件。如果这个作业没算完,我想单独查看前两步的的结果,就比较麻烦了。
我现在想到另外一个方法是把这四步单独写输入文件,然后通过一个批处理脚本.sh来提交作业。如下:
qsub A.in.sub
wait
cp A.chk B.chk
wait
qsub B.in.sub
wait
cp B.chk C.chk
wait
qsub C.in.sub
wait
cp C.chk D.chk
wait
qsub D.in.sub
我记得我之前在另外一个课题组,这种方式是可以实现依次提交作业的。
但是我今天试了一下,发现他会同时把四个作业都提交上去,而不是依次提交。不知道是不是那里出错了。
请各位帮忙看看需要怎么修改呢?
或者用Link的时候有么有可能让他把四个过程的输出和chk文件分开,单独保存?

非常感谢。




作者
Author:
liyuanhe211    时间: 2017-8-3 22:07
本帖最后由 liyuanhe211 于 2017-8-3 22:09 编辑


用 Link0 指令 %oldchk  可以使每步任务保存为不同的chk文件,看高斯手册
下面的python脚本可以将一个多步的gaussian输出文件拆分为单独的几步,使用方法为 python 脚本路径.py 要拆分的输出文件.out(脚本看着复杂,其实只是依赖了之前的一些函数,实际上10行左右就能实现了)
(, 下载次数 Times of downloads: 142)

要分成多个文件依次跑的话应该把你qsub命令换成Gaussian的运行命令,比如g09,然后qsub整个脚本。qsub只是提交任务,你wait的是提交任务这个动作本身,而不是任务跑完。


作者
Author:
醒目苹果倪    时间: 2017-8-3 22:54
liyuanhe211 发表于 2017-8-3 22:07
用 Link0 指令 %oldchk  可以使每步任务保存为不同的chk文件,看高斯手册
下面的python脚本可以将一个多 ...

好的。非常感谢。我试一下。谢谢!
作者
Author:
liuxiaogang0206    时间: 2017-8-6 07:47
也可以利用任务排队系统本身的功能。 通常使用于 (1)若你可以管理服务器,(2) 或者服务器本身自带这个派对功能。

例如我们常用的一个脚本:-J  代表工作。  -w 代表等待。
连起来,就是上一步跑完了再自动进入下一步。
如果上一步报错,回头后面等待的工作要手动删除。不然老是挂在那里。
懒人做法,如果时间紧。 可以用这个套路。

bsub -q parallel -o myjob.eo -n 12 -J "04CTEST_cam-b3lyp_EtOH" 'g09d 04CTEST_cam-b3lyp_EtOH.com 04CTEST_cam-b3lyp_EtOH.log'
bsub -q parallel -o myjob.eo -n 12 -w "done(04CTEST_cam-b3lyp_EtOH)" -J "06CTEST_cam-b3lyp_EtOH" 'g09d 06CTEST_cam-b3lyp_EtOH.com 06CTEST_cam-b3lyp_EtOH.log'
bsub -q parallel -o myjob.eo -n 12 -w "done(06CTEST_cam-b3lyp_EtOH)" -J "07CTEST_cam-b3lyp_EtOH" 'g09d 07CTEST_cam-b3lyp_EtOH.com 07CTEST_cam-b3lyp_EtOH.log'
bsub -q parallel -o myjob.eo -n 12 -w "done(04CTEST_cam-b3lyp_EtOH)" -J "05CTEST_cam-b3lyp_EtOH" 'g09d 05CTEST_cam-b3lyp_EtOH.com 05CTEST_cam-b3lyp_EtOH.log'

作者
Author:
醒目苹果倪    时间: 2017-8-21 22:12
liuxiaogang0206 发表于 2017-8-6 07:47
也可以利用任务排队系统本身的功能。 通常使用于 (1)若你可以管理服务器,(2) 或者服务器本身自带这个 ...

好的,非常感谢。我尝试一下。谢谢
作者
Author:
kyuu    时间: 2017-8-22 17:20
不需要,脚本命令可以使用&&,前一脚本命令执行成功即可以进去下一命令,反之脚本执行异常退出,
意思是你在脚本里写执行命令 A && B,A的任务全部执行完毕无报错,之后会进行B任务,若A出错,全部任务错误退出,不会执行B
作者
Author:
捍卫中巴到永远    时间: 2017-11-9 10:08
请问楼主, 我想提交多个gjf作业 这个批量处理的帖子在哪里看啊  我搜索关键词  批量处理gjf  没有相关的帖子出来 谢谢了
作者
Author:
sobereva    时间: 2017-11-9 22:55
捍卫中巴到永远 发表于 2017-11-9 10:08
请问楼主, 我想提交多个gjf作业 这个批量处理的帖子在哪里看啊  我搜索关键词  批量处理gjf  没有相关的帖 ...

使用Gaussian时的几个实用脚本和命令
http://sobereva.com/258
作者
Author:
tjchkj    时间: 2017-11-15 21:02
sobereva 发表于 2017-11-9 22:55
使用Gaussian时的几个实用脚本和命令
http://sobereva.com/258

看过了你的关于批处理的帖子,有一个问题:在windows下做批处理,先不说批处理,就是单行dos命令,用G16w.exe这个windows下的高斯程序,格式为 g16w 输入文件名.gjf  输出文件名.out 这样,发现只是把g16w运行起来,并不去打开.gjf去运算。 高斯的path和环境变量都在windows系统里做过设置了。即使把 .gjf 放到高斯安装路径下,也是这样。最后还是用高斯本身那个.bcf去做批处理还是非常棒的。
作者
Author:
sobereva    时间: 2017-11-15 21:11
tjchkj 发表于 2017-11-15 21:02
看过了你的关于批处理的帖子,有一个问题:在windows下做批处理,先不说批处理,就是单行dos命令,用G16w ...

你把g16w.exe和g16.exe完全搞混了!

作者
Author:
tjchkj    时间: 2017-11-16 16:50
本帖最后由 tjchkj 于 2017-11-16 22:08 编辑
sobereva 发表于 2017-11-15 21:11
你把g16w.exe和g16.exe完全搞混了!

我这个是windows 下的,查看了安装文件夹里,最后真没有你说的g16.exe这个可执行程序的,只有g16w.exe。最后我觉得,还是高斯里自带的批处理还真是特别好用。处理个几千行的批处理任务一点都不费劲。就是注意一下,bcf文件的文件名长度不能超过9个,最多9个字符,多了就出错。

作者
Author:
sobereva    时间: 2017-11-25 17:37
tjchkj 发表于 2017-11-16 16:50
我这个是windows 下的,查看了安装文件夹里,最后真没有你说的g16.exe这个可执行程序的,只有g16w.exe。 ...


不可能没有(除非你手动删了,或者安全程序自动删了之类)
(, 下载次数 Times of downloads: 58)

用脚本方便得多,双击一下.bat文件就能让当前目录下所有.gjf都让高斯执行。而用自带的batch list你还得一个个添加
作者
Author:
tjchkj    时间: 2017-11-25 23:47
sobereva 发表于 2017-11-25 17:37
不可能没有(除非你手动删了,或者安全程序自动删了之类)

谢谢了,我重新查了下确实是有这个G16.exe 。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3