amazon-web-services - SLURM:我应该如何理解 ntasks 参数?
问题描述
我正在使用 AWS 上的 SLURM 使用集群。我定义了以下参数:
#!/bin/sh
[...]
#SBATCH --ntasks=216
#SBATCH --constraint=c5n.18xlarge
现在我应该怎么理解ntasks
?这个参数到底是什么?它与 vCPU 的数量有什么关系?因此,将提供多少节点?
AFAIK,它与 vCPU 的数量不对应,因为我尝试选择 72 的倍数(c5n.18xlarge有 72 个 vCPU),并且它与配置的 EC2 实例的数量不对应。
我看到我还可以使用其他参数,例如:
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=1
但同样,这个ntasks
参数对我来说仍然不清楚。有关信息,然后按照 AWS 研讨会中的建议,我使用集群使用$SLURM_NTASKS
变量运行 openmpi 进程,即:
mpirun -np $SLURM_NTASKS some_process
谢谢你的帮助
解决方案
在 Slurm 中,任务的数量本质上是您可以在分配中启动的并行程序的数量。默认情况下,每个任务可以访问一个 CPU(可以是核心或线程,取决于配置),可以使用--cpus-per-task=#
.
这本身并没有告诉您有关您将获得的节点数量的任何信息。如果您仅指定--ntasks
(或仅指定-n
),则您的工作将分布在许多节点上,具体取决于可用的内容。您可以使用--nodes #min-#max/--nodes #exact
. 指定任务数量的另一种方法是--ntasks-per-node
,它完全按照所说的进行,最好与--nodes
. (不带--ntasks
,否则它是每个节点的最大任务数!)
因此,如果您想要三个节点和 72 个任务(每个任务都有一个默认 CPU),请尝试:
#SBATCH --ntasks=216
#SBATCH --nodes=3
#SBATCH --constraint=c5n.18xlarge
或者:
#SBATCH --ntasks-per-node=72
#SBATCH --nodes=3
#SBATCH --constraint=c5n.18xlarge
推荐阅读
- html - 无法让我的图像悬停效果像我想要的那样工作
- javascript - 按钮单击仅将值数组的一部分添加到 Google Sheets 电子表格
- azure - 我们可以在 Power BI 中编写多个 SQL 查询以将其加载到 Azure Synapse
- angular - Angular:知道组件是否加载到服务中
- jenkins - 从詹金斯管道上的http请求中提取json响应
- javascript - 从 Javascript 变量中删除随机 HTML 图像
- python - 在 tkinter 文本小部件中,无法输入印度语言,渲染显示?
- function - 如何即时计算两个函数除法的 MAX/MIN,而无需在屏幕上实际打印表格?
- python-3.x - 使用用户输入动态创建烧瓶 sqlalchemy 数据库连接
- excel - 一个PS下的2个对话框功能