linux slurm - 在 1 个节点上并行地为任务 运行 分离 .out 文件
linux slurm - separate .out files for tasks run in paralell on 1 node
我在 linux 上并行 运行 作业,通过请求一个节点使用 slurm 并且 运行 每个 cpu 一个任务。
但是,指定的输出将两个流连接到单个输出文件中。我在 epxectation 上尝试了 %t 标志,它将分隔任务,但它只是在输出文件中记录所有内容并附加 _0(例如 sample_output__XXX_XX_0.out)。
任何有关如何最好地为每个任务生成单独的 .out 日志的建议将不胜感激
#!/bin/bash
#SBATCH --job-name=recon_all_06172021_1829
#SBATCH --output=/path/recon_all_06172021_1829_%A_%a_%t.out
#SBATCH --error=/path/recon_all_06172021_1829_%A_%a.err
#SBATCH --ntasks=2
#SBATCH --ntasks-per-node=2
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --time=23:59:00
#! Always keep the following echo commands to monitor CPU, memory usage
echo "SLURM_MEM_PER_CPU: $SLURM_MEM_PER_CPU"
echo "SLURM_MEM_PER_NODE: $SLURM_MEM_PER_NODE"
echo "SLURM_JOB_NUM_NODES: $SLURM_JOB_NUM_NODES"
echo "SLURM_NNODES: $SLURM_NNODES"
echo "SLURM_NTASKS: $SLURM_NTASKS"
echo "SLURM_CPUS_PER_TASK: $SLURM_CPUS_PER_TASK"
echo "SLURM_JOB_CPUS_PER_NODE: $SLURM_JOB_CPUS_PER_NODE"
command 1 &
command 2
wait
您可以从命令本身重定向标准输出,例如:
command 1 > file1 2>&1
command 2 > file2 2>&1
不像使用 sbatch
文件名模式那样简洁,但它会将每个命令的输出分开。
我在 linux 上并行 运行 作业,通过请求一个节点使用 slurm 并且 运行 每个 cpu 一个任务。
但是,指定的输出将两个流连接到单个输出文件中。我在 epxectation 上尝试了 %t 标志,它将分隔任务,但它只是在输出文件中记录所有内容并附加 _0(例如 sample_output__XXX_XX_0.out)。
任何有关如何最好地为每个任务生成单独的 .out 日志的建议将不胜感激
#!/bin/bash
#SBATCH --job-name=recon_all_06172021_1829
#SBATCH --output=/path/recon_all_06172021_1829_%A_%a_%t.out
#SBATCH --error=/path/recon_all_06172021_1829_%A_%a.err
#SBATCH --ntasks=2
#SBATCH --ntasks-per-node=2
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --time=23:59:00
#! Always keep the following echo commands to monitor CPU, memory usage
echo "SLURM_MEM_PER_CPU: $SLURM_MEM_PER_CPU"
echo "SLURM_MEM_PER_NODE: $SLURM_MEM_PER_NODE"
echo "SLURM_JOB_NUM_NODES: $SLURM_JOB_NUM_NODES"
echo "SLURM_NNODES: $SLURM_NNODES"
echo "SLURM_NTASKS: $SLURM_NTASKS"
echo "SLURM_CPUS_PER_TASK: $SLURM_CPUS_PER_TASK"
echo "SLURM_JOB_CPUS_PER_NODE: $SLURM_JOB_CPUS_PER_NODE"
command 1 &
command 2
wait
您可以从命令本身重定向标准输出,例如:
command 1 > file1 2>&1
command 2 > file2 2>&1
不像使用 sbatch
文件名模式那样简洁,但它会将每个命令的输出分开。