Skip to content

Commit

Permalink
Merge pull request #5 from ACME-Climate/singhbalwinder/machinefiles/p…
Browse files Browse the repository at this point in the history
…nnl-clusters

Added machine files for PNNL clusters: Cascade, Sooty and Olympus
  • Loading branch information
singhbalwinder committed Aug 21, 2014
2 parents 1627ae5 + 0b8246d commit d2a1d6f
Show file tree
Hide file tree
Showing 8 changed files with 334 additions and 23 deletions.
48 changes: 48 additions & 0 deletions scripts/ccsm_utils/Machines/config_compilers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,55 @@ for mct, etc.
<ADD_CPPDEFS> -DLINUX </ADD_CPPDEFS>
<SLIBS> -L$(NETCDF_PATH)/lib -lnetcdf -lnetcdff -lpmi </SLIBS>
</compiler>

<compiler COMPILER="intel" MACH="olympus">
<ADD_CFLAGS DEBUG="FALSE"> -O2 </ADD_CFLAGS>
<ADD_FFLAGS DEBUG="FALSE"> -O2 </ADD_FFLAGS>
<NETCDF_PATH> $(NETCDF_LIB)/..</NETCDF_PATH>
<CONFIG_ARGS> --host=Linux </CONFIG_ARGS>
<PIO_FILESYSTEM_HINTS>lustre</PIO_FILESYSTEM_HINTS>
<ADD_CPPDEFS> -DLINUX </ADD_CPPDEFS>
<SLIBS> -L$(NETCDF_PATH)/lib -lnetcdf -lnetcdff -lpmi </SLIBS>
</compiler>

<compiler COMPILER="intel" MACH="sooty">
<ADD_CFLAGS DEBUG="FALSE"> -O2 </ADD_CFLAGS>
<ADD_FFLAGS DEBUG="FALSE"> -O2 </ADD_FFLAGS>
<NETCDF_PATH> $(NETCDF)</NETCDF_PATH>
<CONFIG_ARGS> --host=Linux </CONFIG_ARGS>
<PIO_FILESYSTEM_HINTS>lustre</PIO_FILESYSTEM_HINTS>
<ADD_CPPDEFS> -DLINUX </ADD_CPPDEFS>
<SLIBS> -L$(NETCDF_PATH)/lib -lnetcdf -lpmi </SLIBS>
</compiler>

<compiler COMPILER="pgi" MACH="sooty">
<ADD_CFLAGS DEBUG="FALSE"> -O2 </ADD_CFLAGS>
<ADD_FFLAGS DEBUG="FALSE"> -O2 </ADD_FFLAGS>
<NETCDF_PATH> $(NETCDF_LIB)/..</NETCDF_PATH>
<CONFIG_ARGS> --host=Linux </CONFIG_ARGS>
<PIO_FILESYSTEM_HINTS>lustre</PIO_FILESYSTEM_HINTS>
<ADD_CPPDEFS> -DLINUX </ADD_CPPDEFS>
<SLIBS> -L$(NETCDF_PATH)/lib -lnetcdf -lnetcdff -lpmi </SLIBS>
</compiler>


<compiler COMPILER="intel" MACH="cascade">
<NETCDF_PATH> $(NETCDF_LIB)/..</NETCDF_PATH>
<CONFIG_ARGS> --host=Linux --enable-filesystem-hints=lustre</CONFIG_ARGS>
<ADD_CPPDEFS> -DLINUX </ADD_CPPDEFS>
<ADD_FFLAGS DEBUG="TRUE"> -g -O0 </ADD_FFLAGS>
<SLIBS> -L$(NETCDF_PATH)/lib -lnetcdf -lpmi </SLIBS>
<ADD_SLIBS> -L$(NETCDF_PATH)/lib -lnetcdff </ADD_SLIBS>
</compiler>

<compiler COMPILER="nag" MACH="cascade">
<NETCDF_PATH>$(NETCDF_ROOT)</NETCDF_PATH >
<MPI_PATH MPILIB="mvapich2"> $(MPI_LIB)</MPI_PATH >
<ADD_CPPDEFS> -DnoI8 </ADD_CPPDEFS>
<ADD_LDFLAGS compile_threaded="true"> </ADD_LDFLAGS>
<ADD_SLIBS> -L$(NETCDF_ROOT)/lib -lnetcdf -lnetcdff</ADD_SLIBS>
</compiler>

