【发布时间】:2021-07-28 10:19:47
【问题描述】:
我是 qsub 的新手,我正在尝试弄清楚如何以最佳方式使用任务队列。我有这个运行良好的脚本:
#!bin/bash
##PBS -V # Export all environment variables from the qsub command environment to the batch job.
#PBS -N run
#PBS -q normal.q
#PBS -e archivo.err
#PBS -o archivo.out
#PBS -pe mpirun 8
#PBS -d ~/ # Working directory (PBS_O_WORKDIR)
#PBS -l nodes=1:ppn=8
~/brinicle/step-2/onephase_3/./main.x --mesh ~/brinicle/step-2/onephase_3/results/mesh.msh -Rmin 0 -Rmax 10 -Zmin 0 -Zmax 10 -o 2 -r 2 -T_f -10 -a_l 7.8 -a_s 70.8 -dt 0.01 -t_f 1 -v_s 10 -ode 12 -reltol 0.00001 -abstol 0.00001
如您所见,问题在于命令行非常庞大且难以从命令 shell 进行编辑。我想把它分成变量,比如
#MESH="--mesh ~/brinicle/step-2/onephase_3/results/mesh.msh"
#EXE="~/brinicle/step-2/onephase_3/./main.x"
.
.
.
$EXE $MESH $PARAMETERS
还有其他参数。
但是当我这样做时,程序没有运行,并说有一个非法变量或该变量未定义。此外,轻松更改参数-o、-r、-ode 并一次发送多个作业对我来说非常重要。例如,-o 1 的 5 个相等的工作,然后是 -0 2 的 5 个,依此类推。我也希望能够以这种方式修改-r 和-ode。问题是不使用变量我真的不知道该怎么做。
拜托,如果有人能告诉我如何以这种方式自动化脚本,那将是一个巨大的帮助。
【问题讨论】: