Page Properties | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Abstract
We will touch on three avenues for performance improvements. The code development for each can be greatly simplified by use of flexibility built into the C++ programming language.
- Achieving performance portability across numerous current and future architectures is a challenge. The Kokkos programming model allows for a → A single implementation that can achieve good on-node parallel performance for diverse architectures by capitalizing on abstracting out the flexibility of data structure allocation and access.
- Climate projections need to be informed by ensembles of runs to establish the probabilistic. While launching ensembles , which can be run as an outer loop is trivially-parallel, and achieve perfect scalability. → Far superior speed-ups can be gained by embedding the ensembles as an inner loop instead.
- Implicit methods have promise in some climate components to achieve better scalability for high resolution and regionally-refined discretizations. → Analytic Jacobian matrices can be calculated efficiently and accurately with little code development time using automatic differentiation.
All three of these potentially-transformative capabilities (1) are enabled throughout :
- Are facilitated by using C++ templates to swap out data types in single common code base
...
- , and
- Will already exist in ACME v1 within MPAS-Land Ice in the
...
- Albany/FELIX velocity solver.