计算化学公社

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

[并行运算] 请教并行计算关于延迟提交任务的技巧

[复制链接 Copy URL]

43

帖子

0

威望

1567

eV
积分
1610

Level 5 (御坂)

本帖最后由 qinjiu 于 2021-5-5 13:39 编辑

算势能面经常遇到某几个点出错的问题,然后我就写了一个脚本同时并行算n个点,这样每个点都是独立的,相互之间不影响
但是带来了一些新的问题,就是服务器的闪存经常就存满了,导致提交的任务不能读写,I/O 出错
解决办法要么手动清闪存,要么过一会等服务器自己清,由于不清楚闪存区到底完成什么运算,只能等算完了服务器自己清,这带来了一个新的问题
我一开始的脚本是一次提交400个点,现在变成了一次只能提交20个任务,还要等20分钟才能继续提交
需要完成的效果大致如下:
一个脚本,提交20个点上去,再等20分钟再提交下20个,一共提交20次,分400分钟完成,一共提交400个点。

脚本小白,我查询了一下,有sleep,at, cronta等命令,但是我只能实现我自己手动分20个文件出来,再批量延迟提交的功能。
如何在一个脚本下完成以上操作呢?感激不尽

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

2#
发表于 Post on 2021-5-5 17:28:43 | 只看该作者 Only view this author
本帖最后由 abin 于 2021-5-5 17:40 编辑

来一个counter
能否被20整除为判据,
sleep 做延时

自己动手吧。

补充,如果这所有的计算任务,前后没有相互依赖关系的话,
那就很好处理。

for 循环一下就行了。

然后没了。

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

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

43

帖子

0

威望

1567

eV
积分
1610

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2021-5-5 21:13:00 | 只看该作者 Only view this author
abin 发表于 2021-5-5 17:28
来一个counter
能否被20整除为判据,
sleep 做延时

非常感谢您的这个思路

545

帖子

0

威望

3117

eV
积分
3662

Level 5 (御坂)

4#
发表于 Post on 2021-5-5 23:20:28 | 只看该作者 Only view this author
你用GNU parallel啊……

43

帖子

0

威望

1567

eV
积分
1610

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2021-5-6 10:46:25 | 只看该作者 Only view this author
本帖最后由 qinjiu 于 2021-5-6 15:13 编辑

具体的解决方法:
做两个循环,第二个循环是 j 的循环,j从0做到20,第一个循环是 i 的循环, i从 j*20 做到 j*20+20
这样实际就是做20次j 的循环,每个循环间 sleep 20 min, 每个 j 循环包含20个 i 循环

for((j=0;j<20;j++))
do
for((i=j*20;i<j*20+20;i++))
do
……

done
sleep 20m
done

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 12:12 , Processed in 0.190555 second(s), 21 queries , Gzip On.

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