Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Porting of master (120) to lawrencium LR2 partition. #2

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions cime/machines/config_batch.xml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,15 @@
</directives>
</batch_system>

<batch_system MACH="lawrencium-lr2" version="x.y">
<directives>
<directive>--partition=lr2</directive>
<directive>--account={{ project }}</directive>
<directive>--exclusive</directive>
</directives>
</batch_system>


<!-- edison is PBS -->
<batch_system MACH="edison" version="x.y">
<directives>
Expand Down
6 changes: 6 additions & 0 deletions cime/machines/config_compilers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,12 @@ for mct, etc.
<ADD_GPTL_CPPDEFS> -DHAVE_PAPI </ADD_GPTL_CPPDEFS>
</compiler>

<compiler COMPILER="intel" MACH="lawrencium-lr2">
<ADD_SLIBS> -lnetcdff -lnetcdf -mkl</ADD_SLIBS>
<GPTL_CPPDEFS> -DHAVE_VPRINTF -DHAVE_GETTIMEOFDAY </GPTL_CPPDEFS>
</compiler>


<compiler COMPILER="gnu" MACH="yellowstone">
<LAPACK_LIBDIR> /glade/apps/opt/lib </LAPACK_LIBDIR>
<PIO_TYPENAME>netcdf</PIO_TYPENAME>
Expand Down
66 changes: 66 additions & 0 deletions cime/machines/config_machines.xml
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,72 @@
</mpirun>
</machine>

<machine MACH="lawrencium-lr2">
<DESC>Lawrencium LR2 cluster at LBL, OS is Linux (intel), batch system is SLURM</DESC>
<OS>LINUX</OS>
<COMPILERS>intel</COMPILERS>
<MPILIBS>openmpi,mpi-serial</MPILIBS>
<CESMSCRATCHROOT>/global/scratch/$ENV{USER}</CESMSCRATCHROOT>
<RUNDIR>$CESMSCRATCHROOT/$CASE/run</RUNDIR>
<EXEROOT>$CESMSCRATCHROOT/$CASE/bld</EXEROOT>
<DIN_LOC_ROOT>/global/scratch/$ENV{USER}/cesm_input_datasets/</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/global/scratch/$ENV{USER}/cesm_input_datasets/atm/datm7</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>$CESMSCRATCHROOT/archive/$CASE</DOUT_S_ROOT>
<DOUT_L_MSROOT>csm/$CASE</DOUT_L_MSROOT>
<CCSM_BASELINE>$CESMSCRATCHROOT/cesm_baselines</CCSM_BASELINE>
<CCSM_CPRNC>/$CESMSCRATCHROOT/tools/cprnc/cprnc</CCSM_CPRNC>
<BATCHQUERY>squeue</BATCHQUERY>
<BATCHREDIRECT></BATCHREDIRECT>
<BATCHSUBMIT>sbatch</BATCHSUBMIT>
<SUPPORTED_BY>jnjohnson at lbl dot gov and rgknox at same</SUPPORTED_BY>
<GMAKE_J>12</GMAKE_J>
<MAX_TASKS_PER_NODE>12</MAX_TASKS_PER_NODE>
<PROJECT_REQUIRED>TRUE</PROJECT_REQUIRED>
<batch_system type="slurm" version="2.0">
<queues>
<queue walltimemin="0" walltimemax="72:00:00" jobmin="0" jobmax="64" default="true">lr_normal</queue>
</queues>
<walltimes>
<walltime default="true">00:59:00</walltime>
</walltimes>
</batch_system>
<mpirun mpilib="mpi-serial">
<executable>mpirun</executable>
<arguments>
<arg name="num_tasks">-np {{ num_tasks }}</arg>
<arg name="tasks_per_node"> -npernode {{ tasks_per_node }}</arg>
</arguments>
</mpirun>
<mpirun mpilib="default">
<executable>mpirun</executable>
<arguments>
<arg name="num_tasks">-np {{ num_tasks }}</arg>
<arg name="tasks_per_node"> -npernode {{ tasks_per_node }}</arg>
</arguments>
</mpirun>
<!-- <module_system type="module">
<init_path lang="sh">/etc/profile.d/modules.sh</init_path>
<init_path lang="csh">/etc/profile.d/modules.csh</init_path>
<init_path lang="perl">/usr/Modules/init/perl.pm</init_path>
<cmd_path lang="sh">module</cmd_path>
<cmd_path lang="csh">module</cmd_path>
<cmd_path lang="perl">/usr/Modules/bin/modulecmd perl</cmd_path>
<modules>
<command name="purge"/>
<command name="load">cmake</command>
<command name="load">perl xml-libxml switch</command>
</modules>
<modules compiler="intel">
<command name="load">intel/2015.0.090</command>
<command name="load">openmpi</command>
<command name="load">mkl</command>
<command name="load">netcdf/4.3.2-intel-p</command>
</modules>
</module_system> -->
</machine>



<machine MACH="edison">
<DESC>NERSC XC30, os is CNL, 24 pes/node, batch system is PBS</DESC>
<COMPILERS>intel,gnu,cray</COMPILERS>
Expand Down
37 changes: 37 additions & 0 deletions cime/machines/env_mach_specific.lawrencium-lr2
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#! /bin/csh -f

set CESM_REPO = `./xmlquery CCSM_REPOTAG -value`
if($status == 0) then
set COMPILER = `./xmlquery COMPILER -value`
set MPILIB = `./xmlquery MPILIB -value`
set DEBUG = `./xmlquery DEBUG -value`
set OS = `./xmlquery OS -value`
set PROFILE_PAPI_ENABLE = `./xmlquery PROFILE_PAPI_ENABLE -value`
set PROJECT = `./xmlquery PROJECT -value`
else
echo $0 using settings from environment:
endif
echo "COMPILER=$COMPILER"
echo "MPILIB=$MPILIB"
echo "DEBUG=$DEBUG"
echo "OS=$OS"
echo "PROJECT=$PROJECT"

source /etc/profile.d/modules.csh
module purge
module load cmake
module load perl xml-libxml switch

if ( $COMPILER == "intel" ) then
module load intel/2015.0.090
module load openmpi
module load netcdf/4.3.2-intel-p
module load mkl
endif

setenv NETCDF_PATH $NETCDF_DIR
#-------------------------------------------------------------------------------

limit coredumpsize 1000000
limit stacksize unlimited

5 changes: 5 additions & 0 deletions components/clm/cimetest/testlist_clm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,7 @@
<machine compiler="ed" testtype="ed" testmods="clm/edTest">ed</machine>
<machine compiler="gnu" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">lawrencium-lr2</machine>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For ed-clm development, we want to run all ed related tests on all supported machine and compiler combinations. For simplicity and consistency, it's best to use the 'ed' test suite instead of modifying aux_clm45. Please remove the lawrencium-lr2 tests.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there is a whitespace difference between this line and the previous one. This file isn't intended to be modified by hand, but should be modified with the manage_testlist utility in cime/scripts. If you want to modify it by hand, then you need to run manage_testlist -cleanup to sort the entries and update the whitespace. If this isn't done, it will cause unnecessary conflicts when trying to merge with other edits.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. will remove the lawrencium-lr2 entries and will use the utility.

</test>
</grid>
<grid name="5x5_amazon">
Expand All @@ -715,6 +716,7 @@
<machine compiler="ed" testtype="ed" testmods="clm/edTest">ed</machine>
<machine compiler="nag" testtype="aux_clm45" testmods="clm/edTest">hobart</machine>
<machine compiler="pgi" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">lawrencium-lr2</machine>
</test>
</grid>
<grid name="f09_g16">
Expand All @@ -733,16 +735,19 @@
<machine compiler="ed" testtype="ed" testmods="clm/edTest">ed</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="pgi" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">lawrencium-lr2</machine>
</test>
</grid>
<grid name="f19_g16">
<test name="ERS_D_Ld5">
<machine compiler="ed" testtype="ed" testmods="clm/edTest">ed</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">lawrencium-lr2</machine>
</test>
<test name="SMS_Ld5">
<machine compiler="ed" testtype="ed" testmods="clm/edTest">ed</machine>
<machine compiler="gnu" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">yellowstone</machine>
<machine compiler="intel" testtype="aux_clm45" testmods="clm/edTest">lawrencium-lr2</machine>
</test>
</grid>
<grid name="f45_g37">
Expand Down
2 changes: 1 addition & 1 deletion components/clm/src/ED/biogeochem/EDGrowthFunctionsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ real(r8) function tree_lai( cohort_in )

if( cohort_in%status_coh == 2 ) then ! are the leaves on?
slat = 1000.0_r8 * pftcon%slatop(cohort_in%pft) ! m2/g to m2/kg
cohort_in%c_area = c_area(cohort_in) ! call the tree area
cohort_in%c_area = c_area(cohort_in) ! call the tree area
leafc_per_unitarea = cohort_in%bl/(cohort_in%c_area/cohort_in%n) !KgC/m2
if(leafc_per_unitarea > 0.0_r8)then
tree_lai = leafc_per_unitarea * slat !kg/m2 * m2/kg = unitless LAI
Expand Down
4 changes: 4 additions & 0 deletions components/clm/src/ED/main/EDInitMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,8 @@ subroutine init_cohorts( patch_in )

do pft = 1,numpft_ed !FIX(RF,032414) - turning off veg dynamics

if(EDecophyscon%initd(pft)>1.0E-7) then

allocate(temp_cohort) ! temporary cohort

temp_cohort%pft = pft
Expand Down Expand Up @@ -378,6 +380,8 @@ subroutine init_cohorts( patch_in )

deallocate(temp_cohort) ! get rid of temporary cohort

endif

enddo !numpft

call fuse_cohorts(patch_in)
Expand Down
2 changes: 1 addition & 1 deletion components/clm/src/ED/main/EDTypesMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ module EDTypesMod
integer , parameter :: SENES = 10 ! Window of time over which we track temp for cold sensecence (days)
real(r8), parameter :: DINC_ED = 1.0_r8 ! size of LAI bins.
integer , parameter :: N_DIST_TYPES = 2 ! number of disturbance types (mortality, fire)
integer , parameter :: numpft_ed = 2 ! number of PFTs used in ED.
integer , parameter :: numpft_ed = 10 ! number of PFTs used in ED.

! SPITFIRE
integer , parameter :: NLSC = 5 ! number carbon compartments in above ground litter array
Expand Down