例如,您需要运行30个srun作业,但确保每个作业都在特定节点列表的节点上运行(具有相同的性能,以便公平地比较时间).你会怎么做?
我尝试了什么:
srun --nodelist=machineN[0-3] <some_cmd>:同时<some_cmd>在所有节点上运行(我需要的是:在列表中的一个可用节点<some_cmd>上运行)
srun -p partition 似乎工作,但需要一个包含精确机器N [0-3]的分区,但情况并非总是如此.
想法?
您可以采用相反的方向并使用以下--exclude选项sbatch:
srun --exclude=machineN[4-XX] <some_cmd>
Run Code Online (Sandbox Code Playgroud)
然后,slurm将仅考虑未在排除列表中列出的节点.如果列表很长且很复杂,则可以将其保存在文件中.
另一种选择是检查Slurm配置是否包含" 功能 "
sinfo --format "%20N %20f"
Run Code Online (Sandbox Code Playgroud)
如果"features"列显示每个节点具有逗号分隔的功能列表(可能是CPU系列,网络连接类型等),则可以使用特定功能选择具有特定功能的节点的子集
srun --constraint=<some_feature> <some_cmd>
Run Code Online (Sandbox Code Playgroud)
小智 8
您可以使用 -w 选项。它在 slurm 版本 17.11.10 中进行了测试
例如:
srun -p partition -w node10 hostname
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6469 次 |
| 最近记录: |