Maybe you need to:
lamboot $PBS_NODEFILE
before you cd to the working directory. I haven't used PBS in several
years and I cannot explain half of these cryptic commands, but my last
script looked like this:
#!/bin/bash
# Example script for submitting a job to PBS on titan.
#
#PBS -N floor7
#PBS -q default
#PBS -l nodes=1
LAMHOME=/usr/local/lam/lam-7.0.4lf
export PATH=$LAMHOME/bin:$PATH
cd $PBS_O_WORKDIR
jobnum=`echo $PBS_JOBID | awk 'BEGIN {FS = "."} { printf("%05d",
$1)}'`
echo jobnum $jobnum
echo Running on nodes:
cat $PBS_NODEFILE
echo
echo Booting LAM
lamboot $PBS_NODEFILE
#determine the number of nodes/processors
numnodes=`wc $PBS_NODEFILE | awk '{print $1}'`
wrkdir=$PBS_O_WORKDIR
prog=/home/mcgratta/FDS4/LINUX_MPI/fds4_mpi
prog_args=""
cd $wrkdir
#
###### Start the program.
#
echo
echo "Starting user program $prog"
date
echo
cmd="mpirun -ssi rpi tcp -np $numnodes $prog"
echo "Run command:$cmd"
$cmd
date
wipe