<compiler COMPILER="intel" MACH="evergreen">
<NETCDF_PATH> $(NETCDFLIB)/..</NETCDF_PATH>
<CONFIG_ARGS> --host=Linux </CONFIG_ARGS>
Expand Down
47 changes: 44 additions & 3 deletions scripts/ccsm_utils/Machines/config_machines.xml
Original file line number Diff line number Diff line change
Expand Up @@ -365,24 +365,65 @@
<machine MACH="olympus">
<DESC>PNL cluster, os is Linux (pgi), batch system is SLURM</DESC>
<OS>LINUX</OS>
<COMPILERS>pgi</COMPILERS>
<COMPILERS>pgi,intel</COMPILERS>
<MPILIBS>mpich</MPILIBS>
<RUNDIR>/pic/scratch/$CCSMUSER/$CASE/run</RUNDIR>
<EXEROOT>/pic/scratch/$CCSMUSER/$CASE/bld</EXEROOT>
<CESMSCRATCHROOT>/pic/scratch/$USER</CESMSCRATCHROOT>
<DIN_LOC_ROOT>/pic/scratch/tcraig/IRESM/inputdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/pic/scratch/tcraig/IRESM/inputdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/pic/scratch/$CCSMUSER/archive/$CASE</DOUT_S_ROOT>
<DOUT_L_MSROOT>UNSET</DOUT_L_MSROOT>
<DOUT_L_MSROOT>csm/$CASE</DOUT_L_MSROOT>
<CCSM_BASELINE>/pic/scratch/tcraig/IRESM/ccsm_baselines</CCSM_BASELINE>
<CCSM_CPRNC>/pic/scratch/tcraig/IRESM/tools/cprnc/cprnc</CCSM_CPRNC>
<BATCHQUERY>squeue</BATCHQUERY>
<BATCHSUBMIT>sbatch</BATCHSUBMIT>
<SUPPORTED_BY>tcraig -at- ucar.edu</SUPPORTED_BY>
<SUPPORTED_BY>balwinder.singh at pnnl dot gov</SUPPORTED_BY>
<GMAKE_J>8</GMAKE_J>
<MAX_TASKS_PER_NODE>32</MAX_TASKS_PER_NODE>
</machine>


<machine MACH="sooty">
<DESC>PNL cluster, os is Linux (pgi,intel,nag), batch system is SLURM</DESC>
<OS>LINUX</OS>
<COMPILERS>pgi,intel</COMPILERS>
<MPILIBS>mvapich2</MPILIBS>
<RUNDIR>/lustre/$CCSMUSER/csmruns/$CASE/run</RUNDIR>
<EXEROOT>/lustre/$CCSMUSER/csmruns/$CASE/bld</EXEROOT>
<CESMSCRATCHROOT>/lustre/$USER/csmruns/</CESMSCRATCHROOT>
<DIN_LOC_ROOT>/lustre/sing201/DATASETS/CAM/InitialCondFilesCam/FromMythos1/CSMDATA_CAM/aerocom/csmdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/lustre/sing201/DATASETS/CAM/InitialCondFilesCam/FromMythos1/CSMDATA_CAM/aerocom/csmdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/lustre/$CCSMUSER/archive/$CASE</DOUT_S_ROOT>
<DOUT_L_MSROOT>csm/$CASE</DOUT_L_MSROOT>
<CCSM_BASELINE>/UNSET_BASELINE</CCSM_BASELINE>
<CCSM_CPRNC>/lustre/sing201/CAM/netcdfComp_cprnc/cprnc/cprnc</CCSM_CPRNC>
<BATCHQUERY>squeue</BATCHQUERY>
<BATCHSUBMIT>sbatch</BATCHSUBMIT>
<SUPPORTED_BY>balwinder.singh at pnnl dot gov</SUPPORTED_BY>
<GMAKE_J>8</GMAKE_J>
<MAX_TASKS_PER_NODE>8</MAX_TASKS_PER_NODE>
</machine>
<machine MACH="cascade">
<DESC>PNL cluster, os is Linux (pgi), batch system is SLURM</DESC>
<OS>LINUX</OS>
<COMPILERS>intel,nag</COMPILERS>
<MPILIBS>mvapich2</MPILIBS>
<RUNDIR>/dtemp/$CCSMUSER/csmruns/$CASE/run</RUNDIR>
<EXEROOT>/dtemp/$CCSMUSER/csmruns/$CASE/bld</EXEROOT>
<DIN_LOC_ROOT>/dtemp/sing201/inputdata/CAM/CSMDATA_CAM/aerocom/csmdata</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/dtemp/sing201/inputdata/CAM/CSMDATA_CAM/aerocom/csmdata/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/dtemp/$CCSMUSER/archive/$CASE</DOUT_S_ROOT>
<DOUT_L_MSROOT>csm/$CASE</DOUT_L_MSROOT>
<CCSM_BASELINE>/dtemp/sing201/ACME_testing/acme_baselines/</CCSM_BASELINE>
<CESMSCRATCHROOT>/dtemp/$USER/csmruns</CESMSCRATCHROOT>
<CCSM_CPRNC>/home/sing201/CAM/cprnc/cprnc</CCSM_CPRNC>
<BATCHQUERY>showq</BATCHQUERY>
<BATCHSUBMIT>msub</BATCHSUBMIT>
<SUPPORTED_BY>balwinder.singh at pnnl dot gov</SUPPORTED_BY>
<GMAKE_J>8</GMAKE_J>
<MAX_TASKS_PER_NODE>16</MAX_TASKS_PER_NODE>
</machine>
<machine MACH="pleiades-wes">
<DESC>NASA/AMES Linux Cluster, Linux (ia64), Altix ICE, 2.93 GHz Westmere processors, 12 pes/node and 24 GB of memory, batch system is PBS</DESC>
<COMPILERS>intel</COMPILERS>
Expand Down
30 changes: 30 additions & 0 deletions scripts/ccsm_utils/Machines/env_mach_specific.cascade
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#! /bin/csh -f

