簡體   English   中英

如何在具有 slurm id 的同一節點上運行具有多個輸入的 python 代碼?

[英]How to run a python code with multiple inputs on a same node with slurm id?

我想運行一個 python 程序 10 次,並將不同的 output 文件保存為 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 個節點上執行整個工作,我該怎么做?

刪除#SBATCH --ntasks-per-node=7行。 您要求的是總共 7 個作業 x 7 個任務/作業 x 10cpus/任務 = 490CPU,而您似乎只需要作業 x 1 個任務/作業 x 10cpus/任務 = 70CPU。

此外,在上面的示例中,除非mycode.py被明確編寫為與 Slurm 交互,否則每個作業只能使用 10 個 CPU(相比之下,分配了 70 個)。

請注意,數組中的所有作業都是獨立的,並且無法確保它們在同一個節點上啟動。 它們可能在不同的時間、不同的節點上開始,具體取決於隊列的 state。 如果隊列為空,它將取決於可能有利於將作業分散到可用節點上的 Slurm 配置(這是一個較少使用的功能,但它存在)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM