Time integrators are at the core of every time-dependent simulation application. Additionally, many applications require the solution of linear algebraic systems of equations, whether through the use of an implicit approach for integrating the time dependence or for solution of steady-state systems. The SUNDIALS-hypre project is enhancing the SUNDIALS library for integrating differential systems in time by using state-of-the-art adaptive and additive time integration technologies and the hypre library for solving large systems of linear equations, both for use on exascale systems.
Scientific and engineering computing often requires the application of sophisticated mathematical techniques to solve systems of equations that reflect or model something of interest in the real world. Part of the magic of mathematics is that the same or similar mathematical techniques can work with systems of equations for wildly disparate physical phenomena. Well-designed libraries make these techniques (many of which are non-trivial to implement) available for use by scientists and engineers in many fields. These libraries have a significant impact on application portability and performance as the algorithms and software implementation act as the gateway middleware that dictates what hardware can be used and how efficiently an application can use its capabilities.
The Exascale Computing Project (ECP) SUNDIALS and hypre mathematical libraries are two well-designed, robust libraries that have been implemented, and verified using modern software techniques. They give scientists and engineers the numerical methods they need to solve problems efficiently on a plethora of state-of-the-art hardware on systems ranging from laptops to exascale supercomputers.
Scientists often define equations in terms of the rate of change of something with respect to time, where time is considered the independent variable. Such problems are expressed as ordinary differential equations (ODEs) where the term ordinary is used to indicate functions of one independent variable and the derivatives of those functions. The SUNDIALS project focuses on delivering adaptive time-stepping methods for dynamical systems which permit bigger time steps when timescales are longer and smaller time steps when timescales are shorter. The ability to adapt the timestep can both increase accuracy and deliver a faster time to solution.
This contrasts with another broad class of equations referred to as partial differential equations (PDEs) which are used to describe change with respect to more than one independent variable. Scientists use the high-performance preconditioners and solvers in the hypre library to solve large, sparse linear systems of equations on massively parallel computers. This versatile library with a well-designed API can be used to solve many types of linear systems. Common examples include finite-element and finite-difference methods that are applied to scalar PDEs (i.e., one unknown per grid point) or systems of PDEs that contain multiple variables per grid point.
The SUNDIALS and hypre libraries give users the ability to exploit the performance and power efficiency of accelerators to run experiments on laptops, large and ensemble production runs on tera- and peta-scale systems, and when needed, at scale on the largest exascale systems. This efficiency can reduce runtime and gives users in industry and the general HPC community the ability to run on the most cost- and power-efficient hardware platform. The broad hardware support gives organizations the ability to pick and choose the best platform that suits their needs and budget, be it on-premises or in the cloud.
Through community efforts and good software design, the SUNDIALS and hypre mathematical libraries continue their proven track record in supporting application developers through generations of increasingly more performant and scalable hardware platforms — usually without requiring application code modifications. With ECP support, these libraries have been modernized and are now accelerator and exascale capable.
Many exascale applications depend on efficient time integrators and linear solvers yet do not use state-of-the-art algorithms and cannot easily take advantage of algorithmic advances. Through flexible and efficient libraries, applications can more easily take advantage of new algorithms and more efficient implementations that will allow for easier adaptations to exascale architectures. The SUNDIALS-hypre project is enhancing the SUNDIALS and hypre libraries, which collectively deliver time integrators, nonlinear solvers, linear solvers, and preconditioners for use in scientific applications running on exascale systems.
SUNDIALS provides adaptive multistep and multistage time integrators designed to evolve systems of ordinary differential equations and differential algebraic equations. This suite also includes both Newton and fixed-point nonlinear solvers and scaled Krylov methods with hooks for user-supplied data structures and solvers. The SUNDIALS team is adding capabilities to support the required programming models for AMD and Intel GPU architectures. Additionally, the team is adding interfaces to new linear solvers that work with these programming models and that provide the solvers necessary for use in Exascale Computing Project (ECP) applications that rely on SUNDIALS for their systems integration. Additionally, the SUNDIALS team is adding a performance assessment layer and integrating with the Caliper package for greater performance understanding, as well as integrating with GitLab to ensure regular testing with high performance systems. Furthermore, the SUNDIALS team is continuing work with ECP applications in the integration of SUNDIALS into their applications, as well as assessing and improving performance within ECP applications on pre-exascale and exascale systems.
Hypre is a software library of high-performance preconditioners and solvers for the solution of large, sparse linear systems of equations on massively parallel computers. The library includes parallel multigrid solvers for structured and unstructured grid problems and features conceptual interfaces, which include a structured interface, a semi-structured interface, and a traditional linear-algebra-based interface. The hypre team continues to port the library to various GPU architectures, assesses the performance of these ports, examines performance bottlenecks, and develops new algorithms or algorithm variants that are better suited for pre-exascale and exascale architectures. The team also collaborates with various application developers to integrate hypre into their codes and optimize hypre’s performance.