tamaas/ee68e10030dcarchive/legacy_mpi
archive/legacy_mpi vs master
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
b7fa37a3b7a3 | anciaux | code in place but not working | Dec 18 2017 | ||||
56c73d50b3ec | anciaux | test ok but not for dimension 1 | Dec 15 2017 | ||||
1c6e308391c0 | anciaux | fully working distribution and loop/reduce | Dec 15 2017 | ||||
3a32a987f380 | anciaux | renaming a file | Dec 15 2017 | ||||
d0e969ce80ae | anciaux | generalize test (not working at the moment) | Dec 15 2017 | ||||
9614f93afd40 | anciaux | reductions are working in mpi | Dec 14 2017 | ||||
5d4d5c48c3e0 | anciaux | adding the test for mpi loops and the gitignore | Dec 14 2017 | ||||
63f2a04e3716 | anciaux | first commit for the mpi version | Dec 14 2017 |
/
README.md
Dependencies
Core
FFTW3_OMP, swig3, python(2|3), numpy, 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
For the first build, you should compile Criterion, a library used for tests:
git submodule update --init --recursive cd third-party/Criterion mkdir build cd build cmake .. cmake --build . cd ../../..
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
For a list of all compilation options:
scons -h
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.
To edit build configuration, simply edit the build-setup.conf at the repository root.
Build the doxygen
scons build_doc=true
Coding
Python
Tamaas is mainly used through the python interface. An example can be found in examples/new_contact.py
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, checkout the gpu branch and use the following
scons backend=cuda