#--- set modules
source /etc/profile.d/modules.csh
if ( $COMPILER == "intel" ) then
#MODULES UNLOAD
module purge
unsetenv LD_LIBRARY_PATH
#Module load
module load intel/13.0.1
module load mvapich2/1.9
module load netcdf/4.3.0
endif
if ( $COMPILER == "nag" ) then
#MODULES UNLOAD
module purge
unsetenv LD_LIBRARY_PATH
#Module load
module load nag/5.3.1
setenv COMPILER nag
setenv COMPILER_PATH /msc/apps/compilers/nag/5.3.1/
#NOTE: FIRST load mvapich. Loading netcdf before mvapich loads openmpi automatically and causes compilation problems
module load mvapich2/1.9
module load netcdf/4.3.0

endif
limit coredumpsize 1000000
limit stacksize unlimited


31 changes: 12 additions & 19 deletions scripts/ccsm_utils/Machines/env_mach_specific.olympus
Original file line number Diff line number Diff line change
@@ -1,27 +1,20 @@
#! /bin/csh -f

#--- set modules
source /etc/profile.d/modules.csh
#source /share/apps/modules/Modules/3.2.7/init/csh
module purge
module load precision/i4
module load pgi/11.8
module load mvapich2/1.7
module load netcdf/4.1.3
#module list
module load cmake
if ( $COMPILER == "pgi" ) then
module load precision/i4
module load pgi/13.8
module load mvapich2/1.9
module load netcdf/4.1.3
endif

#--- set paths
#setenv PGI_PATH /share/apps/pgi/linux86-64/9.0-4
#setenv MPICH_PATH /share/apps/mvapich-1.0.1/pgi
#setenv MPICH_PATH /share/apps/mvapich2-1.0.3/pgi
#setenv MPICH_PATH /share/apps/openmpi-1.2.6/pgi
#setenv PATH ${PGI_PATH}/bin:${MPICH_PATH}/bin:${PATH}
#setenv LD_LIBRARY_PATH ${MPICH_PATH}/lib:${LD_LIBRARY_PATH}

#--- set env variables for Macros if needed
#setenv NETCDF ${NETCDF_HOME}
#setenv PNETCDF /share/apps/pnetcdf/mvapich-1.0.1/pgi
#setenv LD_LIBRARY_PATH ${NETCDF}/lib:${LD_LIBRARY_PATH}
if ( $COMPILER == "intel" ) then
module load intel/14.0.1
module load mvapich2/1.9
module load netcdf/4.1.3
endif

#-------------------------------------------------------------------------------

Expand Down
32 changes: 32 additions & 0 deletions scripts/ccsm_utils/Machines/env_mach_specific.sooty
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#! /bin/csh -f

#NOTE: "module purge" command doesn't work on Sooty
# I am using a script (set_path) to reset path

source /etc/profile.d/modules.csh
unsetenv LD_LIBRARY_PATH
unsetenv NETCDF
source ~sing201/files_cshrc/set_path

module load cmake/3.0.0


