E3SM-Project / E3SM-Project/E3SM

New ZM sensitive to opimization

Open
#5,702 12 comments 0 reactions 0 assignees View on GitHub
Atmosphere
Dominant language
Fortran
Stars
441
Forks
481
Avg merge
4d 7h
Merged PRs (30d)
33

Description

The new ZM features in https://github.com/E3SM-Project/E3SM/pull/5478 are sensitive to optimization on some machines/compilers. Sensitivity is seen both with new features on and off.

With new features **OFF**:
On anlgce/gnu (gcc 11.1): Have to reduce from -O2 to no optimization on `zm_conv.F90` to avoid ICE. See https://github.com/E3SM-Project/E3SM/pull/5478/commits/fe44772cbe4deb313106a3a8f81156da4d1ae2d0

On pm-cpu/gnu (gcc 11.2): Have to add `zm_conv.F90` to NOOPT to ensure BFB with master even when features are turned off. Testing against baselines: answers changed for all cases with EAM EXCEPT those with MMF.

When new features are **ON**:
pm-cpu/nvidia ERS test failed. ERS_D.ne4pg2_oQU480.F2010.pm-cpu_nvidia.eam-zm_enhancements. A fix was made.

On chrysalis/intel: have to reduce opt for two files (`zm_conv.F90` and `zm_microphysics.F90`) from -O3 to -O2 or RESTOM was changed significantly (compared to a baseline on compy)
Testing against baselines no change to answers?

These problems were found in testing before PR #5478 was merged to master.

Contributor guide

Open the contributing guide

Research direction

Start with zm_conv.F90 and zm_microphysics.F90, then review PR #5478 and commit fe44772cbe4deb313106a3a8f81156da4d1ae2d0. Reproduce the optimization-sensitive behavior on the named compiler and machine configurations, including the ERS test and baseline comparisons. Done means the affected configurations build and preserve expected answers without unexplained optimization changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
fortran
Domain
compilers, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.