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

Use threading to speed up MERRA2 aerosol interpolation and NoahMP initialization #507

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Apr 2, 2021

PR Checklist

  • Ths PR is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR. Please consult the ufs-weather-model wiki if you are unsure how to do this.

  • This PR has been tested using a branch which is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR

  • An Issue describing the work contained in this PR has been created either in the subcomponent(s) or in the ufs-weather-model. The Issue should be created in the repository that is most relevant to the changes in contained in the PR. The Issue and the dependent sub-component PR
    are specified below.

  • If new or updated input data is required by this PR, it is clearly stated in the text of the PR.

Description

This PR only updates the submodule pointer for ccpp-physics for the changes described in NCAR/ccpp-physics#605.

Issue(s) addressed

Fixes NCAR/ccpp-physics#608

Testing

The updated code was tested against the existing code with one or more OpenMP threads, and the results are b4b identical. Timing improves for the aerosol interpolation step for large setups, for example for C768L127 I see a factor of 2 speedup for the aerinterpol step in the time_vary group when using four threads. The difference is not gigantic over all, but every little bit helps.

Regression tests will be run against the existing baselines on all tier-1 platforms:

  • hera.intel
  • hera.gnu
  • orion.intel
  • cheyenne.intel
  • cheyenne.gnu
  • gaea.intel
  • jet.intel
  • wcoss_cray
  • wcoss_dell_p3

Dependencies

NCAR/ccpp-physics#605
NOAA-EMC/fv3atm#268
#507