if ( $COMPILER == "pgi" ) then
module load pgi/14.1
module load mpi/mvapich2/1.7/pgi/11.10
module load netcdf/4.1.3/pgi/12.2
endif
if ( $COMPILER == "intel" ) then
module load intel/14.0.2
module load mpi/mvapich2/1.7/intel/11.1
module load netcdf/4.1.1/intel
endif
setenv NETCDF `where ncdump | sed s_/bin/ncdump__`


#------------------------------------------

limit coredumpsize 1000000
limit stacksize unlimited


82 changes: 82 additions & 0 deletions scripts/ccsm_utils/Machines/mkbatch.cascade
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#! /bin/csh -f

#################################################################################
if ($PHASE == set_batch) then
#################################################################################

source ./Tools/ccsm_getenv || exit -1

set ntasks = `${CASEROOT}/Tools/taskmaker.pl -sumonly`
set maxthrds = `${CASEROOT}/Tools/taskmaker.pl -maxthrds`
@ nodes = $ntasks / ${MAX_TASKS_PER_NODE}
if ( $ntasks % ${MAX_TASKS_PER_NODE} > 0) then
@ nodes = $nodes + 1
@ ntasks = $nodes * ${MAX_TASKS_PER_NODE}
endif
@ taskpernode = ${MAX_TASKS_PER_NODE} / ${maxthrds}
set qname = batch
set tlimit = "00:59:00"
if ($CCSM_ESTCOST > 2) set tlimit = "08:59:00"

if ($?TESTMODE) then
set file = $CASEROOT/${CASE}.test
else
set file = $CASEROOT/${CASE}.run
endif

cat >! $file << EOF1
#!/bin/csh -f
#MSUB -A ${CESM_PROJ}
#MSUB -N ${CASE}
#MSUB -l walltime=$tlimit
#MSUB -l nodes=${nodes}:ppn=${MAX_TASKS_PER_NODE}
#MSUB -m ae
#MSUB -o job.output
#MSUB -e job.error
#MSUB -M ${CESM_EMAIL}
EOF1

#################################################################################
else if ($PHASE == set_exe) then
#################################################################################

set maxthrds = `${CASEROOT}/Tools/taskmaker.pl -maxthrds`
set maxtasks = `${CASEROOT}/Tools/taskmaker.pl -sumtasks`

cat >> ${CASEROOT}/${CASE}.run << EOF1
sleep 25
cd \$RUNDIR
echo "\`date\` -- CSM EXECUTION BEGINS HERE"
setenv OMP_NUM_THREADS ${maxthrds}
# for mvapich
#srun --ntasks=${maxtasks} --cpu_bind=sockets --cpu_bind=verbose --kill-on-bad-exit \$EXEROOT/cesm.exe >&! cesm.log.\$LID
# for mvapich2
srun --mpi=none --ntasks=${maxtasks} --cpu_bind=sockets --cpu_bind=verbose --kill-on-bad-exit \$EXEROOT/cesm.exe >&! cesm.log.\$LID
#setenv MV2_ENABLE_AFFINITY 1
#setenv MV2_CPU_MAPPING 31:29:27:25:23:21:19:17:15:13:11:9:7:5:3:1
#srun --mpi=none -n=${maxtasks} --kill-on-bad-exit \$EXEROOT/cesm.exe >&! cesm.log.\$LID
wait
echo "\`date\` -- CSM EXECUTION HAS FINISHED"
EOF1

#################################################################################
else if ($PHASE == set_larch) then
#################################################################################

#This is a place holder for a long-term archiving script

#################################################################################
else
#################################################################################

echo " PHASE setting of $PHASE is not an accepted value"
echo " accepted values are set_batch, set_exe and set_larch"
exit 1

#################################################################################
endif
#################################################################################
3 changes: 2 additions & 1 deletion scripts/ccsm_utils/Machines/mkbatch.olympus
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ cat >! $file << EOF1
#SBATCH --job-name=${CASE}
#SBATCH --time=$tlimit
#SBATCH --nodes=$nodes
##SBATCH --ntasks=$ntasks
#SBATCH --ntasks=$ntasks
#SBATCH --cpus-per-task=$maxthrds
#SBATCH --exclusive
###SBATCH --mail-type=END
###SBATCH --mail-user=xyz@abc.com
#SBATCH --output=slurm.out
#SBATCH --error=slurm.err
EOF1

Expand Down
Loading

0 comments on commit d2a1d6f

Please sign in to comment.