Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Properties
1.Poster TitlePerformance Portability, Embedded Ensembles, and Implicit Methods: Why we love C++ Templates
2.AuthorsAndy Salinger, the Albany code team
3.GroupPerformance
4.ExperimentN/A
5.Poster CategoryFuture Direction
6.Submission Typepresentation, or poster

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 :

  1. Are facilitated by using C++ templates to swap out data types in single common code base

...

  1. , and
  2. Will already exist in ACME v1 within MPAS-Land Ice in the

...

  1. Albany/FELIX velocity solver.