Sunday, November 7, 2021

librsb

librsb is a library for sparse matrix computations featuring the Recursive Sparse Blocks (RSB) matrix format. This format allows cache efficient and multi-threaded (that is, shared memory parallel) operations on large sparse matrices. The most common operations necessary to iterative solvers are available, e.g.: matrix-vector multiplication, triangular solution, rows/columns scaling, diagonal extraction / setting, blocks extraction, norm computation, formats conversion. The RSB format is especially well suited for symmetric and transposed multiplication variants. Most numerical kernels code is auto generated, and the supported numerical types can be chosen by the user at build time. librsb can also be built serially (without OpenMP parallelism), if required.  librsb also implements the Sparse BLAS standard, as specified in the [BLAS Technical Forum] documents.  

This library is dual-interfaced; it supports: a native (`RSB') interface (with identifiers prefixed by `rsb_' or `RSB_'), and a (mostly complete) Sparse BLAS interface, as a wrapper around the RSB interface.  Many computationally intensive operations are implemented with thread parallelism, by using OpenMP.  Thread parallelism can be turned off at configure time, if desired, or limited at execution time.  Many of the computational kernels source code files (mostly internals) were automatically generated.

http://librsb.sourceforge.net/ 

https://www.youtube.com/watch?v=yHejtO1qNEU&list=PLYx7XA2nY5GesARqNMImG3NnX3_bWq-lT&index=27 

PyRSB is a Cython-based Python interface to librsb.

https://github.com/michelemartone/pyrsb 

No comments:

Post a Comment