adapted rungms script script (edit variable section) and slurm jobfiles here
reported here below:
### GAMESS RUNGMS for SLURM ###
#!/bin/tcsh
set RUNGMS=$0
if ( $#argv <= 1 ) then
echo
echo "USAGE: $RUNGMS:t <-i inputfile> \\"
echo " [-b gamess_binary] \\"
echo " [-d data_folder] \\"
echo " [-a auxdata_folder] \\"
echo " [-s scratch_folder] \\"
echo " [-e extbas_folder] \\"
echo " [-h hostfile] \\"
echo " [-t target] \\"
echo " [-hpnet high_performance_network]"
echo
echo "NOTES: *) <...> mandatory, [...] optional"
echo
echo " *) '-i': inputfile MUST HAVE '.inp' extension"
echo
echo " *) '-t': sockets | impi-3steps | impi-hydra | openmpi"
echo
echo " *) '-h': hostfile format: node01"
echo " node01"
echo " node01"
echo " node01"
echo " node07"
echo " node07"
echo " node07"
echo " node07"
echo
echo " *) '-hpnet': mainly used with '-t sockets' (e.g '.ipoib')"
echo
exit
endif
echo
"+==============================================================================+"
echo "| GAMESS Execution Script LOGS
|"
echo
"+==============================================================================+"
echo
echo "+------------------------------- CHECK INPUTS
---------------------------------+"
while ( $#argv )
set val=$argv[1]
shift argv
switch ( $val )
case -i:
if ( ! $#argv ) then
echo
echo "ERROR: Check your '-i' option. ABORTING."
exit
endif
set INP="$argv[1]"
shift argv
breaksw
case -b:
if ( ! $#argv ) then
echo
echo "ERROR: Check your '-b' option. ABORTING."
exit
endif
set GMS="$argv[1]"
shift argv
breaksw
case -d:
if ( ! $#argv ) then
echo
echo "ERROR: Check your '-d' option. ABORTING."
exit
endif
set DATA="$argv[1]"
shift argv
breaksw
case -a:
if ( ! $#argv ) then
echo
echo "ERROR: Check your '-a' option. ABORTING."
exit
endif
set AUXDATA="$argv[1]"
shift argv
breaksw
case -s:
if ( ! $#argv ) then
echo
echo "ERROR: Check your '-s' option. ABORTING."
exit
endif
set SCR="$argv[1]"
shift argv
breaksw
case -e:
if ( ! $#argv ) then
echo
echo "ERROR: Check the '-e' option. ABORTING."
exit
endif
setenv EXTBAS "$argv[1]"
shift argv
breaksw
case -h:
if ( ! $#argv ) then
echo
echo "ERROR: Check the '-h' option. ABORTING."
exit
endif
set HOSTS="$argv[1]"
shift argv
breaksw
case -hpnet:
if ( ! $#argv ) then
echo
echo "ERROR: Check the '-hpnet' option. ABORTING."
exit
endif
set NETEXT="$argv[1]"
shift argv
breaksw
case -t:
if ( ! $#argv ) then
echo
echo "ERROR: Check the '-t' option. ABORTING."
exit
endif
set TARGET="$argv[1]"
shift argv
breaksw
default:
echo
if ( ! $#argv ) then
echo "ERROR: Unknown option '$val' found. ABORTING."
else
echo "ERROR: Unknown option '$val $argv[1]' found. ABORTING."
endif
exit
breaksw
endsw
end
if ( ! $?INP ) then
echo
echo "ERROR: Input file not specified. ABORTING."
exit
endif
##############################
### BEGIN VARIABLE SECTION ###
##############################
set READLINk='/bin/readlink'
set HOSTNAMe='/bin/hostname'
set UNAMe='/bin/uname'
set MKDIr='/bin/mkdir'
set DATe='/bin/date'
set GREp='/bin/grep'
set CAt='/bin/cat'
set SEd='/bin/sed'
set Mv='/bin/mv'
set Rm='/bin/rm'
set Ls='/bin/ls'
set Cp='/bin/cp'
set Df='/bin/df'
set UNIq='/usr/bin/uniq'
set SORt='/usr/bin/sort'
set SSh='/usr/bin/ssh'
set SCp='/usr/bin/scp'
set AWk='/usr/bin/awk'
set Wc='/usr/bin/wc'
set PERl='/usr/bin/perl'
# This var should not be modified
set master=`$HOSTNAMe`
# This var should not be modified
set NCPUS=1
# This var should not be modified
set ASYM='false'
# This var should not be modified
set INP=`$READLINk -f $INP`
# This var should not be modified
set JOB=$INP:r
# This var should not be modified
set JOB=$JOB:t
# This var should not be modified
set DATE=`$DATe`
# This var should not be modified
set DATE=`echo $DATE | $SEd 's/[: ]/_/g'`
if ( ! $?GMS ) set
GMS='/software/base/gamess-May012013R1-intel/gamess-sockets.00.x'
if ( ! $?AUXDATA ) setenv AUXDATA
'/software/base/gamess-May012013R1-intel/auxdata'
# Make sure this var is unique (here we use $DATE for that)
if ( ! $?SCR ) set SCR="/scratch/$USER/gamess/$JOB-$DATE"
# Make sure this var is unique (here we use $DATE for that)
if ( ! $?DATA ) set DATA="/data/$USER/gamess/$JOB-$DATE"
if ( ! $?EXTBAS ) setenv EXTBAS '/dev/null'
if ( ! $?TARGET ) set TARGET='sockets'
if ( ! $?NETEXT ) set NETEXT=''
if ( ! $?HOSTS ) set HOSTS=''
switch ( $TARGET )
case sockets:
setenv MKL_SERIAL YES
setenv MKL_NUM_THREADS 1
setenv DDI_RSH ssh
setenv DDI_RCP scp
breaksw
case impi-*:
if ( ! $?I_MPI_ROOT ) setenv I_MPI_ROOT
'/software/base/intel/impi/4.0.3.008'
if ( ! $?PATH ) then
setenv PATH "$I_MPI_ROOT/intel64/bin"
else
setenv PATH "$I_MPI_ROOT/intel64/bin:$PATH"
endif
if ( ! $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH "$I_MPI_ROOT/intel64/lib"
else
setenv LD_LIBRARY_PATH "$I_MPI_ROOT/intel64/lib:$LD_LIBRARY_PATH"
endif
setenv I_MPI_WAIT_MODE enable
setenv I_MPI_PIN disable
setenv I_MPI_DEBUG 0
setenv I_MPI_STATS 0
setenv I_MPI_FABRICS dapl
setenv I_MPI_DAT_LIBRARY libdat2.so
if ( $TARGET == impi-hydra ) then
setenv I_MPI_HYDRA_ENV all
setenv I_MPI_PROCESS_MANAGER hydra
if ( $?SLURM_JOBID ) setenv I_MPI_PMI_LIBRARY '/usr/local/lib/libpmi.so'
endif
breaksw
case openmpi:
if ( ! $?O_MPI_ROOT ) set O_MPI_ROOT='/software/base/openmpi-1.6.4-intel'
if ( ! $?PATH ) then
setenv PATH "$O_MPI_ROOT/bin"
else
setenv PATH "$O_MPI_ROOT/bin:$PATH"
endif
if ( ! $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH "$O_MPI_ROOT/lib"
else
setenv LD_LIBRARY_PATH "$O_MPI_ROOT/lib:$LD_LIBRARY_PATH"
endif
breaksw
default:
echo
echo "ERROR: Target mode '$TARGET' not supported. ABORTING."
exit
breaksw
endsw
############################
### END VARIABLE SECTION ###
############################
if ( $INP:e != inp ) then
echo
echo "ERROR: Input file '$INP' must have '.inp' extension. ABORTING."
exit
endif
if ( ! -e $INP ) then
echo
echo "ERROR: Input file '$INP' does not exist. ABORTING."
exit
endif
if ( null$HOSTS != null ) then
if ( ! -e $HOSTS ) then
echo
echo "ERROR: Host file '$HOSTS' does not exist. ABORTING."
exit
endif
set HOSTS=`$READLINk -f $HOSTS`
endif
if ( ! -e $GMS ) then
echo
echo "ERROR: GAMESS binary file '$GMS' does not exist. ABORTING."
exit
endif
if ( ! -x $GMS ) then
echo
echo "ERROR: Cannot execute '$GMS', check file permissions. ABORTING."
exit
endif
set GMS=`$READLINk -f $GMS`
setenv GMSPATH $GMS:h
set gms=$GMS:t
set DDIKICK=$GMSPATH/ddikick.x
if ( $TARGET == sockets ) then
if ( ! -e $DDIKICK ) then
echo
echo "ERROR: DDIKICK binary file '$DDIKICK' does not exist. ABORTING."
exit
endif
if ( ! -x $DDIKICK ) then
echo
echo "ERROR: Cannot execute '$DDIKICK', check file permissions. ABORTING."
exit
endif
endif
if ( ! -d $AUXDATA ) then
echo
echo "ERROR: Auxiliary data folder '$AUXDATA' does not exist. ABORTING."
exit
endif
setenv AUXDATA `$READLINk -f $AUXDATA`
if ( ! -d $DATA ) then
$MKDIr -p $DATA >& /dev/null
if ( $? > 0 ) then
echo
echo "ERROR: Cannot create data folder '$DATA'. ABORTING."
exit
else
echo
echo "Data folder '$DATA' successfully created."
endif
endif
set DATA=`$READLINk -f $DATA`
if ( ! -d $SCR ) then
$MKDIr -p $SCR >& /dev/null
if ( $? > 0 ) then
echo
echo "ERROR: Cannot create scratch folder '$SCR'. ABORTING."
exit
else
echo
echo "Scratch folder '$SCR' successfully created."
endif
endif
set SCR=`$READLINk -f $SCR`
echo
echo "+--------------------------------- ALL DONE
-----------------------------------+"
echo
echo "+------------------------------- BUILD PROCFILE
-------------------------------+"
setenv NODEFILE "$SCR/$JOB.nodefile"
setenv PROCFILE "$SCR/$JOB.procfile"
if ( null$HOSTS == null ) then
echo $master > $NODEFILE
set HOSTS=$NODEFILE
else
$CAt $HOSTS | $SORt | $UNIq > $NODEFILE
set NCPUS=`$CAt $HOSTS | $Wc -l`
endif
set NNODES=`$CAt $NODEFILE | $Wc -l`
switch ( $TARGET )
case sockets:
$AWk '{arr[$1]++} END {for(i in arr) print i"'$NETEXT':cpus="arr[i]}'
$HOSTS > $PROCFILE
breaksw
case impi-hydra:
$AWk '{arr[$1]++} END {for(i in arr) print i"'$NETEXT':cpus="arr[i]*2}'
$HOSTS > $PROCFILE
breaksw
case impi-3steps:
$AWk '{arr[$1]++} END {for(i in arr) print "-n "arr[i]*2" -host "i"
'$GMS'"}' $HOSTS > $PROCFILE
case openmpi:
$AWk '{arr[$1]++} END {for(i in arr) print i"'$NETEXT':cpus="arr[i]*2}'
$HOSTS > $PROCFILE
breaksw
endsw
if ( `$CAt $PROCFILE | $PERl -ne 'print "$1$2\n" if /-n\s+(\d+)|=(\d+)/' |
$SORt -n | $UNIq | $Wc -l` > 1 ) set ASYM='true'
echo
$CAt $PROCFILE
echo
echo "+--------------------------------- ALL DONE
-----------------------------------+"
echo
echo "+------------------------------ INITIALIZE RUN
--------------------------------+"
if ( ( $ASYM == true ) && ( $TARGET != sockets ) ) then
echo
echo "ERROR: Detected asymmetric MPI job layout (currently NOT SUPPORTED).
ABORTING."
exit
else
@ PPN = $NCPUS / $NNODES
@ PROCPN = $PPN * 2
@ NPROCS = $NCPUS * 2
endif
echo
echo "This job is running on node '$master' under operating system '`$UNAMe`'
at '`$DATe`'."
echo
echo "Supplementary output files will be written to '$DATA'"
echo
echo "Temporary binary files will be written to '$SCR'"
echo
echo "GAMESS binary file is '$GMS'"
foreach node (`$CAt $NODEFILE`)
echo
echo "Available scratch disk space on '$node' at beginning of the job is:"
echo
if ( $node == $master ) then
$Df -h $SCR
else
$SSh -o ConnectTimeout=5 -n $node $Df -h $SCR
endif
end
#limit stacksize 8192
$Cp $INP $SCR/$JOB.F05
source $GMSPATH/gms-files.csh
if ( -e $HOME/.gmsrc ) then
echo
echo "Found existing '$HOME/.gmsrc'."
source $HOME/.gmsrc
echo
echo "User '$HOME/.gmsrc' merged with '$GMSPATH/gms-files.csh'."
endif
set ngddi=`$GREp -i '^ \$GDDI' $SCR/$JOB.F05 | $GREp -iv 'NGROUP=0 ' | $Wc -l`
if ( $ngddi > 0 ) then
set GDDIjob=true
echo
echo "This is a GDDI run, keeping various output files on local disks."
echo
setenv OUTPUT $SCR/$JOB.F06
setenv PUNCH $SCR/$JOB.F07
else
set GDDIjob=false
endif
if ( $GDDIjob == true ) then
foreach node (`$CAt $NODEFILE`)
if ( $node != $master ) $SCp $SCR/$JOB.F05 ${node}:$SCR/$JOB.F05
end
endif
if ( (-e $PUNCH) || (-e $MAKEFP) || (-e $TRAJECT) || (-e $RESTART) ) then
echo
echo "Please save, rename, or erase these files from a previous run:"
echo " '$PUNCH'"
echo " '$TRAJECT'"
echo " '$RESTART'"
echo " '$MAKEFP'"
echo "and then resubmit this computation."
exit
endif
echo
echo "+--------------------------------- ALL DONE
-----------------------------------+"
echo
echo "+------------------------------ READY TO START
--------------------------------+"
echo
#chdir $SCR
# ----------------- Execution Section ----------------- #
switch ( $TARGET )
case sockets:
set HOSTLIST=(`$CAt $PROCFILE`)
$DDIKICK $GMSPATH/$gms $JOB \
-ddi $NNODES $NCPUS $HOSTLIST \
-scr $SCR < /dev/null
breaksw
case impi-hydra:
setenv I_MPI_PERHOST $PROCPN
if ( $?SLURM_JOBID ) then
srun --overcommit -n $NPROCS -N $NNODES --ntasks-per-node=$PROCPN $GMS
endif
if ( $?OAR_JOB_ID ) then
mpiexec.hydra -f $PROCFILE -n $NPROCS $GMS < /dev/null
endif
breaksw
case impi-3steps:
if ( $?OAR_JOB_ID ) then
mpdboot --rsh=ssh -n $NNODES -f $NODEFILE
mpiexec -configfile $PROCFILE < /dev/null
mpdallexit
endif
breaksw
case openmpi:
if ( $?SLURM_JOBID ) then
srun --resv-port --overcommit -n $NPROCS -N $NNODES
--ntasks-per-node=$PROCPN $GMS
endif
if ( $?OAR_JOB_ID ) then
mpirun \
-machinefile $NODEFILE \
-np $NPROCS \
-npernode $PROCPN \
--mca orte_rsh_agent oarsh \
-mca btl openib,self,sm $GMS < /dev/null
endif
breaksw
endsw
# ------ END Execution Section ------ #
echo
echo "+--------------------------------- ALL DONE
-----------------------------------+"
echo
echo "+----------------------------- ACCOUNTING INFO
--------------------------------+"
if ( $GDDIjob == true ) $Cp $SCR/$JOB.F07 $DATA/$JOB.dat
echo
echo "Files used on the master node '$master' were:"
echo
$Ls -lF $SCR/$JOB.*
$Rm $SCR/$JOB.F*
if ( -e $SCR/$JOB.V84 ) $Mv $SCR/$JOB.V84 $DATA
if ( -e $SCR/$JOB.V80 ) $Rm $SCR/$JOB.V*
if ( -e $SCR/$JOB.TEMP02 ) $Rm $SCR/$JOB.TEMP*
if ( -e $SCR/$JOB.orb ) $Mv $SCR/$JOB.orb $DATA
if ( -e $SCR/$JOB.vec ) $Mv $SCR/$JOB.vec $DATA
if ( -e $SCR/$JOB.mol ) $Mv $SCR/$JOB.mol $DATA
if ( -e $SCR/$JOB.molf ) $Mv $SCR/$JOB.molf $DATA
if ( -e $SCR/$JOB.mkl ) $Mv $SCR/$JOB.mkl $DATA
if ( -e $SCR/$JOB.xyz ) $Mv $SCR/$JOB.xyz $DATA
($Ls $SCR/${JOB}-*.cube > $SCR/${JOB}.lis) >& /dev/null
if ( ! -z $SCR/${JOB}.lis ) $Mv $SCR/${JOB}*.cube $DATA
$Rm $SCR/${JOB}.lis
($Ls $SCR/${JOB}-*.grd > $SCR/${JOB}.lis) >& /dev/null
if ( ! -z $SCR/${JOB}.lis ) $Mv $SCR/${JOB}*.grd $DATA
$Rm $SCR/${JOB}.lis
($Ls $SCR/${JOB}-*.csv > $SCR/${JOB}.lis) >& /dev/null
if ( ! -z $SCR/${JOB}.lis ) $Mv $SCR/${JOB}*.csv $DATA
$Rm $SCR/${JOB}.lis
foreach node (`$CAt $NODEFILE`)
if ( $node != $master ) then
echo
echo "Files used on node '$node' were:"
echo
($SSh -o ConnectTimeout=5 -n $node "$Ls -lF $SCR/$JOB.*" > /dev/tty) >&
/dev/null
if ( $? < 1 ) then
$SSh -o ConnectTimeout=5 -n $node "$Rm $SCR/$JOB.F*"
else
echo "NONE"
endif
endif
end
if ( $?I_MPI_STATS ) then
if ( $I_MPI_STATS > 0 ) $Mv $SCR/stats.txt $DATA
endif
if ( -e $PROCFILE ) $Rm $PROCFILE
if ( -e $NODEFILE ) $Rm $NODEFILE
echo
echo "+--------------------------------- ALL DONE
-----------------------------------+"
echo
echo "+------------------------------- JOB COMPLETE
---------------------------------+"
echo
$DATe
echo
echo
"+==============================================================================+"
echo "| GAMESS Execution Script DONE
|"
echo
"+==============================================================================+"
############################
### INTEL-MPI GAMESS JOBFILE ###
#!/bin/bash
#SBATCH -o job-%j.out
#SBATCH -e job-%j.err
#SBATCH -J JOBNAME
#SBATCH -n 16
#SBATCH -N 2
#SBATCH -c 1
#SBATCH --tasks-per-node=8
#SBATCH -A ma2
#SBATCH -p ma2
#SBATCH -C ibma1
#SBATCH --exclusive
#SBATCH -t 1-00:00:00
#SBATCH --mem-per-cpu=1024
GAMESS='/software/base/gamess-May012013R1-intel/gamess-impi.00.x'
RUNGMS='/software/base/gamess-May012013R1-intel/rungms'
TARGET='impi-hydra'
EXTBAS='/dev/null'
JOBUID="job-$SLURM_JOBID"
JOBHST="$JOBUID.hst"
SOPT="-n $SLURM_NNODES --ntasks-per-node=1"
source /software/ENV/set_intel-111-base.sh
source /software/ENV/set_mkl-111-base.sh
source /software/ENV/set_impi-403-base.sh
# INPUT FILE MUST HAVE .inp EXTENSION
INP='ene.inp'
DATA="/data-sbsrv9/$USER/gamess/DATA/$JOBUID"
SCR="/scratch/$USER/gamess/$JOBUID"
srun hostname -s | sort > $JOBHST
srun $SOPT /bin/mkdir -p $SCR
$RUNGMS -i $INP \
-b $GAMESS \
-d $DATA \
-s $SCR \
-e $EXTBAS \
-h $JOBHST \
-t $TARGET
srun $SOPT /bin/rm -rf $SCR
############################
### OPEN-MPI GAMESS JOBFILE ###
#!/bin/bash
#SBATCH -o job-%j.out
#SBATCH -e job-%j.err
#SBATCH -J JOBNAME
#SBATCH -n 16
#SBATCH -N 2
#SBATCH -c 1
#SBATCH --tasks-per-node=8
#SBATCH -A ma2
#SBATCH -p ma2
#SBATCH -C ibma1
#SBATCH --exclusive
#SBATCH -t 1-00:00:00
#SBATCH --mem-per-cpu=1024
GAMESS='/software/base/gamess-May012013R1-intel/gamess-openmpi.00.x'
RUNGMS='/software/base/gamess-May012013R1-intel/rungms'
TARGET='openmpi'
EXTBAS='/dev/null'
JOBUID="job-$SLURM_JOBID"
JOBHST="$JOBUID.hst"
SOPT="-n $SLURM_NNODES --ntasks-per-node=1"
source /software/ENV/set_intel-111-base.sh
source /software/ENV/set_mkl-111-base.sh
source /software/ENV/set_openmpi-164-intel-base.sh
# INPUT FILE MUST HAVE .inp EXTENSION
INP='ene.inp'
DATA="/data-sbsrv9/$USER/gamess/DATA/$JOBUID"
SCR="/scratch/$USER/gamess/$JOBUID"
srun hostname -s | sort > $JOBHST
srun $SOPT /bin/mkdir -p $SCR
$RUNGMS -i $INP \
-b $GAMESS \
-d $DATA \
-s $SCR \
-e $EXTBAS \
-h $JOBHST \
-t $TARGET
srun $SOPT /bin/rm -rf $SCR
############################
### SOCKETS GAMESS JOBFILE ###
#!/bin/bash
#SBATCH -o job-%j.out
#SBATCH -e job-%j.err
#SBATCH -J JOBNAME
#SBATCH -n 16
#SBATCH -N 2
#SBATCH -c 1
#SBATCH -A ma2
#SBATCH -p ma2
#SBATCH -C ibma1
#SBATCH -t 1-00:00:00
#SBATCH --exclusive
#SBATCH --tasks-per-node=8
#SBATCH --mem-per-cpu=1024
GAMESS='/software/base/gamess-May012013R1-intel/gamess-sockets.00.x'
RUNGMS='/software/base/gamess-May012013R1-intel/rungms'
TARGET='sockets'
EXTBAS='/dev/null'
HPNET='.ipoib'
JOBUID="job-$SLURM_JOBID"
JOBHST="$JOBUID.hst"
DATA="/data-sbsrv9/$USER/gamess/DATA/$JOBUID"
SCR="/scratch/$USER/gamess/$JOBUID"
# gamess input file MUST HAVE '.inp' extension
INP='ene.inp'
SOPT="-n $SLURM_NNODES --ntasks-per-node=1"
source /software/ENV/set_intel-111-base.sh
source /software/ENV/set_mkl-111-base.sh
srun hostname -s | sort > $JOBHST
srun $SOPT /bin/mkdir -p $SCR
$RUNGMS -i $INP \
-b $GAMESS \
-d $DATA \
-s $SCR \
-e $EXTBAS \
-h $JOBHST \
-t $TARGET \
-hpnet $HPNET
srun $SOPT /bin/rm -rf $SCR
________________________________________
From: Loris Bennett [[email protected]]
Sent: Friday, September 26, 2014 1:48 PM
To: slurm-dev
Subject: [slurm-dev] Re: Start script for GAMESS?
Hi Paddy,
Paddy Doyle <[email protected]> writes:
> Hi Loris,
>
> On Fri, Sep 26, 2014 at 03:24:58AM -0700, Loris Bennett wrote:
>
>>
>> Hi,
>>
>> I'm installing GAMESS on our cluster for the first time and find that it
>> has a slightly crufty, Slurm-unaware start script.
>>
>> Has anyone already adapted this for Slurm and is willing to share?
>
> It's a tricky one alright!
>
> See attached a custom rungms.slurm that I hacked together for our system...
>
> I had a little bit of fighting to get it to work with Slurm! :) The rungms
> script is quite hard-coded with local values to begin with (and it's csh
> which I
> don't like as a scripting language).
>
> Our rungms.slurm script unfortunately still has some hard-coded paths from our
> setup, and I used the python hostlist tool, so there's definitely some changes
> to be made for your setup.
>
> I compiled GAMESS with Intel 14 and IMPI 4.
>
> I used a bunch of SLURM_* environment variables in the script.
>
> I tried to leave the control of the runtime setup (nodes/cores) in the hands
> of
> the Slurm submission script.
>
> E.g. if the user wanted 16 cores (in our cluster there are 8 per node), they'd
> just use
>
> #SBATCH -n 16
>
> ..and the rungms.slurm would figure out that it was 16 cores over 2 nodes, and
> start 8 on each.
>
> Or if they need more RAM per core, they could ask for:
>
> #SBATCH -n 16
> #SBATCH -N 4
>
> ..and again the rungms.slurm would use the Slurm environment to figure out how
> many nodes and how many processes per node.
>
> I used the slurm-aware hydra launcher, which takes care of those details I
> think.
>
> mpiexec.hydra -bootstrap slurm ...
>
>
>
> Hopefully it will be of use to you.
>
> Thanks,
> Paddy
Thanks, Paddy. I had noticed you mention the script on your GAMESS page
at TCHPC, so I was already hoping you might be able to help me out ...
I'll try to get it working following your example and once that's done
maybe have a look at adapting it to fit in with 'modules' (although
GAMESS seems to have a very strange notion of what 'version' means).
Cheers,
Loris
--
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universit?t Berlin Email [email protected]