New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
2020WP/HPC-04_mcastril_Mixed_Precision_implementation – NEMO
wiki:2020WP/HPC-04_mcastril_Mixed_Precision_implementation

HPC-04_mcastril_Mixed_Precision_implementation

Last edition: Wikinfo(changed_ts)? by Wikinfo(changed_by)?

The PI is responsible to closely follow the progress of the action, and especially to contact NEMO project manager if the delay on preview (or review) are longer than the 2 weeks expected.

  1. Summary
  2. Preview
  3. Tests
  4. Review

Summary

Action HPC-04_mcastril_Mixed_Precision_implementation
PI(S) Miguel Castrillo, Oriol Tintó
Digest To implement mixed precision in NEMO OCE
Dependencies WP 2008 HPC-13_Mixed_precision_study-13.1_Assessment (completed)
Branch source:/NEMO/branches/2020/dev_r12512_HPC-04_mcastril_Mixed_Precision_implementation
Previewer(s) Mike Bell, Sébastien Masson
Reviewer(s) Mike Bell, Sébastien Masson
Ticket #2364

Description

The use of mixed precision can provide a substantial speed-up for models in which the numerical precision has been overengineered. This speedup can come as a result of improvements in both computing and memory efficiency.

This action is a follow up from HPC-08_Mixed_precision in 2018 WP. It was linked to two tickets (#2039 and #2040), that were respectively devoted to the assessment and implementation of Mixed Precision in NEMO. After the evaluation stage has been completed (together with the preparation of the necessary tools to do the mentioned assessment and the implementation), this year will be time for the implementation.

Oriol Tintó (oriol.tinto@…) is the Principal Investigator for the whole task. ECMWF is a collaborator for this phase and will have a principal role on the validation in coupled simulations.

The analysis procedure is documented in the following publication:

http://dx.doi.org/10.5194/gmd-12-3135-2019

Implementation

The implementation will follow the steps below:

a) BSC developing a prototype based on NEMO 4.0.1; Further testing done at ECMWF with this version. At this stage the prototype is ready to test.

b) Provide demonstrator for NEMO ST (how? => Scientific Publication, Branch in NEMO rep.) (BSC)

c) Prepare tools for automation to make sure that all the workflow that goes from identifying sensitive variables to a final implementation can be reapplied to any version of the code. (BSC, April 2020)

d) Provide a mixed-precision branch at the NEMO SVN starting after the merging party. (BSC, April 2020)

e) Provide scientific evaluation and progress idealised test cases motivated by single precision evaluation and beyond (throughout 2020) (ECMWF); (Discussion on intercomparison test cases at Commodore Workshop, January 2020).

f) By end 2020, ECMWF anticipates to have a working version of NEMO + SI3 in mixed precision for DA, medium-range and extended-range ocean prediction in forced and coupled mode. Potential changes will be included into the Mixed-precision branch. (ECMWF+BSC task).

Documentation updates

...

Preview

...

Tests

a) When the option is not activated the code should pass all the sette test and should not display any difference in results nor computational performance.

b) When the option is activated there will be many differences that should be appreciable:

  • The implementation must significantly reduce run time and memory fingerprint. The impact is expected to be bigger with heavy workloads, being reduced when the run time start to be constrained by communication.
  • The results won't be bit-to-bit indentical to double-precision runs, although the runs in mixed-precision must be reproducible.
  • Due to the non-linear nature of the model, differences in the results are expected. Tracer conservation or other magnitudes can be measured in order to ensure that the differences remain below an acceptable threshold.

Review

...

Last modified 4 years ago Last modified on 2020-06-02T17:23:40+02:00