【问题标题】:Best way to automatically create different process names for qsub为 qsub 自动创建不同进程名称的最佳方法
【发布时间】:2018-03-08 09:05:11
【问题描述】:

我在高性能计算机上运行我的程序,通常使用不同的参数作为输入。这些参数通过参数文件提供给程序,即 qsub 文件看起来像

#!/bin/bash
#PBS -N <job-name>
#PBS -A <name>
#PBS -l select=1:ncpus=20:mpiprocs=20
#PBS -l walltime=80:00:00
#PBS -M <mail-address>
#PBS -m bea 
module load foss

cd $PBS_O_WORKDIR

mpirun main parameters.prm

# Append the job statistics to the std out file
qstat -f $PBS_JOBID

现在我通常或多或少地同时运行同一个程序多次,使用不同的parameter.prm-files。然而,它们都以相同的名称出现在作业列表中,使得列表中的作业与使用的参数之间的关联变得困难(并非不可能)。
有没有办法根据使用的输入参数(最好来自main)动态更改作业列表中的程序名称?或者是否有另一种方法可以更改作业名称,而无需每次运行时都编辑作业文件

qsub job_script.pbs

?
创建一个从参数文件中读取数据,然后依次创建作业脚本并运行它的 shell 脚本是一种解决方案吗?还是有更简单的方法?

【问题讨论】:

    标签: qsub


    【解决方案1】:

    只需在命令行上使用-N 选项:

    qsub -N job1 job_script.pbs

    然后您可以使用 for 循环遍历 *.prm 文件:

    for prm in *.prm
    do
      prmbase=$(basename $prm .prm)
      qsub -N $prmbase main $prm
    done
    

    这将通过参数文件名命名每个作业,不带.prm 后缀。

    【讨论】:

    • 谢谢!不幸的是,由于在我们的 HPC 集群上从 pbs 切换到 slurm,我无法再对其进行测试......
    • 有没有办法使用 -v 来命名作业?
    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    相关资源
    最近更新 更多