Dbcsr

Jul 20, 2023

Distributed Block Compressed Sparse Row matrix library

libDBCSR or DBCSR for short is a sparse matrix library designed to efficiently perform sparse matrix matrix multiplication, among other operations. It is MPI and OpenMP parallel, and can exploit accelerators. It is developed as part of CP2K , where it provides core functionality for linear scaling electronic structure theory. A general overview of the library has been published. A discussion of recent developments, in particular GPU work, has appeared as a chapter in ‘Electronic Structure Calculations on Graphics Processing Units’, John Wiley and Sons, ISBN 9781118661789, and is available as a preprint. The use of one-sided MPI and a 2.5D algorithm to reduce communication is shown to be effective for sparse matrix matrix multiplication in this manuscript. libDBCSR is made available for integration in other projects, see the github webpage.



Checkout these related ports:
  • Zn_poly - C library for polynomial arithmetic
  • Zimpl - Language to translate the LP models into .lp or .mps
  • Zegrapher - Software for plotting mathematical objects
  • Zarray - Dynamically typed N-D expression system based on xtensor
  • Z3 - Z3 Theorem Prover
  • Yices - SMT solver
  • Yacas - Yet Another Computer Algebra System
  • Xtensor - Multi-dimensional arrays with broadcasting and lazy computing
  • Xtensor-python - Python bindings for xtensor
  • Xtensor-io - Xtensor plugin to read/write images, audio files, numpy npz and HDF5
  • Xtensor-blas - BLAS extension to xtensor
  • Xspread - Spreadsheet program for X and terminals
  • Xppaut - Graphical tool for solving differential equations, etc
  • Xplot - X11 plotting package
  • Xlife++ - XLiFE++ eXtended Library of Finite Elements in C++