Software-Facilitated Performance Improvements

1.Poster TitlePerformance Portability, Embedded Ensembles, and Implicit Methods
2.AuthorsAndy Salinger, the Albany code team
3.GroupPerformance
4.ExperimentN/A
5.Poster CategoryFuture Direction
6.Submission Typeposter
7.Poster Link

ACME_AllHands2015_Poster_Salinger.pdf

ACME_AllHands2015_Poster_Salinger.pdf

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. → A single implementation can achieve good on-node parallel performance for diverse architectures by abstracting out the data structure allocation and access. 
  • 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.
  • 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.