首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SLURM数组如何与SBATCH资源分配接口?

SLURM数组如何与SBATCH资源分配接口?
EN

Stack Overflow用户
提问于 2021-06-10 23:56:51
回答 2查看 67关注 0票数 0
代码语言:javascript
复制
#!/bin/bash
#SBATCH -p RM-shared
#SBATCH -n 4
#SBATCH -t 24:00:00
#SBATCH --array=1-

我正在尝试启动一个阵列,对于阵列中的每个任务,我希望它使用RM共享分区上的4个核心。我这样做是否正确,或者这是否指定通过的阵列输出的所有任务必须共享4个核心?

我将为此提出一个单独的问题,但由于某种原因,当我运行此命令时,$SLURM_ARRAY_TASK_ID变量为空……

当我跑的时候

代码语言:javascript
复制
echo "My SLURM_ARRAY_TASK_ID: " $SLURM_ARRAY_TASK_ID

在我的头文件设置作业后,它返回

代码语言:javascript
复制
My SLURM_ARRAY_TASK_ID:
EN

回答 2

Stack Overflow用户

发布于 2021-06-11 19:26:51

首先,使用--cpus-per-task=4而不是ntasks是正确的。其次,可能是复制/粘贴错误,但您的--array行不完整

代码语言:javascript
复制
#SBATCH --array=1-

应该是

代码语言:javascript
复制
#SBATCH --array=1-10

例如,对于10个任务的阵列。

阵列中的每个作业将分配4个不同的核心。作业将独立调度,例如,它们可以同时在40核节点上启动所有10个节点,或者同时在10个不同的节点上启动,或者在一个4核节点上一次启动一个,或者根据群集配置和队列中的作业而进行任何可能的中间组合。

票数 1
EN

Stack Overflow用户

发布于 2021-06-12 02:08:24

我没有正确调用脚本。正在调用:./ThisScript.sh而不是sbatch ./ThisScript.sh

关于每个阵列作业的核心分配,一位帮助台人员建议使用#SBATCH --ntasks-per-node=4而不是#SBATCH --cpus-per-task=4

但我不知道为什么..。我期望--ntasks-per-node=4命令每个节点只需要运行4个作业,所以如果您的阵列中有12个作业,则需要3个完整的节点。

另一方面,--cpus-per-task=4将命令每个CPU (每个具有多个核心)仅运行4个任务,因此,如果阵列中有12个作业,则需要3个CPU(如果系统上的节点有3个或更多CPU,则只需要1个节点)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67924654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档