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

New TC variants #1004

Merged
merged 8 commits into from
Nov 5, 2019
Merged

New TC variants #1004

merged 8 commits into from
Nov 5, 2019

Conversation

adcroft
Copy link
Collaborator

@adcroft adcroft commented Sep 20, 2019

  • Added second variants of tc1
  • Added variant of tc2

- Changed shape of tc3 to be 10x8 to be the same size as
  tc1 and tc2. This will allow us to re-use static memory
  executables.
- Also changed tense of labels to match directories
- Similar to tc1.a but uses RK2 instead of RK3 for time integration
- Turned tides off in tc2.a
- Uses different remapping scheme, sigma coordinate and different
  topography.
@codecov-io
Copy link

codecov-io commented Sep 20, 2019

Codecov Report

Merging #1004 into dev/gfdl will increase coverage by 3.28%.
The diff coverage is n/a.

Impacted file tree graph

@@             Coverage Diff             @@
##           dev/gfdl   #1004      +/-   ##
===========================================
+ Coverage     40.42%   43.7%   +3.28%     
===========================================
  Files           212     213       +1     
  Lines         62242   62355     +113     
===========================================
+ Hits          25161   27252    +2091     
+ Misses        37081   35103    -1978
Impacted Files Coverage Δ
src/parameterizations/lateral/MOM_MEKE.F90 69.54% <0%> (-0.61%) ⬇️
src/parameterizations/vertical/MOM_geothermal.F90 65.68% <0%> (ø) ⬆️
src/tracer/MOM_neutral_diffusion_aux.F90 66.35% <0%> (ø)
src/framework/MOM_checksums.F90 77.4% <0%> (+0.07%) ⬆️
...arameterizations/lateral/MOM_thickness_diffuse.F90 63.82% <0%> (+0.12%) ⬆️
src/ALE/MOM_remapping.F90 69.57% <0%> (+0.12%) ⬆️
...c/parameterizations/vertical/MOM_energetic_PBL.F90 66.58% <0%> (+0.12%) ⬆️
...parameterizations/vertical/MOM_diabatic_driver.F90 58.26% <0%> (+0.17%) ⬆️
src/tracer/MOM_tracer_hor_diff.F90 87.21% <0%> (+0.21%) ⬆️
src/diagnostics/MOM_debugging.F90 12.97% <0%> (+0.31%) ⬆️
... and 39 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8834b3b...b2fb9cc. Read the comment docs.

@adcroft
Copy link
Collaborator Author

adcroft commented Sep 20, 2019

This is where the time is/will be spent with this PR. tc2 is long (11s per test on gaea, 15s on Tavis-CI) and adding a variant adds 2-3 minutes to total testing time. To get full coverage will be expensive so we need to figure out how to exercise code in fewer steps. I'm think non-zero initialization with large numbers might do it?

