Performance Portability, Embedded Ensembles, and Implicit Methods

Wednesday, May 6, 2015 - 07:00
Add to Calendar

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. 1) Achieving performance portability across numerous current and future architectures is a challenge. A single implementation can achieve good on-node parallel performance for diverse architectures by abstracting out the data structure allocation and access. 2) Climate projections need to be informed by ensembles of runs, which can be run as an outer loop and achieve perfect scalability. Far superior speed-ups can be gained by embedding the ensembles as an inner loop instead. 3) 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 facilitated by using C++ templates to swap out data types in single common code base, and 2) Will already exist in ACME v1 within MPAS-Land Ice in the Albany/FELIX velocity solver.