计算化学公社

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

[并行运算] 请教个slurm脚本的问题

[复制链接 Copy URL]

161

帖子

0

威望

2635

eV
积分
2796

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
由于先后不同年代买的机器,现在做在一个集群里面。有的36核心,有的56,有的64,有的128核心,由于要给学生用,这种64核心或者128的肯定要拆成2个。不知道有无办法在不指定核心数的情况下判断超过56核心就自动分配成2个作业?就是64核心或者128核心的只能提交2个作业到一个节点上。我现在是通过
#SBATCH --exclusive

独占一个节点方法避免每次都要指定核心数,但这样128核心提交就只能一个作业了,太浪费了。不知道有无什么好的办法,我查过很多文件也不行。

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

2#
发表于 Post on 2022-11-14 21:11:02 | 只看该作者 Only view this author
srun -n XX app
XX是整数,用来定义number of cpu cores.
区分大小写。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

161

帖子

0

威望

2635

eV
积分
2796

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2022-11-14 21:24:52 | 只看该作者 Only view this author
abin 发表于 2022-11-14 21:11
srun -n XX app
XX是整数,用来定义number of cpu cores.
区分大小写。

谢谢,也就是不能自动,只能手工了

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

4#
发表于 Post on 2022-11-14 21:39:47 | 只看该作者 Only view this author
alwens 发表于 2022-11-14 21:24
谢谢,也就是不能自动,只能手工了

你要自动什么呀?

使用队列调度,
最简单模式下,用户就只能要几个核心配置多少内存。

剩下的事情,调度器会自动把任务派送到不同的机器上去。

用户根据实际计算需要,
声明处理器数目和内存需求,
剩下都自动执行了。

当然,用128核心跑高斯的老铁也有的是……
如果是计算要付费,估计账单不少,完成的计算不多。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

161

帖子

0

威望

2635

eV
积分
2796

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2022-11-14 22:13:06 | 只看该作者 Only view this author
abin 发表于 2022-11-14 21:39
你要自动什么呀?

使用队列调度,

我是想128核心的只能提交64核心的2个作业。不知道在哪里设置。 不能到时候人为提交的时候改。是在slurm里面设置

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

6#
发表于 Post on 2022-11-14 22:44:38 | 只看该作者 Only view this author
alwens 发表于 2022-11-14 22:13
我是想128核心的只能提交64核心的2个作业。不知道在哪里设置。 不能到时候人为提交的时候改。是在slurm里 ...

我的方案仅供参考,
要么修改sbatch srun,前面加上判断。

要么创建不同的队列……这样不佳,还需指定队列。

给srun等套壳比较适合。

别的解决方案,我不晓得。
欢迎其他客官补充。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
alwens + 5 谢谢

查看全部评分 View all ratings

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

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

361

帖子

0

威望

4226

eV
积分
4587

Level 6 (一方通行)

7#
发表于 Post on 2022-11-15 07:55:01 | 只看该作者 Only view this author
本帖最后由 pwzhou 于 2022-11-15 07:56 编辑

给你提供一个思路,首先将这些机器按照不同的核心数分成不同的队列,比如36就是n36,56就是n56等等,然后对需要限制的队列,在/etc/slurm/slurm.conf里面,设置一个QOS,比如:
PartitionName=n64 Nodes=cn0[77-86]  MaxTime=INFINITE DisableRootJobs=YES QOS=n64 State=UP
这样,然后对n64这个QOS做一个限制,
sacctmgr modify qos n64 set MaxTRESPerJob=cpu=32
这样的话,就限制了这个队列单个作业的最大核数是32,超过32的会自动挂起永不运行,直到你更改了QOS的MaxTRESPerJob。

要是你想限制只能两个32的,那就再限制:sacctmgr modify qos n64 set MinTRESPerJob=cpu=32
这样把最大和最小都设置成32,那就只能提交32核的了。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
alwens + 5 谢谢

查看全部评分 View all ratings

161

帖子

0

威望

2635

eV
积分
2796

Level 5 (御坂)

8#
 楼主 Author| 发表于 Post on 2022-11-15 15:52:50 | 只看该作者 Only view this author
pwzhou 发表于 2022-11-15 07:55
给你提供一个思路,首先将这些机器按照不同的核心数分成不同的队列,比如36就是n36,56就是n56等等,然后对 ...

谢谢指导,我测试下。

14

帖子

0

威望

93

eV
积分
107

Level 2 能力者

9#
发表于 Post on 2023-3-2 13:38:10 | 只看该作者 Only view this author
请问找到解决方法了吗?

我有个旁门左道,128核的装两个虚拟机,每个64核。不然只能提交任务的时候不请求全部的核心。

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 19:10 , Processed in 0.185128 second(s), 22 queries , Gzip On.

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