Project

General

Profile

Feature #10221

MOGUNTIA and KPP

Added by Philippe Le Sager over 1 year ago. Updated about 1 year ago.

Status:
In Progress
Priority:
Normal
Assignee:
-
Category:
merge request
Target version:
-
Start date:
07/02/2018
Due date:
% Done:

80%


Description

We want to have the Moguntia and the KPP produced code (for both CB05 and MOGUNTIA) available by default in the trunk. This is currently developed by Stelios in the branches/moguntia branch of the repository.

ebi-vs-kpp_budget_comparison_2006.txt View (22.3 KB) Philippe Le Sager, 09/20/2018 12:28 PM

ebi-vs-kpp_comp_with_observations_overall.pdf (334 KB) Philippe Le Sager, 09/20/2018 12:28 PM

ebi-vs-kpp_WINTER_2006.pdf (44.5 MB) Philippe Le Sager, 09/20/2018 12:28 PM

ebi-vs-kpp_SUMMER_2006.pdf (44.7 MB) Philippe Le Sager, 09/20/2018 12:28 PM

cb05-vs-moguntia-comp_with_observations_overall.pdf (335 KB) Philippe Le Sager, 09/20/2018 01:17 PM

cb05-vs-moguntia-WINTER_2006.pdf (39.8 MB) Philippe Le Sager, 09/20/2018 01:17 PM

cb05-vs-moguntia-SUMMER_2006.pdf (39.8 MB) Philippe Le Sager, 09/20/2018 01:17 PM

History

#1 Updated by Philippe Le Sager over 1 year ago

Before merging, KPP-CB05 and KPP-MOGUNTIA must be benchmarked.

#2 Updated by Philippe Le Sager over 1 year ago

About kpp_cb05:
After code review and run tests, Stelios and I agreed to move all KPP related code from proj/kpp_cb05 to proj/cb05 using with_kpp flags.

About moguntia:
Code runs, unless I compiled it with Intel -fpe0 flag to catch floating point exceptions. I then got a division by zero right at the beginning in M7. Still investigating.

#3 Updated by Philippe Le Sager over 1 year ago

About moguntia:
Code runs, unless I compiled it with Intel -fpe0 flag to catch floating point exceptions. I then got a division by zero right at the beginning in M7. Still investigating.

This is resolved. See #10451.

#4 Updated by Philippe Le Sager over 1 year ago

I have been working on the moguntia branch. I've updated the code in stages (easier to follow and undo if needed):
- sync moguntia branch with the trunk (r884),
- cleanup the handling of "with_m7" in proj/cb05 (r886),
- fix the chemistry in proj/cb05 (r887)
- merge proj/kpp_cb05 into proj/cb05 (r888)
- minor fixes (r889, r890)

I did some short testruns with runtime checks:
  • proj/cb05 : works with or without M7, and with or without KPP (4 cases)
  • proj/moguntia (and top of proj/cb05) : works with M7 and KPP only (1 case)

Thus everything is working as expected (technically speaking). One thing must be clarified before starting the benchmark runs. There are two comments left in ebischeme.F90 about reaction bugs:

in l.1610

    +rrv(ivec,kno3_aer)*yv(ivec,ino3)    !csm BUG: No NO3 destruction

and in l.1702
    +rrv(ivec,khypo2ho2)*yv(ivec,ihypro2)*yv(ivec,iho2)  !csm BUG: No HO2 destruction

But these have not changed in a long time. Should they be removed?

#5 Updated by Stelios Myriokefalitakis over 1 year ago

Philippe Le Sager wrote:

Before merging, KPP-CB05 and KPP-MOGUNTIA must be benchmarked.

Stelios:
The bugs in the ebischeme have been corrected in the kpp_cb05 proj in moguntia branch (see comment csm BUG corrected in ebischeme.F90).
In short:
+rrv(ivec,kc3h7o2ho2)*yv(ivec,ic3h7o2)& !csm BUG corrected: kc3h7o2ho2 to HO2 destruction added
+rrv(ivec,khypo2ho2)*yv(ivec,ihypro2)& !csm BUG corrected: missing khypo2ho2 reaction added
and
+rrv(ivec,kno3_aer)& !csm: missing NO3 destruction in aerosols added

These corrections should be merged in the cb05 code.

#6 Updated by Philippe Le Sager over 1 year ago

