所以我有一个名为“run_correlation_study.pbs”和“correlation_study.pbs”的文件。在correlation_study.pbs中,我运行一个使用便携式批处理软件(pbs)的bash脚本,并分配3个命令行参数,这些参数将在我的实际程序中使用。在run_correlation_study.pbs中,我遍历在correlation_study.pbs中使用的命令行参数,以便我可以将我的程序拆分为计算集群的多个作业。但是,当我尝试运行它时,我的run_correlation_study.pbs文件出现错误(我在运行之前将其变为可执行文件)。我在下面发布了这两个文件,首先列出run_correlation_study.pbs,然后列出correlation_study.pbs。我可以提供我的程序中使用命令行参数的部分,但我不认为问题是由那里引起的。此外,我尝试运行程序时显示的错误/文本最后列出。
Run_correlation_study.pbs:
for ((ARC_LENGTH = 0; ARC_LENGTH <= 35; ARC_LENGTH++)); do
qsub -v ARC_LENGTH_ARG=$ARC_LENGTH/10, RANDOM_NUM_ARG=$ARC_LENGTH correlation_study.pbs
done
Correlation_study.pbs:
#PBS -l walltime=24:00:00
#PBS -l nodes=1:ppn=1
#PBS -N Correlation_study_data
#PBS -j oe
#PBS -m abe
#COMMANDS TO RUN
cd /home/kovacevich.9/correlation_study/corrstudies
./correlation_study.x ${ARC_LENGTH_ARG} ${RANDOM_NUM_ARG}
错误/文本:
usage: qsub [-a date_time] [-A account_string] [-b secs]
[-c [ none | { enabled | periodic | shutdown |
depth=<int> | dir=<path> | interval=<minutes>}... ]
[-C directive_prefix] [-d path] [-D path]
[-e path] [-h] [-I] [-j oe] [-k {oe}] [-l resource_list] [-m n
{abe}]
[-M user_list] [-N jobname] [-o path] [-p priority] [-P proxy_user]
[-q queue]
[-r y|n] [-S path] [-t number_to_submit] [-T type] [-u user_list]
[-w] path
[-W additional_attributes] [-v variable_list] [-V ] [-x] [-X] [-z]
[script]
计划的一部分:
if(argc == 3)
{
double test_arc_length = atof(argv[1]);
unsigned long int seed = atoi(argv[2]);
答案 0 :(得分:0)
要从bash执行浮点运算,需要调用外部程序。你可以做其中一个:
qsub -v "ARC_LENGTH_ARG=$(bc -l <<<"$ARC_LENGTH/10"),..."
qsub -v "ARC_LENGTH_ARG=$(awk -v "a=$ARC_LENGTH" 'BEGIN {print a/10}'),..."
在双引号字符串中使用command substitution语法$(cmd ...)
。