PSCTOOLKIT: Parallel Sparse Computation Toolkit
Please login to view abstract download link
In this talk we want to present a new software framework for solving large and sparse linear systems on current hybrid architectures, from small servers to high-end supercomputers, embedding multi-core CPUs and Nvidia GPUs at the node level, named “PSCTOOLKIT: Parallel Sparse Computation Toolkit”. The framework has a modular structure and is composed of three main components: PSBLAS, AMG4PSBLAS, and PSBLAS-EXT which separate basic functionalities for managing distributed sparse matrices and executing some sparse matrix computations involved in iterative Krylov projection methods (PSBLAS), possibly exploiting multi-threading and CUDA-based programming models (PSBLAS-EXT), from the functionalities for setup and application of different types of one-level and multi-level algebraic preconditioners (AMG4PSBLAS). We will discuss the main novelty of the library both in terms of new numerical methods and algorithms and in terms of implementation design patterns, also showing comparisons with the state of the art in numerical linear solvers for sparse matrices. Furthermore, to demonstrate the usability of the library, we will show some use cases related to the solution of linear systems deriving from the physics-driven models in the renewable energy production sector. We will specifically focus on the solution of the pressure equation for the Navier-Stokes equation in a large eddy simulation of wind flows and on the solution of the Richards equation for liquid infiltration in the soil in the vadose regime. For these application cases, the attention will mostly be directed to node-level efficiency and algorithmic and implementation scalability. That is, on the performances obtainable in weak and strong scalability regimes. These two applications will also allow us to demonstrate the ease of integration of the library with other software. That is, the possibility of using the data structures and algorithms implemented in the toolkit through purely algebraic interfaces, i.e., which work only on the elements of matrices and vectors without imposing demands on the data distribution used by the application to which they are interfaced.