Skip to content

Latest commit

 

History

History
78 lines (50 loc) · 2.11 KB

meson_build_instructions.md

File metadata and controls

78 lines (50 loc) · 2.11 KB

RecFMM build instructions with Meson

Requirements

Build system

The updated recFMM port can be built using the Meson build system with the Ninja backend. These can be installed via pip:

pip install meson
pip install ninja

For more information on installing Meson and Ninja, refer to their respective websites.

Compiler with Cilk support

The recFMM library supports shared-memory multi-threaded computations using the Cilk C-language extensions and reducer hyperobjects. To do that, you must use a Cilk-supported C compiler. RecFMM has been tested with the following C compilers:

  • [OpenCilk][opencilk-home] 1.0 (based on clang 10.0.1)
  • GNU gcc 7.5.0
  • Intel icc 19.1.2.254

We recommend using the newly released [OpenCilk][opencilk-home] compiler, as Cilk support via the legacy Cilk Plus platform has been removed or deprecated in other compilers.

A Fortran compiler is also required. RecFMM has been tested with the following Fortran compilers:

  • GNU gfortran 7.5.0, 9.3.0
  • Intel ifort 19.1.2.254

Memory allocation

Efficient memory allocation is supported via the Intel TBB scalable allocator library, tbbmalloc, if that is available in your system.

Building recFMM

Configuration

CC=<c-compiler> FC=<fortran-compiler> meson path/to/build/directory

By default, Meson looks for dependencies using pkg-config. To specify a custom TBB installation directory, use

CC=<c-compiler> FC=<fortran-compiler> meson -Dtbb_dir=path/to/tbb/directory path/to/build/directory

For additional configuration options, refer to the Meson built-in options web page.

Compilation

meson compile -C path/to/build/directory

Testing

meson test -C path/to/build/directory

Contributors

Algorithm and library development:

  • Bo Zhang
  • Jingfang Huang
  • Nikos P. Pitsianis
  • Xiaobai Sun

Meson build config, OpenCilk support, bug fixes:

  • Alexandros-Stavros Iliopoulos