计算化学公社

 找回密码 Forget password
 注册 Register
Views: 3504|回复 Reply: 11
打印 Print 上一主题 Last thread 下一主题 Next thread

[Gaussian/gview] 怎么同时执行当前目录下所有Gaussian输入文件并在完成时再显示finish?

[复制链接 Copy URL]

37

帖子

0

威望

355

eV
积分
392

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 laomalao 于 2022-4-10 23:34 编辑



参照了http://sobereva.com/258的写法,发现只能一个一个算,算完一个显示finish了再提交下一个任务。时间上太划不来了。如下所示,我只是在time g09这一行后加了&,实现了同时计算,但是finish也同时全部显示出来了。。。
请问怎么同时执行当前目录下所有Gaussian输入文件并在完成时再显示finish?


#!/bin/bash
[size=11.375px]icc=0
[size=11.375px]nfile=`ls ./*.gjf|wc -l`
[size=11.375px]for inf in *.gjf
[size=11.375px]do
[size=11.375px]((icc++))
[size=11.375px]echo Running ${inf} ... \($icc of $nfile\)
[size=11.375px]time g09 < ${inf} > ${inf//gjf/out} &
[size=11.375px]echo ${inf} has finished
[size=11.375px]echo
[size=11.375px]done



1万

帖子

0

威望

9857

eV
积分
22093

Level 6 (一方通行)

2#
发表于 Post on 2022-4-11 02:32:10 | 只看该作者 Only view this author
我一般用的方法是,在命令后面加&、把所有任务都跑上以后,用一个while循环,不断ps aux(或者不断top、不断jobs可能也行),检查任务有没有跑完,如果没有跑完就sleep一秒,如果跑完了就跳出循环,往后执行(也就是你这里的显示finish)。
当然这个方法比较ugly,看看别人有没有更加elegant的解决方法

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
laomalao + 3 谢谢分享

查看全部评分 View all ratings

Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

3#
发表于 Post on 2022-4-11 08:28:32 | 只看该作者 Only view this author
本帖最后由 abin 于 2022-4-11 10:22 编辑

workload manager.

鄙人做了一个工具, hpc4you toolkit solo, 可以轻松在工作站,
轻松安装slurm调度器.
【Linux工作站自动配置SLURM调度器-哔哩哔哩】 https://b23.tv/1jiksSW


不用workload manager,
也可以使用别的暴力方案,

比如有10个文件, 先生成10个run-fileXX.sh,
然后再把这10个run-fileXX.sh一股脑提交即可.

简单示例, 自己修改.
  1. cat demo.demo

  2. # BOF
  3. #!/bin/bash
  4. echo "Starting DEMO run at node `hostname`" on `date` > DEMO.time.txt
  5. g09 DEMO
  6. echo "Finished DEMO run at node `hostname`" on `date` >> DEMO.time.txt

  7. # EOF

  8. for f in `ls *.com`
  9. do
  10. cp demo.demo tmp.sh
  11. sed -i "s/DEMO/$f/g" tmp.sh
  12. mv tmp.sh `basename $f .com`.sh
  13. bash `basename $f .com`.sh &
  14. done
复制代码




如果是一堆小任务还可以凑合,
任务较多的话, 这种模式容易造成机器过载, 计算效率反而低下.

使用workload manager是最佳的方案.




High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

360

帖子

0

威望

2283

eV
积分
2643

Level 5 (御坂)

4#
发表于 Post on 2022-4-11 08:33:06 | 只看该作者 Only view this author
不是应该装个作业管理系统吗?比如torque

1万

帖子

0

威望

9857

eV
积分
22093

Level 6 (一方通行)

5#
发表于 Post on 2022-4-11 14:46:39 | 只看该作者 Only view this author
abin 发表于 2022-4-11 01:28
workload manager.

鄙人做了一个工具, hpc4you toolkit solo, 可以轻松在工作站,

这个不解决跑完所有任务再显示finish的问题,只解决了一次跑太多任务会把机器搞崩掉的问题。不知道如果要在跑完所有任务以后显示finish,除了我说的办法以外还有没有更好的办法
Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

6#
发表于 Post on 2022-4-11 15:24:19 | 只看该作者 Only view this author
workload manager
Mail notification when job finished.
Or use job array, supported by slurm.
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

1102

帖子

18

威望

6703

eV
积分
8165

Level 6 (一方通行)

計算化学の社畜

7#
发表于 Post on 2022-4-11 15:24:58 | 只看该作者 Only view this author
装一个作业管理系统就行了
Stand on the shoulders of giants

1万

帖子

0

威望

9857

eV
积分
22093

Level 6 (一方通行)

8#
发表于 Post on 2022-4-11 16:08:11 | 只看该作者 Only view this author
abin 发表于 2022-4-11 08:24
workload manager
Mail notification when job finished.
Or use job array, supported by slurm.

学习了,刚才查了一下job array,确实挺有用的,还可以指定同时最多只能跑多少个任务。
谢谢!
Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

9#
发表于 Post on 2022-4-11 16:36:11 | 只看该作者 Only view this author
来一个workload manager,
如果机器就是自己用,
所有计算任务一股脑打上去就行了,
workload manager可以自动加载计算, 并防止机器过载.
在脚本中开启mail,
算完自动电邮(本地)通知, 当然也可以调试为给你的其他邮件发送电邮通知. (免费, 但是需要自己配置, 需要时间).

或者, 经由微信等推送,
可能需要部分API, 也许用几次免费, 多次可能需要付费.

纯shell也可以实现....
就是麻烦点.
取决于, 是需要每一个文件执行完毕后, 都需要写一个done,
还是, 所有文件都写完后, 再写一个done?

如果是我,
当然借助于workload manager来实施了.

方法多的是, 看你能搞定哪一个.
能干活就行.

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
laomalao + 3 谢谢分享

查看全部评分 View all ratings

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

37

帖子

0

威望

355

eV
积分
392

Level 3 能力者

10#
 楼主 Author| 发表于 Post on 2022-4-11 16:41:22 | 只看该作者 Only view this author
刚看了下slurm的安装,还需要花点时间调试和两台linux的服务器,目前就自己一台仪器。
没有job array确实可能内存和cpu分配超标,那样仪器是会突然卡住还是怎么办呢?可以直接写个脚本kill掉卡住的任务么

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

11#
发表于 Post on 2022-4-11 17:15:36 | 只看该作者 Only view this author
laomalao 发表于 2022-4-11 16:41
刚看了下slurm的安装,还需要花点时间调试和两台linux的服务器,目前就自己一台仪器。
没有job array确实 ...

slurm 可用于单机,也就是一台机器,
也可以用于集群。

qdel jobID
就可以停止对应任务。

我用workload manager 十多年,
没见过还有workload manager 能导致机器卡住的。

上文,我提到的演示视频可以观摩一下。


用shell来操作也可以。
不过没有Linux指令行经验的,容易误伤自己,也容易误伤他人计算任务。

或者看看这里的介绍信息,
先了解一下,workload manager 到底能做啥。
https://gitee.com/hpc4you/hpc

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
laomalao + 3 好物!

查看全部评分 View all ratings

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

37

帖子

0

威望

355

eV
积分
392

Level 3 能力者

12#
 楼主 Author| 发表于 Post on 2022-4-12 09:47:01 | 只看该作者 Only view this author
abin 发表于 2022-4-11 17:15
slurm 可用于单机,也就是一台机器,
也可以用于集群。

Thanks for reminding me the qdel code!

链接里找到了slurm单机安装的bilibili视频,看着有点眼花 我再找找网页版的试试

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-20 06:10 , Processed in 0.180703 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list