Skip to content

Slow get_expected_radiance() with MPAS (redundant calls to find cellID?) #995

@lkugler

Description

@lkugler

Hi,
We found that get_expected_radiance() in obs_def_rttov_mod.f90 is slow with MPAS but not WRF.
In my tests, the model_interpolate() block L3603 - L3920 takes ~80% of the walltime per observation (0.56-0.94s) while the call to rttov_direct() (the RTTOV function) is < 0.001 sec per obs.

GETLEVELDATA : do i = 1,numlevels

Can it be that the search is performed again for every variable and vertical level that is requested?
At least in WRF and MPAS, the cell index is the same for all vertical layers and variables, so it only needs to be computed once for e.g. 20 variables x 100 layers.

! do this exactly once.

Could you take a look at this? Thanks a lot!
Lukas

No issue in WRF

For comparison, I timed perfect_model_obs() with MPAS on derecho. 200 obs took 3 minutes and the interpolation block (= bottleneck) took 0.81 (+/- 0.005) seconds per observation (each obs at the same location for simplicity). On the Vienna cluster, PMO with WRF and 200 obs took 11s. Single process in both cases, but WRF and MPAS were different domains.

Error Message

None.

Which model(s) are you working with?

MPAS_atm

Version of DART

I compared (freshly compiled) v10.1.0 and v11.17.0.
For 200 observations, timings are 3:55 and 3:25 respectively (min:sec) on derecho.

Have you modified the DART code?

No

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions