$ git clone https://github.com/TESSEorg/ttg.git
$ cmake -S ttg -B ttg/build -DCMAKE_INSTALL_PREFIX=/path/to/ttg/install [optional cmake args]
$ cmake --build ttg/build
(optional, but recommended): $ cmake --build ttg/build --target check-ttg
$ cmake --build ttg/build --target install
- CMake, version 3.14 or higher
- C++ compiler with support for the C++17 standard, or a more recent standard. This includes the following compilers:
- GNU C++, version 7.0 or higher
- Clang, version 5 or higher
- Apple Clang, version 9.3 or higher
- Intel C++ compiler, version 19 or higher
- one or more of the following runtimes:
While the list of prerequisites is short, note that the runtimes have many more mandatory prerequisites; these are discussed under transitive prerequisites
below.
Also: it is strongly recommended that the runtimes are built as parts of the TTG build process (this requires some of the optional prerequisites, listed below). This will make sure that the correct versions of the runtimes are used.
- Git 1.8 or later: needed to obtain the source code for PaRSEC or MADNESS runtimes
- Boost version 1.66 or later: needed to use TTG with classes serializable by the Boost.Serialization library.
- The Boost.Serialization library is not header-only, i.e., it must be compiled.
- If the Boost package is not detected TTG can download and build Boost as part of its build process; to do that configure TTG with the CMake cache variable
TTG_FETCH_BOOST
set toON
(e.g., by adding-DTTG_FETCH_BOOST=ON
to the CMake executable command line)
see here
- An implementation of Message Passing Interface version 2 or 3, with support for
MPI_THREAD_MULTIPLE
. - a Pthreads library
- (optional) Intel Thread Building Blocks (TBB), available in a commercial or an open-source form
TTG includes several examples that may require additional prerequisites. These are listed here:
- SPMM: (block-)sparse matrix multiplication example
cmake -S /path/to/ttg/source/directory -B /path/to/ttg/build/directory <cmake args>
cmake --build /path/to/ttg/build/directory [--target <check-ttg | install>]
Variable | Default | Description |
---|---|---|
BUILD_TESTING |
ON |
whether target check-ttg and its relatives will actually build and run unit tests |
TTG_EXAMPLES |
OFF |
whether target check-ttg and its relatives will actually build and run examples; setting this to ON will cause detection of several optional prerequisites, and (if missing) building from source |
TTG_ENABLE_TRACE |
OFF |
setting this to ON will enable the ability to instrument TTG code for tracing (see ttg::trace() , etc.); if this is set to OFF , ttg::trace() is a no-op |