Communication Avoiding Numerical Dense Matrix Computations
Switch branches/tags
Nothing to show
Clone or download


##Communication Avoiding Numerical Dense Matrix Computations


This repository contains studies for algorithms to perform matrix multiplication and dense matrix factorizations, currently: LU, QR, and the symmetric eigensolve.


Some version of BLAS and LAPACK required for any build. LAPACK version 3.40 or higher required to build QR codes.

Build Instructions:

Running ./configure will generate a file with build parameters and a Makefile. See the configure file for build options. Profiling may be activated with flag -DPROFILE (add to DEFS in After running configure, running 'make' will build the library and place it into lib/libCANDMC.a. Specific contents may be built individually,

  • library of all routines 'CANDMC'
  • library of all shared routines required for use of any individual algorithmic library component 'CANShared'
  • library for matrix multiplication algorithms 'CANMM'
  • library for LU factorization algorithms 'CANLU'
  • library for QR factorization algorithms 'CANQR'
  • library for symmetric eigensolve algorithms 'CANSE'
  • all unit tests 'test', executables appear in bin/tests/
  • all benchmarks 'bench', executables appear in bin/benchmarks/


Code is available under a two-clause BSD license.

Repository created and maintained by Edgar Solomonik (ETH Zurich). Please contact with any questions or inquiries.

Thanks to the following developers, snippets of whose code are used in a few places of this repository.

  • Grey Ballard (Sandia Laboratory)
  • Mathias Jacquelin (Lawrence Berkeley National Laboratory)
  • Devin Matthews (University of Texas at Austin)