#!/bin/csh

set PPN = 16

if ( $# < 3 ) then
  echo "This script requires three arguments:"
  echo "  NAMD input file"
  echo "  NAMD log file"
  echo "  number of nodes (number of cores / $PPN)"
  echo '  queue (defaults to "normal", other option is "test")'
  exit -1
endif

set CONFFILE = $1
shift
set LOGFILE = $1
shift
set NUMNODES = $1
shift
@ NUMPROCS = $NUMNODES * $PPN

set QUEUE = normal
if ( $NUMNODES > 256 ) set QUEUE = large

if ( $# ) set QUEUE = $1

if ( $QUEUE == test ) then
  set TIME = 00:30:00
  set QUEUE = normal
  if ( $NUMNODES < 17 ) set QUEUE = development
  if ( $NUMNODES > 256 ) set QUEUE = large
else if ( $QUEUE == short ) then
  set TIME = 00:30:00
  set QUEUE = normal
else
  set TIME = 12:00:00
endif

if ( ! -f $CONFFILE) then
  echo "NAMD input file $CONFFILE does not exist!"
  exit -1
endif

if ( -f $LOGFILE) then
  echo "NAMD input file $LOGFILE already exists!"
  exit -1
endif

set RUNDIR = `pwd`

set TESTDIR = /home1/00288/tg455591/charm/net-linux-x86_64-ibverbs-iccstatic/tests/charm++/simplearrayhello

set BINDIR = /work/00288/tg455591/NAMD_LATEST_Linux-x86_64-ibverbs-Stampede-memopt

set SCRIPTDIR = /home1/00288/tg455591/NAMD_scripts

@ REALNUMPROCS = $NUMNODES * $PPN

echo "Submitting NAMD run to queue $QUEUE for $TIME..."
echo ""
sbatch --job-name=NAMD --nodes=$NUMNODES --ntasks=$REALNUMPROCS --time=$TIME --partition=$QUEUE << ENDINPUT
#!/bin/bash

module load fftw3

$BINDIR/charmrun +p$REALNUMPROCS ++scalable-start ++mpiexec ++remote-shell $SCRIPTDIR/mpiexec $BINDIR/namd2 +pemap 0-15 $CONFFILE >& $LOGFILE

ENDINPUT

