# Script to start an MPI job under MPICH
# Richard de Jong @ CERN 2006-06-29

echo "Using MPICH"

if [ -z $MPI_MPICH_VERSION ]
then
        echo "MPICH, no such version available"
	echo "using system default"
else

	# Set up the paths
	PATH=$MPI_MPICH_PATH/bin:$PATH
	LD_LIBRARY_PATH=$MPI_MPICH_PATH/lib:$LD_LIBRARY_PATH
fi
# The binary to execute
EXE=$1 

echo "***********************************************************************" 
echo "Running on: $HOSTNAME" 
echo "As:       " `whoami` 
echo "***********************************************************************" 


if [ "x$PBS_NODEFILE" != "x" ] ; then 
	echo "PBS Nodefile: $PBS_NODEFILE" 
	HOST_NODEFILE=$PBS_NODEFILE 
fi

if [ "x$LSB_HOSTS" != "x" ] ; then 
	echo "LSF Hosts: $LSB_HOSTS" 
	HOST_NODEFILE=`pwd`/lsf_nodefile.$$ 
	for host in ${LSB_HOSTS} 
	do 
		echo $host >> ${HOST_NODEFILE} 
	done 
fi

if [ "x${HOST_NODEFILE}" = "x" ]; then
	echo "No hosts file defined.  Exiting..."
	exit
fi 

echo "***********************************************************************"
HOST_NEEDED=`cat ${HOST_NODEFILE} | wc -l | awk '{print $NF}'`
echo "Node count: $HOST_NEEDED"
echo "Hosts in $HOST_NODEFILE:"
cat $HOST_NODEFILE
echo "***********************************************************************"

# assume we have shared homes.


echo "***********************************************************************" 
echo "Executing $EXE with mpirun" 
chmod 755 $EXE 
mpiexec `pwd`/$EXE 
echo "***********************************************************************" 

