Conversation
…SM/icon4py into include_exchange_in_advection
…SM/icon4py into include_exchange_in_advection
DropD
left a comment
There was a problem hiding this comment.
Looks good as far as I can tell
…nto further_adv_refac
model/common/src/icon4py/model/common/interpolation/interpolation_attributes.py
Outdated
Show resolved
Hide resolved
…ion_attributes.py Co-authored-by: Jacopo Canton <jacopo.canton@gmail.com>
|
Mandatory Tests Please make sure you run these tests via comment before you merge!
Optional Tests To run benchmarks you can use:
To run tests and benchmarks with the DaCe backend you can use:
To run test levels ignored by the default test suite (mostly simple datatest for static fields computations) you can use:
For more detailed information please look at CI in the EXCLAIM universe. |
|
cscs-ci run distributed |
|
cscs-ci run default |
* main: Further adv refac (#1065)
* merge_bdy_halo_stencils: messed up review updates forgot to delete these forgot to overwrite with these funny names, now get some complaints by pyright CI: make advection and muphys datatests with dace_gpu gating (#1064) update tests pre-commit something like this Further adv refac (#1065) Muphys: performance improvements with GT4Py v1.1.4 (#1009) remove `bdy_halo_c` (#1063)
| test_utils.dallclose(field, field_ref, atol=RBF_TOLERANCES[dim][experiment.name]) | ||
|
|
||
|
|
||
| @pytest.mark.datatest | ||
| @pytest.mark.mpi | ||
| @pytest.mark.parametrize("processor_props", [True], indirect=True) | ||
| def test_distributed_interpolation_lsq_pseudoinv( | ||
| backend: gtx_typing.Backend, | ||
| interpolation_savepoint: sb.InterpolationSavepoint, | ||
| grid_savepoint: sb.IconGridSavepoint, | ||
| experiment: test_defs.Experiment, | ||
| processor_props: decomposition.ProcessProperties, | ||
| decomposition_info: decomposition.DecompositionInfo, | ||
| interpolation_factory_from_savepoint: interpolation_factory.InterpolationFieldsFactory, | ||
| ) -> None: | ||
| parallel_helpers.check_comm_size(processor_props) | ||
| parallel_helpers.log_process_properties(processor_props) | ||
| parallel_helpers.log_local_field_size(decomposition_info) | ||
| factory = interpolation_factory_from_savepoint | ||
| field_ref_1 = interpolation_savepoint.__getattribute__("lsq_pseudoinv_1")().asnumpy() | ||
| field_ref_2 = interpolation_savepoint.__getattribute__("lsq_pseudoinv_2")().asnumpy() | ||
| field_1 = factory.get(attrs.LSQ_PSEUDOINV)[:, 0, :] | ||
| field_2 = factory.get(attrs.LSQ_PSEUDOINV)[:, 1, :] | ||
| test_utils.dallclose(field_1, field_ref_1, atol=1e-15) # type: ignore[arg-type] # mypy does not recognize sliced array as still an array | ||
| test_utils.dallclose(field_2, field_ref_2, atol=1e-15) # type: ignore[arg-type] # mypy does not recognize sliced array as still an array |
There was a problem hiding this comment.
As far as I can tell there's no non-distributed test that uses the LSQ_PSEUDOINV factory (there's a non-distributed that calls compute_lsq_coeffs directly but only with numpy arrays).
It seems like the LSQ_PSEUDOINV factory is currently broken with GPU backends because it hardcodes numpy in a few places where cupy should be used. See e.g. this test job on #1012: https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/5125340235196978/2255149825504675/-/jobs/13296645340#L597.
@nfarabullini would you mind having a look to add a non-distributed test that exercises this?
Further refactoring of àdvection` such that it's up-to-date with coding standards. Refactoring of lsp coeffs into factories