在PBS脚本

时间:2018-05-16 02:07:13

标签: mpi pbs torque

我有这样的PBS命令

#PBS -N marcell_single_cell
#PBS -l nodes=1:ppn=1
#PBS -l walltime=20000:00:00
#PBS -e stderr.log
#PBS -o stdout.log
# Specific the shell types
#PBS -S /bin/bash
# Specific the queue type
#PBS -q dque

#uncomment this if you want to debug the process
#set -vx

cd $PBS_O_WORKDIR

ulimit -s unlimited

NPROCS=`wc -l < $PBS_NODEFILE`

#export PATH=$PBS_O_PATH

echo This job has allocated $NPROCS nodes
echo Cleaning old files...
rm -rf *.png *.plt *.log
echo Cleaning success
/opt/Lib/openmpi-2.1.3/bin/mpirun -np $NPROCS  /scratch4/marcell/CellMLSimulator/bin/CellMLSimulator -ionmodel grandi2010 -solverType CVode  -irepeat 4 -dt 0.01
gnuplot -p plotting.gnu

它有类似的错误,由PBS错误日志抛出。

/var/spool/torque/mom_priv/jobs/6265.node01.SC: line 28: gnuplot: command not found

我已经确保已将GNUPlot的路径添加到PATH环境变量中。

然而,奇怪的是,如果我交换命令序列,首先是gnuplot,然后是mpirun,没有任何错误。我怀疑mpirun之后的一些命令需要一些特殊的配置,但我不知道如何做到这一点

已经遵循此解决方案,但无济于事。

sleep command not found in torque pbs but works in shell

编辑:

似乎mpirun之前和之后仍然出现错误。这就是结果:

which: no gnuplot in (/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64:/opt/intel/composer_xe_2011_sp1.9.293/bin/intel64:/opt/pgi/linux86-64/9.0-4/bin:/opt/openmpi/bin:/usr/kerberos/bin:/prog/tools/grace/grace/bin:/home/prog/ansys_inc/v121/fluent/bin:/bin:/usr/bin:/opt/intel/composer_xe_2011_sp1.9.293/mpirt/bin/intel64:/opt/intel/composer_xe_2011_sp1.9.293/mpirt/bin/intel64:/scratch7/feber/jdk1.8.0_101:/scratch7/feber/code/apache-maven/bin:/usr/local/bin:/scratch7/cml/bin) 

这很奇怪,因为当我试图找到gnuplot时,/ usr / local / bin中有一个

ls -l /usr/local/bin/gnuplot 
-rwxr-xr-x 1 root root 3262113 Sep 18 2017 /usr/local/bin/gnuplot

此外,如果我在没有PBS的情况下运行这些命令,它似乎按照我的预期执行:

/scratch4/marcell/CellMLSimulator/bin/CellMLSimulator -ionmodel grandi2010 -solverType CVode  -irepeat 4 -dt 0.01
gnuplot -p plotting.gnu

1 个答案:

答案 0 :(得分:0)

您的系统很可能具有不同的“登录/头节点”和“计算节点”。这是许多超级计算集群中常用的做法。在从头节点构建和启动应用程序时,它将在一个或多个计算节点上执行。

与头节点相比,计算节点可以具有不同的硬件和软件。在您的情况下,gnuplot仅安装在头节点上,您可以从which gnuplot的不同输出中看到。要解决这个问题,您有三种方法:

  1. 请求系统管理员在计算节点上安装gnuplot。

  2. 在可从计算节点访问的文件系统中构建并安装您自己的gnuplot版本。它可能是您的主目录或其他位置,具体取决于您的群集。通常,您的应用程序所在的文件系统将可用。在您的情况下,/scratch4/marcell/下的任何地方都可能有用。

  3. 在MPI作业完成后作为后处理步骤在头节点上运行gnuplot。 PBS / Torque没有提供直接的方法来做到这一点。你需要编写一个单独的bash(而不是PBS)脚本来执行此操作。