tamaas-public/4ecfb2213b97master
/
README.md
Dependencies
Core
FFTW3_OMP, python(2|3), numpy, thrust, boost (preprocessor), g++/clang++ with C++11 and OpenMP support
Cuda
Cuda 8.0 or higher. Compute capacity 3.5.
Doc
Doxygen, Mercurial
Build
First time building
You should first clone the git submodules that are dependencies to tamaas (pybind11 and googletest, optional):
git submodule update --init --recursive
The build system uses SCons. In order to construct the library you should hit:
scons
And to speedup the process you can do:
scons -j 6
In order to clean the build
scons -c
In order to compile in debug
scons build_type=debug
Indeed the default was
scons build_type=release
In order to make the compilation more verbose
scons verbose=true
Tamaas relies on thrust for parallelism. You can change the thrust backend using the appropriate option:
scons backend=cuda
For a list of *all* compilation options:
scons -h
You can edit the file build-setup.conf to change the available compilation options.
You can customize a few compilation variables:
- CXX changes the compiler
- CXXFLAGS adds flags to the compilation process
For example:
- scons CXX=icpc compiles with the intel C++ compiler
- CXXFLAGS=-mavx2 scons adds the -mavx2 flag (which enables some Intel instructions) to the compilation process
If the CXX variable is defined in your environment, scons will take it as a default compiler.
Build the doxygen
Make sure you have Mercurial and Doxygen installed (and graphviz for the nice graphs).
scons build_doc=true
Coding
Python
Tamaas is mainly used through the python interface. An example can be found in examples/new_contact.py. The example examples/new_adhesion.py shows how one can derive a Tamaas (C++) class in python.
C++
TODO: update the example
Paralellism
Tamaas features shared-memory paralellism with OpenMP. The number of threads can be controlled via the OMP_NUM_THREADS environment variable or the omp_set_num_thread() function in the OpenMP API.
Cuda
To compile Tamaas with Cuda support use the following
scons backend=cuda