Installation

Dependencies

  • a C++ compiler that supports OpenMP and C++11 standard (or newer).

  • GNU Make

  • BLAS

  • LAPACK

  • FFTW3

  • GFortran

Notes:

  • GNU and Intel compilers have been tested. Compilers that use LLVM, such as clang, are not supported yet.

  • We recommend to install OpenBLAS. The standard build also includes a full LAPACK library.

  • There is no Fortran code in exafmm-t, but gfortran is required in the autotools macros that help configure BLAS and LAPACK libraries.

You can use the following commands to install these dependencies on Ubuntu:

$ apt-get update
$ apt-get -y install libopenblas-dev libfftw3-dev gfortran

Modify these commands accordingly if you are running other Linux distributions.

Install exafmm-t

This section is only necessary for the users who want to use exafmm-t in C++ applications. Python users can skip to next section: Install exafmm-t’s Python package.

exafmm-t uses autotools as the build-system. Go to the root directory of exafmm-t and configure the build:

$ cd exafmm-t
$ ./configure

By default, the configure script will use the most advanced SIMD instruction set available on the CPU and enable double precision option. Use ./configure --help to see all available options.

After configuration, you can compile and run exafmm-t’s tests with:

$ make check

at the root directory of the repo.

Optionally, you can install the headers to the configured location:

$ make install

Install exafmm-t’s Python package

exafmm-t relies on pybind11 to generate Python bindings. It requires Python 2.7 or 3.x. To install the Python package, you need first to install OpenBLAS (as the choice of BLAS library), in addition to the aforementioned dependencies.

Then install exafmm-t to your Python environment using pip:

$ pip install git+https://github.com/exafmm/exafmm-t.git