【发布时间】:2019-06-21 13:27:48
【问题描述】:
我对 Slurm 和分布式/并行计算非常陌生,因此希望有人能对我的问题有所了解,但请记住,这可能是一个需要解决的简单问题。
我已经使用 6 个从机 Pi3(和 1 个主机)设置了一个集群,并安装了 Slurm 工作负载管理器来帮助分配资源等。
在我开始编写更复杂的代码之前,我会尝试测试一些超级简单的东西。我正在向所有节点发送相同的命令,并打印节点的主机名。
我当前的代码(有效)是:
srun --nodes=6 hostname
然后返回:
node01
node05
node04
node02
node06
node03
现在我尝试使用带有以下脚本的 sbatch 运行相同类型的命令:
#!/bin/bash
#SBATCH --nodes=6
#SBATCH --partition=partition
#SBATCH --ntasks-per-node=1
cd $SLURM_SUBMIT_DIR
srun printf ‘Hello from: %s\n’ $(hostname) >> out.txt
期待与上述类似的结果,但我得到了:
Hello from: node01
Hello from: node01
Hello from: node01
Hello from: node01
Hello from: node01
Hello from: node01
我尝试使用 SLURM_NODEID 和 SLURMD_NODENAME 环境变量,但仍然无法让它做我想做的事情。
我只想知道哪个节点正在运行代码。目的是让我能够进一步跟踪哪些操作是由哪些节点完成的,以处理更复杂的脚本。也许比较预期“相同”的节点之间的性能。甚至可以跟踪哪些节点正在执行并行案例的哪一部分?
非常感谢!!!!
【问题讨论】:
标签: bash parallel-processing distributed-computing hostname slurm