Optimizing Math Libraries to Prepare Applications for Exascale Computing

By Scott Gibson

This episode of Let’s Talk Exascale takes a brief look at the xSDK4ECP and hypre projects within the Software Technology research focus area of the US Department of Energy’s Exascale Computing Project (ECP).

Ulrike Meier Yang of Lawrence Livermore National Laboratory

Ulrike Meier Yang of Lawrence Livermore National Laboratory

The extreme-scale scientific software development kit (xSDK) is an ecosystem of independently developed math libraries and scientific domain components. The xSDK is centered on improving common-build infrastructure, software quality, and sustainability as well as library interoperability.

In accomplishing those objectives, a set of community policies consisting of common-sense software rules is used, such as avoiding name space conflicts and maintaining regression test suites. hypre is a parallel linear solvers and preconditioners library focused on multigrid methods to achieve highly scalable efficient performance. Different interfaces—structured and unstructured—provide different challenges. The hypre project team develops new algorithms or variants of multigrid methods to enable solutions to application problems.

Guest on the latest episode of the podcast, Ulrike Meier Yang of Lawrence Livermore National Laboratory, is principal investigator of the xSDK4ECP project and leads hypre’s ECP effort. Her expertise spans more than three decades in numerical algorithms, particularly linear system solvers, parallel computing, high-performance computing, and scientific software design.

xSDK and hypre are integrally connected to ECP applications.

Concerning xSDK, ECP applications require many different math libraries to build together and be executed in combination—name space and versioning issues are examples [of incompatibilities that xSDK community policies help to overcome],” Yang said. “Linear systems occur in many ECP applications and can take a lot of compute time. This requires efficient solvers, which means we need to enable hypre to run on exascale computers.

The increased number of libraries that exascale will need presents challenges. “The libraries are harder to build in combination, involving many variations of compilers and architectures, and require a lot of testing for new xSDK releases,” Yang said. “We have to increase interoperabilities between libraries, and that requires more testing. Additionally, dealing with different runtime libraries for the various libraries can be very difficult. To help users and to perform testing, we are generating example codes demonstrating interoperability.”

And then there are the heterogeneous architectures to contend with. “Sparse solvers are not necessarily well suited for GPUs,” Yang said. “This includes algebraic multigrid methods with coarser smaller levels and complicated setup components. Also, the variety of different architectures, often requiring different programming models, makes it hard to port. This is different from the past, in which porting was comparatively easier.”

As the xSDK4ECP project moves forward, it aims to increase membership across ECP and deal with the increasing number of libraries. “We will work with application teams to ensure proper build and execution,” Yang said. “A new effort will examine the use of multiprecision in math libraries. The idea is that using lower precision can improve times because it will involve fewer flops and save storage, but we need to examine the effects on algorithm accuracy and convergence of iterative algorithms.”

Collaboration is advancing math libraries. “ECP is an exciting but extremely challenging project,” Yang said. “It has brought application teams and library developers together. On one hand, application teams see math library products they previously didn’t know about that can help their applications run faster; on the other hand, the math library developers see their products used and can respond to the needs of applications through optimization and the addition of new features.”