你能把 srun 的不同任务读入 Python 吗?
Can you read different tasks of srun into Python?
当运行运行时,标志“-n”通常指定每个节点需要多少个任务。有没有办法将不同的任务 ID 读入 python。例如定义一个基本的python文件test.py:
#test.py
#somehow read the task ID as taskID
taskID = ...
print('task ID: ' + str(taskID))
现在,有什么方法可以定义 taskID 以便
srun -n2 python3 test.py
将打印以下内容:
task ID 0
task ID 1
我知道这可以通过 MPI 等其他并行框架来完成,因为您可以定义每个任务的等级,但我想知道是否可以仅使用 slurm 来完成。
SLURM_PROCID
环境变量应该给你想要的:
#test.py
import os
#somehow read the task ID as taskID
taskID = os.environ["SLURM_PROCID"]
print('task ID: ' + str(taskID))
当运行运行时,标志“-n”通常指定每个节点需要多少个任务。有没有办法将不同的任务 ID 读入 python。例如定义一个基本的python文件test.py:
#test.py
#somehow read the task ID as taskID
taskID = ...
print('task ID: ' + str(taskID))
现在,有什么方法可以定义 taskID 以便
srun -n2 python3 test.py
将打印以下内容:
task ID 0
task ID 1
我知道这可以通过 MPI 等其他并行框架来完成,因为您可以定义每个任务的等级,但我想知道是否可以仅使用 slurm 来完成。
SLURM_PROCID
环境变量应该给你想要的:
#test.py
import os
#somehow read the task ID as taskID
taskID = os.environ["SLURM_PROCID"]
print('task ID: ' + str(taskID))