AnningCheng-NOAA and others added 6 commits March 5, 2021 15:18
* upstream/develop:
  update MOM6 to GFDL 20210224 main branch commit (ufs-community#439)
  Add GNU and Cheyenne Support to Automated RT (ufs-community#444)
  Move Noah MP init to CCPP and update Noah MP regression tests, ice flux init bug fix in CCPP (ufs-community#425)
  Feature/rt automation (ufs-community#403)
  Update ccpp-physics. Make RRTMGP thread safe (ufs-community#418)
  Update regression tests from GFSv15+Thompson to GFSv16+Thompson, include "Add one regional regression test in DEBUG mode. (ufs-community#419)" (ufs-community#421)
  UGWP v0 v1 combined (ufs-community#396)
  add optional mesh in MOM6; add dz_min and min_seaice as configurable variables for coupled model (ufs-community#399)
  updates FMS to 2020.04.01 (ufs-community#392)
  Move LSM vegetation lookup tables into CCPP, clean up RUC snow cover on ice initialization (remove IPD step 2)  (ufs-community#407)
  Update CMEPS for HAFS integration; add datm and coupled-model tests on Gaea (ufs-community#401)
  Remove legacy gnumake build from fv3atm and NEMS, remove legacy Python 2.7 support, rename v16beta to v16 and RT updates (ufs-community#384)
  MOM6 bugfixes, GFDL update, update CDMBGWD settings; fix for restart reproducibility (without waves) when USE_LA_LI2016=True, sign error on fprec passed to ocean, GFDL update, resolution dependent cdmbgwd settings (ufs-community#379)
  dycore options to add zero-gradient BC to reconstruct interface u/v and change dz_min as input (ufs-community#369)
  Update develop from NOAA-GSL: RUC ice, MYNN sfclay, stochastic land perturbations (ufs-community#386)
  update cpl gfsv16 tests, rrtmgp fix and bug fixes in cmeps (ufs-community#378)
  point fv3 to EMC develop branch (ufs-community#377)
  Remove IPD steps 3 and 5 (ufs-community#357)
  Update CMEPS  (ufs-community#345)
  Implementation of CCPP timestep_init and timestep_final phases (ufs-community#337)
  Remove unnecessary SIMD instruction sets for Jet, first round of cleanup in rt.conf, initialize cld_amt to zero for regional runs (dycore) (ufs-community#353)
  add frac grid input, update and add additional cpld tests (ufs-community#354)
  Add checkpoint restarts for ufs-cpld (ufs-community#342)
  Update the format of rt.conf (ufs-community#349)
  Remove IPD (step 1) (ufs-community#331)
  Feature/ww3update (ufs-community#334)
  Replace old regional SDF with FV3_GFS_v15_thompson_mynn (ufs-community#333)
  Update modules with hpc-stack v1.1.0 (ufs-community#319)
  Regression test log for PR ufs-community#323 for jet.intel (ufs-community#336)
  RRTMGP and Thompson MP coupling (ufs-community#323)
  Add 2 new tests for DATM-MOM6-CICE6 application (ufs-community#332)
  Add optional bulk flux calculation in ufs-datm (ufs-community#266)
  Final-final GFS v16 updates / restart reproducibility bugfixes (ufs-community#325)
  Updates to build for JEDI linking/control, add wcoss2 (ufs-community#295)
  Update CICE, Move regression test input outside baseline directory (ufs-community#270)
  Feature/update mom6 and retain b4b results for 025x025 resolution (ufs-community#290)
  Update for Jet, bug fixes in running with frac_grid=T and GFDL MP, and in restarting with frac_grid=T  (ufs-community#304)
  Updates to stochastic_physics_wrapper (ufs-community#280)
  Update develop from gsd/develop 2020/11/20: Unified gravity wave drag, updates to other GSL physics (ufs-community#297)
  Fix to allow quilting with non-factors for layout (ufs-community#250)
  rt update (ufs-community#261)
* upstream/develop:
  Updatetemplate; Fix model slowness when using threading; Update WW3 for porting and threading issues (ufs-community#383)
  update MOM6 to GFDL 20210308 main branch commit (ufs-community#458)
  Regional inlinepost (ufs-community#364)
  correct benchmark diag_tables for coupled model configurations; move bm_ic directory out of inputdata directory; use aws ec2 for CI test; auto-rt fixes (ufs-community#426)
@climbfuji climbfuji marked this pull request as ready for review April 2, 2021 16:31
@climbfuji climbfuji changed the title Threading aerosol interp noahmp init Use threading to speed up MERRA2 aerosol interpolation and NoahMP initialization Apr 2, 2021
@junwang-noaa
Copy link
Collaborator

junwang-noaa commented Apr 9, 2021

@climbfuji Does this PR requires new/updated input data? Also does it change results?

@junwang-noaa junwang-noaa added the Waiting for Reviews The PR is waiting for reviews from associated component PR's. label Apr 9, 2021
@climbfuji
Copy link
Collaborator Author

@climbfuji Does this PR requires new/updated input data? Also does it change results?

No, it doesn't. I didn't add the label, but said so in the description above:

The updated code was tested against the existing code with one or more OpenMP threads, and the results are b4b identical.

1 similar comment
@climbfuji
Copy link
Collaborator Author

@climbfuji Does this PR requires new/updated input data? Also does it change results?

No, it doesn't. I didn't add the label, but said so in the description above:

The updated code was tested against the existing code with one or more OpenMP threads, and the results are b4b identical.

@climbfuji climbfuji added the No Baseline Change No Baseline Change label Apr 9, 2021
@junwang-noaa
Copy link
Collaborator

Thanks. I was confused about the checkbox "If new or updated input data is required by this PR, it is clearly stated in the text of the PR."

Copy link
Collaborator

@junwang-noaa junwang-noaa left a comment

Choose a reason for hiding this comment

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

Need to update to the develop branch before the commit process starts

junwang-noaa pushed a commit that referenced this pull request Apr 15, 2021
…2 threading (#520)

* changed .gitmodules to point to merra2  fv3atm
* Update .gitmodules and submodule pointer for fv3atm for code review and testing
* update submodule pointer for fv3atm
* Update regression test baseline date in tests/rt.sh; run-ci
* RT JOBS PASSED: hera.gnu. Log file uploaded.
* RT JOBS PASSED: gaea.intel. Log file uploaded.
* RT JOBS PASSED: hera.intel. Log file uploaded.
* RT JOBS PASSED: orion.intel. Log file uploaded.
* Regression test logs for wcoss_dell_p3 and wcoss_cray
* Regression test logs for cheyenne.gnu
* Regression test logs for cheyenne.intel
* Regression test log for jet.intel
* Revert change to .gitmodules and update submodule pointer for fv3atm
Co-authored-by: anning.cheng <anning.cheng@noaa.gov>
Co-authored-by: Brian Curtis <brian.curtis@noaa.gov>
@climbfuji
Copy link
Collaborator Author

This was merged as part of #520, but didn't get flagged as merged automatically because we do squashed merges in the ufs-weather-model.

@climbfuji climbfuji closed this Apr 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
No Baseline Change No Baseline Change Waiting for Reviews The PR is waiting for reviews from associated component PR's.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Speed up MERRA2 aerosol interpolation using threading
3 participants