Compilation of SMURFF

Note: the easiest way to install SMURFF is not to build it yourself. Install the binary Conda package:

conda install -c vanderaa smurff

Compilation using conda build

Conda build works on Linux, macOS and Windows. Execute

conda build smurff

in the conda-recipes directory.

Compilation using CMake

C++ Requirements

Python Requirements

As in setup.py:

install_requires = [ ‘numpy’, ‘scipy’, ‘pandas’, ‘scikit-learn’, ‘h5sparse-tensor’ ], setup_requires = [‘setuptools_scm’, ‘pybind11’ ],

Compile using setup.py

Running
setup.py install

will run CMake to configure, compile and install SMURFF. Extra arguments to CMake can be passed with

setup.py –extra-cmake-args <…> install

or by setting the CMAKE_ARGS environment variables.

CMake Options

  • Build type switches:
    • CMAKE_BUILD_TYPE - Debug/Release
  • Algebra library switches (select only one):
    • When no switches are specified, CMake will try to find any LAPACK and BLAS library on your system.
    • ENABLE_OPENBLAS - ON/OFF (should include openblas library when linking. openblas also contains implementation of lapack called relapack)
    • ENABLE_MKL - ON/OFF: tries to find the MKL single dynamic library.
  • Python:
    • ENABLE_PYTHON

Linux and macOs Specific

Have a look in ci/ for Docker build scripts and for Linux+macOS wheel scripts. These scripts should give you a good idea on how to compiler on an Ubuntu and macOS system.

Windows Specific

Work for a vcpkg-based build is in progress.