[英]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.