forked from jaak-s/macau
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #152 from ExaScience/dev/docs
Documentation updates
- Loading branch information
Showing
5 changed files
with
41 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,81 +1,67 @@ | ||
Compilation of SMURFF | ||
===================== | ||
|
||
Note: the easiest way to install SMURFF is not to build it yourself. Install the binary | ||
Note: the easiest way to install SMURFF is not to build it yourself. Install the binary | ||
`Conda <https://conda.io>`__ package: | ||
|
||
.. code:: bash | ||
conda install -c vanderaa smurff | ||
When compiling SMURFF yourself, you have 3 options: | ||
|
||
|
||
Compilation using `conda build` | ||
------------------------------- | ||
|
||
Conda build works on Linux, macOS and Windows. Execute | ||
|
||
.. code:: bash | ||
conda build smurff | ||
conda build -c conda-forge -c vanderaa smurff | ||
in the `conda-recipes` directory. | ||
|
||
Compilation using CMake | ||
----------------------- | ||
Compile the binary standalone binary `smurff` using CMake | ||
--------------------------------------------------------- | ||
|
||
This will not create the `smurff` python package. | ||
|
||
C++ Requirements | ||
~~~~~~~~~~~~~~~~ | ||
|
||
- CMake 3.6 or later | ||
- Eigen3 version 3.3.7 or later | ||
- HighFive 2.2. from https://github.com/BlueBrain/HighFive/ | ||
- CMake 3.15 or later | ||
- Eigen3 version 3.3.7 or later | ||
- HighFive 2.9. from https://github.com/BlueBrain/HighFive/ | ||
- Boost 1.5x or newer | ||
|
||
Python Requirements | ||
~~~~~~~~~~~~~~~~~~~ | ||
|
||
As in setup.py: | ||
|
||
install_requires = [ 'numpy', 'scipy', 'pandas', 'scikit-learn', 'h5sparse-tensor' ], | ||
setup_requires = ['setuptools_scm', 'pybind11' ], | ||
CMake Options | ||
~~~~~~~~~~~~~ | ||
|
||
Compile using setup.py | ||
~~~~~~~~~~~~~~~~~~~~~~ | ||
- Build type switches: | ||
- `-DCMAKE\_BUILD\_TYPE` - Debug/Release | ||
|
||
Running | ||
setup.py install | ||
- Algebra library: you can specify | ||
- `-DENABLE\_BLAS` - ON/OFF: BLAS acceleration for Eigen is enable by default. | ||
- `-DBLA_VENDOR` allows you to specify which BLAS implementation to use. | ||
|
||
will run CMake to configure, compile and install SMURFF. | ||
Extra arguments to CMake can be passed with | ||
- Other: look in the top-level `CMakeFile.txt` for more options. | ||
|
||
setup.py --extra-cmake-args <...> install | ||
|
||
or by setting the `CMAKE_ARGS` environment variables. | ||
Python package using pip | ||
------------------------ | ||
|
||
CMake Options | ||
~~~~~~~~~~~~~ | ||
The python package is built using scikit-build-core <https://github.com/scikit-build/scikit-build-core>, | ||
which calls CMake to compile the C++ extension. Hence you can simply run: | ||
|
||
- Build type switches: | ||
- CMAKE\_BUILD\_TYPE - Debug/Release | ||
.. code:: bash | ||
- 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 <https://software.intel.com/en-us/mkl-linux-developer-guide-using-the-single-dynamic-library>`_. | ||
pip install . | ||
- Python: | ||
- ENABLE\_PYTHON | ||
Linux and macOs Specific | ||
~~~~~~~~~~~~~~~~~~~~~~~~ | ||
Linux and macOs Specific | ||
------------------------ | ||
|
||
Have a look in `ci/ <../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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
ipython | ||
sphinx>=1.4 | ||
sphinx_rtd_theme | ||
ipykernel | ||
nbsphinx | ||
pygments>=2.6.1 | ||
|