PETSc is a widely used software library for the scalable solution of linear, nonlinear, and ODE/DAE systems and computation of adjoints (sometimes called sensitivities) of ODE systems. Specifically, we are developing and extending PETSc/TAO in two crucial directions: simulations (that require algebraic solvers and/or time integrators) at the exascale and optimization at the exascale utilizing coupled ensembled simulations.
Under Thrust 1 of our work we are focusing on three topics: partially matrix-free scalable solvers that can efficiently use many-core and GPU-based systems, reduced synchronization algorithms that can scale to larger concurrency than solvers with synchronization points, and performance and data structure optimizations for all the core data structures to better utilize many-core and GPU-based systems as well as provide scalability to the exascale.
Under Thrust 2, we are focusing on libraries for optimization, sensitivity analysis, and uncertainty quantification at the exascale. This work includes implementation of a new scalable library, called libEnsemble, for coordinating the concurrent evaluation of dynamic ensembles of calculations. The library uses massively parallel resources to accelerate the solution of design, decision, and inference problems and to expand the class of problems that can benefit from increased concurrency levels.