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

history write optimization #2115

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 1 addition & 1 deletion Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ required = True
local_path = cime
protocol = git
repo_url = https://github.com/ESMCI/cime
tag = cime5.8.32
tag = cime5.8.32.1
externals = ../Externals_cime.cfg
required = True

Expand Down
26 changes: 11 additions & 15 deletions cime_config/testdefs/testlist_clm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/ciso">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/ciso">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
Expand All @@ -554,39 +554,39 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/default">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/default">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/reduceOutput">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/reduceOutput">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/flexCN_FUN">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/flexCN_FUN">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/noFUN_flexCN">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/noFUN_flexCN">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/luna">
<test name="ERP_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/luna">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
Expand Down Expand Up @@ -868,7 +868,6 @@
<machines>
<machine name="cheyenne" compiler="intel" category="aux_clm"/>
<machine name="hobart" compiler="intel" category="prebeta"/>
<machine name="hobart" compiler="pgi" category="prebeta"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
Expand Down Expand Up @@ -933,7 +932,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_Mmpi-serial" grid="1x1_vancouverCAN" compset="I1PtClm45SpRsGs" testmods="clm/default">
<test name="ERS_D_Ld5_Mmpi-serial" grid="1x1_vancouverCAN" compset="I1PtClm45SpRsGs" testmods="clm/default">
<machines>
<machine name="cheyenne" compiler="intel" category="aux_clm"/>
<machine name="izumi" compiler="nag" category="prealpha"/>
Expand Down Expand Up @@ -1025,7 +1024,7 @@
</test>
<test name="ERS_Ly5_Mmpi-serial" grid="1x1_numaIA" compset="I2000Clm50BgcCropQianRsGs" testmods="clm/monthly">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
<machine name="izumi" compiler="intel" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">02:30:00</option>
Expand Down Expand Up @@ -1136,7 +1135,6 @@
<test name="SMS" grid="f10_f10_musgs" compset="I2000Clm50BgcCrop" testmods="clm/crop">
<machines>
<machine name="izumi" compiler="intel" category="aux_clm"/>
<machine name="izumi" compiler="pgi" category="aux_clm"/>
<machine name="izumi" compiler="gnu" category="aux_clm"/>
</machines>
<options>
Expand Down Expand Up @@ -1226,7 +1224,6 @@ for ERS test as otherwise it won't work for a sub-day test"</option>
<test name="SMS_D" grid="f10_f10_musgs" compset="I2000Clm50BgcCrop" testmods="clm/crop">
<machines>
<machine name="izumi" compiler="intel" category="aux_clm"/>
<machine name="izumi" compiler="pgi" category="aux_clm"/>
<machine name="izumi" compiler="gnu" category="aux_clm"/>
</machines>
<options>
Expand All @@ -1235,7 +1232,6 @@ for ERS test as otherwise it won't work for a sub-day test"</option>
</test>
<test name="SMS_D_Ld1" grid="f19_g17" compset="I1850Clm45Cn" testmods="clm/default">
<machines>
<machine name="izumi" compiler="pgi" category="prebeta"/>
<machine name="izumi" compiler="gnu" category="aux_clm"/>
</machines>
<options>
Expand Down Expand Up @@ -1434,7 +1430,7 @@ for ERS test as otherwise it won't work for a sub-day test"</option>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="SMS_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50SpGs" testmods="clm/ptsRLA">
<test name="SMS_D_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50SpGs" testmods="clm/ptsRLA">
<machines>
<machine name="cheyenne" compiler="intel" category="aux_clm"/>
<machine name="izumi" compiler="nag" category="aux_clm"/>
Expand Down Expand Up @@ -1899,7 +1895,7 @@ for ERS test as otherwise it won't work for a sub-day test"</option>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERP_Ld9" grid="f45_f45_mg37" compset="I2000Clm45Fates" testmods="clm/FatesAllVars">
<test name="ERP_D_Ld9" grid="f45_f45_mg37" compset="I2000Clm45Fates" testmods="clm/FatesAllVars">
<machines>
<machine name="cheyenne" compiler="intel" category="fates"/>
<machine name="izumi" compiler="nag" category="fates"/>
Expand Down Expand Up @@ -1952,7 +1948,7 @@ for ERS test as otherwise it won't work for a sub-day test"</option>
<test name="ERS_Ld60" grid="f45_f45_mg37" compset="I2000Clm45Fates" testmods="clm/Fates">
<machines>
<machine name="cheyenne" compiler="intel" category="fates"/>
<machine name="izumi" compiler="nag" category="fates"/>
<machine name="izumi" compiler="intel" category="fates"/>
</machines>
<options>
<option name="wallclock">00:40:00</option>
Expand Down
22 changes: 11 additions & 11 deletions cime_config/testdefs/testlist_clm_nuopc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/ciso">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/ciso">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
Expand All @@ -518,39 +518,39 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/default">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I1850Clm50Bgc" testmods="clm/default">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/reduceOutput">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/reduceOutput">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/flexCN_FUN">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/flexCN_FUN">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/noFUN_flexCN">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/noFUN_flexCN">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/luna">
<test name="ERS_D_Ld5_P48x1" grid="f10_f10_musgs" compset="I2000Clm50BgcCruGs" testmods="clm/luna">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
</machines>
Expand Down Expand Up @@ -876,7 +876,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld5" grid="1x1_mexicocityMEX" compset="I1PtClm50SpRsGs" testmods="clm/default">
<test name="ERS_D_Ld5" grid="1x1_mexicocityMEX" compset="I1PtClm50SpRsGs" testmods="clm/default">
<machines>
<machine name="izumi" compiler="nag" category="prealpha"/>
</machines>
Expand Down Expand Up @@ -958,7 +958,7 @@
</test>
<test name="ERS_Ly5" grid="1x1_numaIA" compset="I2000Clm50BgcCropQianRsGs" testmods="clm/monthly">
<machines>
<machine name="izumi" compiler="nag" category="aux_clm"/>
<machine name="izumi" compiler="intel" category="aux_clm"/>
</machines>
<options>
<option name="wallclock">02:30:00</option>
Expand Down Expand Up @@ -1305,7 +1305,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="SMS_Ld1" grid="f45_f45_mg37" compset="I2000Clm50SpGs" testmods="clm/ptsRLA">
<test name="SMS_D_Ld1" grid="f45_f45_mg37" compset="I2000Clm50SpGs" testmods="clm/ptsRLA">
<machines>
<machine name="cheyenne" compiler="intel" category="aux_clm"/>
<machine name="izumi" compiler="nag" category="aux_clm"/>
Expand Down Expand Up @@ -1738,7 +1738,7 @@
<option name="wallclock">00:20:00</option>
</options>
</test>
<test name="ERS_Ld9" grid="f45_f45_mg37" compset="I2000Clm45Fates" testmods="clm/FatesAllVars">
<test name="ERS_D_Ld9" grid="f45_f45_mg37" compset="I2000Clm45Fates" testmods="clm/FatesAllVars">
<machines>
<machine name="cheyenne" compiler="intel" category="fates"/>
<machine name="edison" compiler="intel" category="fates"/>
Expand Down Expand Up @@ -1795,7 +1795,7 @@
<machines>
<machine name="cheyenne" compiler="intel" category="fates"/>
<machine name="edison" compiler="intel" category="fates"/>
<machine name="izumi" compiler="nag" category="fates"/>
<machine name="izumi" compiler="intel" category="fates"/>
</machines>
<options>
<option name="wallclock">00:40:00</option>
Expand Down
1 change: 1 addition & 0 deletions doc/ChangeSum
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Tag Who Date Summary
============================================================================================================================
release-cesm2.2.02 erik 08/23/2023 Change the sorting method for history files to help with performance on lustre filesystems
release-cesm2.2.01 erik 09/02/2020 Fix clm4_5 initial conditions
ctsm1.0.dev111 erik 08/28/2020 Compsets don't use 2014 for GSWP3 forcing
ctsm1.0.dev110 jedwards 08/21/2020 SKIPPED ON RELEASE BRANCH
Expand Down
71 changes: 71 additions & 0 deletions doc/release-cesm2.2.ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,75 @@
===============================================================
Tag name: release-cesm2.2.02
Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326)
Date: Wed Aug 23 13:18:00 MDT 2023
One-line Summary: Change the sorting method for history files to help with performance on lustre filesystems

