运行"监视器"在SLURM中与mpi任务一起完成任务

时间:2015-09-24 10:37:33

标签: slurm sbatch

我有一份mpi工作,我使用sbatch脚本运行,这看起来像是:

# request 384 processors across 16 nodes for exclusive use:
#SBATCH --exclusive
#SBATCH --ntasks-per-node=24
#SBATCH -n 384
#SBATCH -N 16
#SBATCH --time 3-00:00:00
mpirun myprog

我想监视内存/ cpu的使用情况以及" myprog"的其他一些行为。流程。我已经编写了一个简单的脚本(称之为" monitor"),它可以做到这一点,但我很难知道如何使用sbatch在每个分配的节点上运行它的一个副本,at同时和#34; myprog"。

我想我需要修改上面的内容:

...
srun monitor
mpirun myprog

但我对a)是否意味着"监控"而感到困惑。将在后台运行和b)我如何控制在哪里"监控"运行。

1 个答案:

答案 0 :(得分:1)

要让monitor在后​​台运行',实际上srun是非阻塞的,后续的mpirun命令可以启动,您只需要添加&符号({ {1}})最后。

要确保程序在分配的“主节点”上运行,只需删除&命令。

如果您需要在特定节点上运行该程序,请使用srun选项(您可能首先需要首先获取所有已分配节点的列表。)您还应该考虑使用-n1 --nodelist --overcommit的选项,以避免将完整的CPU专用于您认为不受CPU限制的监控程序。