tc0.asymmetric: 	 0.219610
tc0.dim.h: 	 0.265081
tc0.dim.l: 	 0.243992
tc0.dim.t: 	 0.403336
tc0.dim.z: 	 0.229000
tc0.layout: 	 0.323182
tc0.nan: 	 0.301176
tc0.repro: 	 0.209885
tc0.restart1: 	 0.289690
tc0.restart2: 	 0.382158
tc0.symmetric: 	 0.626334
tc1.a.asymmetric: 	 3.835315
tc1.a.dim.h: 	 3.909432
tc1.a.dim.l: 	 3.916244
tc1.a.dim.t: 	 4.113908
tc1.a.dim.z: 	 3.908924
tc1.a.layout: 	 2.684047
tc1.a.nan: 	 4.028140
tc1.a.repro: 	 3.486330
tc1.a.restart1: 	 2.109182
tc1.a.restart2: 	 2.217560
tc1.a.symmetric: 	 4.259010
tc1.b.asymmetric: 	 3.244925
tc1.b.dim.h: 	 3.332088
tc1.b.dim.l: 	 3.270622
tc1.b.dim.t: 	 3.745655
tc1.b.dim.z: 	 3.323972
tc1.b.layout: 	 2.265830
tc1.b.nan: 	 3.376866
tc1.b.repro: 	 2.941922
tc1.b.restart1: 	 1.788271
tc1.b.restart2: 	 1.955641
tc1.b.symmetric: 	 3.565310
tc1.asymmetric: 	 4.846526
tc1.dim.h: 	 5.428959
tc1.dim.l: 	 5.196707
tc1.dim.t: 	 5.378988
tc1.dim.z: 	 5.119642
tc1.layout: 	 3.516559
tc1.nan: 	 5.247020
tc1.repro: 	 4.675445
tc1.restart1: 	 2.697164
tc1.restart2: 	 2.794426
tc1.symmetric: 	 5.443705
tc2.a.asymmetric: 	 11.001344
tc2.a.dim.h: 	 11.251322
tc2.a.dim.l: 	 11.252902
tc2.a.dim.t: 	 11.296298
tc2.a.dim.z: 	 11.248118
tc2.a.layout: 	 7.203558
tc2.a.nan: 	 11.295719
tc2.a.repro: 	 10.171971
tc2.a.restart1: 	 5.815618
tc2.a.restart2: 	 5.853445
tc2.a.symmetric: 	 11.386333
tc2.asymmetric: 	 10.625184
tc2.dim.h: 	 11.209334
tc2.dim.l: 	 11.194546
tc2.dim.t: 	 11.372030
tc2.dim.z: 	 11.144258
tc2.layout: 	 7.035526
tc2.nan: 	 11.224044
tc2.repro: 	 10.066844
tc2.restart1: 	 5.904596
tc2.restart2: 	 5.819918
tc2.symmetric: 	 11.291526
tc3.dim.h: 	 2.296441
tc3.dim.l: 	 2.303803
tc3.dim.t: 	 2.389691
tc3.dim.z: 	 2.319657
tc3.layout: 	 1.606069
tc3.nan: 	 2.398817
tc3.repro: 	 2.000175
tc3.restart1: 	 1.279842
tc3.restart2: 	 1.362599
tc3.symmetric: 	 2.538667

@marshallward
Copy link
Collaborator

Looking at tc1 vs t2, seems like just the diagnostic mediator alone is 4 seconds longer (6.8 vs 2.8).The rest seems to be 2 sec more in traver advection.

I guess ALE is just doing more work here? Also the diagnostics may be more expensive because of layer remapping?

@adcroft
Copy link
Collaborator Author

adcroft commented Sep 20, 2019

Looking at tc1 vs t2, seems like just the diagnostic mediator alone is 4 seconds longer (6.8 vs 2.8).The rest seems to be 2 sec more in traver advection.

I guess ALE is just doing more work here? Also the diagnostics may be more expensive because of layer remapping?

It's also that we turned on all the parameterizations, tides, etc. tc1 is quite simple by comparison.

@adcroft
Copy link
Collaborator Author

adcroft commented Sep 20, 2019

Actually, I think some of it is because half the points in tc1 are masked i.e. dry and not computed!

Depth:
image
Wet:
image

@marshallward
Copy link
Collaborator

Performance aside, this all worked for me, and it also did not create any new diagnostic errors, so should be OK to merge.

This does not affect the code or answers so does not require a formal regression test on Gaea.

@marshallward marshallward marked this pull request as ready for review September 21, 2019 01:23
@marshallward
Copy link
Collaborator

Sorry, I just clicked on some "Ready for Review" feature which was probably meant for you @adcroft. Is this "ready for review" and merge?

@adcroft
Copy link
Collaborator Author

adcroft commented Sep 24, 2019

@marshallward I had used the "Draft pull request" option because this was exploratory. Given how much more time is taken for so little coverage gained I think we need to have a hard think about whether the ".a", ".b" derivatives are worth it. There's a "_tc4" waiting to be added too and it only checks an additional hand full of lines. It would be better to replace tc3 with _tc4 and convert tc2.a and tc2.b into full TCs with as many options changed as possible. Let's talk ...

@marshallward
Copy link
Collaborator

Sounds like despite the possible inefficiencies, that we should keep marching towards better coverage and so should go ahead and merge this.

@marshallward marshallward merged commit 83d8297 into mom-ocean:dev/gfdl Nov 5, 2019
@marshallward
Copy link
Collaborator

marshallward commented Nov 5, 2019

This passed on Travis but the tc2.a OpenMP test failed on my laptop. The first diff is in the MOM_fixed_initialize for CoriolisBu. I am looking into what may have caused it.

Edit: ocean_depth is also bitwise different.

@adcroft adcroft deleted the tc-reconfig branch December 3, 2019 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants