#!/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 "gpu", other option is "test")'
  exit -1
endif

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

set QUEUE = gpu

if ( $# ) set QUEUE = $1

if ( $QUEUE == test ) then
  set TIME = 00:30:00
  set QUEUE = gpu
  if ( $NUMNODES < 5 ) set QUEUE = gpudev
else if ( $QUEUE == short ) then
  set TIME = 00:30:00
  set QUEUE = gpu
else
  set TIME = 24: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 MEMOPT = ""
if ( $0:t =~ *memopt* ) set MEMOPT = "-memopt"

set BINDIR = /work/00288/tg455591/NAMD_LATEST_Linux-x86_64-ibverbs-smp-Stampede-CUDA${MEMOPT}

set SCRIPTDIR = /home1/00288/tg455591/NAMD_scripts

@ REALNUMPROCS = $NUMNODES * 15
@ NUMTASKS = $NUMNODES

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

module load fftw3

$BINDIR/charmrun +p$REALNUMPROCS ++ppn 15 ++mpiexec ++remote-shell $SCRIPTDIR/mpiexec ++runscript $SCRIPTDIR/runscript $BINDIR/namd2 +commap 0 +pemap 1-15 +devices 0 $CONFFILE >& $LOGFILE

ENDINPUT

