【问题标题】:How to run a python code with multiple inputs on a same node with slurm id?如何在具有 slurm id 的同一节点上运行具有多个输入的 python 代码?
【发布时间】:2020-09-10 20:06:45
【问题描述】:

我想运行一个python程序10次,并将不同的输出文件保存为output_1、output_2、output_3.....等等。它可以使用 1 个处理器和 10 个线程运行。我可以访问一个节点上的 96 个 CPU,所以,我想在同一个节点上执行所有这 10 个作业。

我的 python 代码像

python mycode.py $file_number #file_number =1,2,3,4...

我正在提交这样的作业...但它使用 7 个节点。

#!/bin/bash
#SBATCH -J v2-array              
#SBATCH -o x.out  
#SBATCH --nodes=1 
#SBATCH --ntasks-per-node=7 
#SBATCH --cpus-per-task=10

#SBATCH -t 72:00:00         
#SBATCH --mail-type=FAIL
#SBATCH --array=0-6

python mycode.py $SLURM_ARRAY_TASK_ID

但是我想在同一个节点而不是 7 个节点上执行整个工作,我该怎么做?

【问题讨论】:

    标签: python parallel-processing cluster-computing hpc slurm


    【解决方案1】:

    删除#SBATCH --ntasks-per-node=7 行。您请求的是总共 7 个作业 x 7 个任务/作业 x 10cpus/task = 490CPUs,而您似乎只需要作业 x 1 个任务/作业 x 10cpus/task = 70CPUs。

    此外,在上述示例中,除非明确编写 mycode.py 以与 Slurm 交互,否则每个作业只能使用 10 个 CPU(相比之下,分配了 70 个)。

    请注意,数组中的所有作业都是独立的,并且无法确保它们在同一个节点上开始。它们可能在不同的时间、不同的节点上开始,具体取决于队列的状态。如果队列为空,它将取决于可能有​​利于将作业分散到可用节点上的 Slurm 配置(这是一个较少使用的功能,但它存在)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2021-07-10
      • 2018-10-07
      • 1970-01-01
      相关资源
      最近更新 更多