Quickstart

Dependencies

Htool-DDM’s Python interface is based on pybind11 and Htool-DDM C++ header-only library. It requires

  • C++ compiler with standard 14,

  • Python 3,

  • MPI implementation for distributed parallelism,

  • BLAS, to perform algebraic dense operations,

  • pybind11 to define the python interface,

  • cmake to build the python interface,

  • HPDDM and its dependencies (BLAS, LAPACK) to use iterative solvers and DDM preconditioners,

Note

Htool-DDM C++ header-only library, HPDDM and pybind11 are git submodules of Htool-DDM python interface. Thus, users do not need to install them.

It also requires the following python packages

  • mpi4py for using MPI via Python,

  • numpy for basic linear algebra in Python.

And optionnally,

Compilation

First, you need to clone this repository with its submodules:

git clone --recurse-submodules https://github.com/htool-ddm/htool_python.git && cd htool_python

In the folder of this repository, do:

pip install .

In case you need to pass cmake variables, you can use

CMAKE_ARGS="-DCMAKE_VAR=VALUE1 -DCMAKE_VAR_2=VALUE2" pip install .

Hierarchical compression

Coefficient generator

Build a hierarchical matrix

Use a hierarchical matrix

DDM Solver