Purpose of this version:
------------------------

Bring in a change from Jim Edwards changing the way that history file variables
are sorted which improves performance on lustre filesystems.

Also update the cime tag so will work on izumi with the new domainname.

Tried updating the mosart tag, but that resulting in failing tests.

CTSM Master Tag This Corresponds To: ctsm1.0.dev108 (with most changes from ctsm1.0.dev111)

Summary of changes:
-------------------

Testing:
--------

[PASS means all tests PASS and OK means tests PASS other than expected fails.]

build-namelist tests:

cheyenne - PASS

unit-tests (components/clm/src):

cheyenne - PASS
izumi ---- PASS

tools-tests (components/clm/test/tools): Not tested

regular tests (aux_clm):

cheyenne_intel ---- PASS
cheyenne_gnu ------ PASS
izumi_nag --------- PASS
izumi_intel ------- PASS

Summary of Answer changes:
-------------------------

If the tag used for baseline comparisons was NOT the previous tag, note that here: previous

Changes answers relative to baseline: No bit-for-bit

Detailed list of changes:
------------------------

Externals being used:
cism2_1_69
rtm1_0_72
mosart1_0_37
cime5.8.32.1
FATES tag -- sci.1.30.0_api.8.0.0
PTCLM2_20200902
cdeps hash -- 45b7a85

CTSM Tag versions pulled over from master development branch: None

Pull Requests that document the changes (include PR ids):
(https://github.com/ESCOMP/ctsm/pull)

https://github.com/ESCOMP/CTSM/pull/2115 -- history file optimization

===============================================================
===============================================================
Tag name: release-cesm2.2.01
Originator(s): erik (Erik Kluzek,UCAR/TSS,303-497-1326)
Date: Wed Sep 2 02:44:01 MDT 2020
Expand Down
11 changes: 10 additions & 1 deletion src/main/histFileMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -764,7 +764,16 @@ subroutine htapes_fieldlist()

do f = tape(t)%nflds-1,1,-1
do ff = 1,f
if (tape(t)%hlist(ff)%field%name > tape(t)%hlist(ff+1)%field%name) then
if (masterlist(ff)%field%num2d > masterlist(ff+1)%field%num2d) then

tmp = tape(t)%hlist(ff)
tape(t)%hlist(ff ) = tape(t)%hlist(ff+1)
tape(t)%hlist(ff+1) = tmp
endif
enddo
do ff = 1,f
if ((masterlist(ff)%field%num2d == masterlist(ff+1)%field%num2d) .and. &
(masterlist(ff)%field%name > masterlist(ff+1)%field%name)) then

tmp = tape(t)%hlist(ff)
tape(t)%hlist(ff ) = tape(t)%hlist(ff+1)
Expand Down