These are taken care of in r887. And I guess they are related to the two other comments that start with "!csm BUG: No ... destruction" I mentioned in #10221-4 above?

#7 Updated by Stelios Myriokefalitakis over 1 year ago

Stelios:

Yes, these are related to the two previous comments. So I think now they can be removed.

#8 Updated by Philippe Le Sager about 1 year ago

Benchmarks runs are finished. Postprocessing yet to be done, but here is already the performance of the model on the ECMWF cca platform (intel compiler) for the three configurations considered.

All runs were done with 3x45 cores, in production mode (i.e. no runtime check a/k/a check-all). The two tables below, one for the spinups and one for the actual benchmark runs, give the performance of the model for three considered configurations. The difference between the two cases is the absence of output (mmix, budgets, timeseries) in the spinup. The slowdown and cost increase are calculated with respect to the CB05-EBI configuration (3rd column) and CB05-KPP (last column).

SYPD: Simulated Years Per Day
CHPSY: Core Hours Per Simulated Year
SD: slowdown in %
CI: cost increase in %

Spinup configs SYPD (CHPSY) SD (CI) SD (CI)
cb05-EBI 2.02 (1607) - -
cb05-KPP 1.88 (1723) 7 (7) -
cb05-KPP + moguntia 1.61 (2017) 20 (26) 14 (17)
Run configs SYPD (CHPSY) SD (CI) SD (CI)
cb05-EBI 1.91 (1696) - -
cb05-KPP 1.76 (1844) 8 (9) -
cb05-KPP + moguntia 1.55 (2096) 19 (24) 12 (14)
Conclusion is straightforward:
  • KPP slowdowns the code by 8% (and costs 8% more) when compared to EBI
  • Moguntia chemical mechanism and its 34 extra tracers slowdown the code by an additional 13%, and are 15% more expensive than CB05-KPP (last column)
  • Altogether, Moguntia is 20% slower and 25% more expensive than CB05-EBI

#9 Updated by Philippe Le Sager about 1 year ago

Comparison of EBI and KPP

A benchmark comparison of the EBI and KPP solvers for the CB05 chemical scheme can be found in the attached files (annual budget, seasonal averages of all tracers, comparisons with observations). From a quick look at the results:

  • Seasonal averages of model tracers
    • Differences are generally small, but they are some noticeable ones: CH3O2H, increase of CO in south hemisphere, H2O2, HCOOH, and a small increase overall in O3.
    • For some reason the inert tracer RN222 is not handle similarly, but not a concern for the chemistry per se.
  • Comparison with observations:
    • No significant change in O3.
    • More CO in the south hemisphere, as clearly shown in the comparisons with CMDL stations and MOZAIC flights.
    • Difference in CH2O (see comparisons with SCIAMACHY): KPP gives more total columns of CH2O than EBI.

#10 Updated by Philippe Le Sager about 1 year ago

Comparison of CB05 and MOGUNTIA

A benchmark comparison of the CB05 and MOGUNTIA chemical schemes is available. Both schemes are resolved with the KPP solver. Seasonal averages of all tracers and comparisons with observations are attached. (No budget comparison possible with the current postprocessing code.) There are quite large differences (e.g. HNO3), and I will let the more chemistry inclined among us comment. But a quick look at O3 and CO, and I notice:

  • decrease in O3, which improves comparison with several sondes measurements (most but not all).
  • increase in summer NH CO, and decrease in SH CO.

#11 Updated by Stelios Myriokefalitakis about 1 year ago

Philippe Le Sager wrote:

Comparison of CB05 and MOGUNTIA

A benchmark comparison of the CB05 and MOGUNTIA chemical schemes is available. Both schemes are resolved with the KPP solver. Seasonal averages of all tracers and comparisons with observations are attached. (No budget comparison possible with the current postprocessing code.) There are quite large differences (e.g. HNO3), and I will let the more chemistry inclined among us comment. But a quick look at O3 and CO, and I notice:

  • decrease in O3, which improves comparison with several sondes measurements (most but not all).
  • increase in summer NH CO, and decrease in SH CO.

Great!!! We have to check it species by species...
However, from a first glance, we have to fix the RN222, PB210 for both CB05-KPP and MOGUNTIA and O3s for the MOGUNTIA code.

Also available in: Atom PDF