HiCMA
Hierarchical Computations on Manycore Architectures
|
The Hierarchical Computations on Manycore Architectures (HiCMA) library aims to redesign existing dense linear algebra libraries to exploit the data sparsity of the matrix operator. Data sparse matrices arise in many scientific problems (e.g., in statistics-based weather forecasting, seismic imaging, and materials science applications) and are characterized by low-rank off-diagonal tile structure. Numerical low-rank approximations have demonstrated attractive theoretical bounds, both in memory footprint and arithmetic complexity. The core idea of HiCMA is to develop fast linear algebra computations operating on the underlying tile low-rank data format, while satisfying a specified numerical accuracy and leveraging performance from massively parallel hardware architectures.
Installation requires CMake
of version 3.2.3 at least. To build HiCMA, follow these instructions:
git clone git@github.com:ecrc/hicma
cd hicma
PKG_CONFIG_PATH
should be set. git submodule update --init --recursive
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install/ -DHICMA_USE_MPI=ON
make -j
make docs
make install
Add line
export PKG_CONFIG_PATH=/path/to/install:$PKG_CONFIG_PATH
to your .bashrc file to use HiCMA as a library.
Now you can use pkg-config
executable to collect compiler and linker flags for HiCMA or run the binaries under /path/to/install/timing/
.
There are scripts/build.sh
and scripts/build-nompi.sh
scripts in the repository to build the whole software stack.
timing/time_zpotrf_tile.c performs the following operations:
timing/time_zgemm_tile.c performs the following operations: