GrPPI  0.2
Generic and Reusable Parallel Pattern Interface
Install Notes

Building GrPPI

Building the library

GrPPI is a header-only library. Consequently no build process is required for the library itself.

However, GrPPI includes CMake scripts for supporting the following actions:

To setup the build scripts we recommend that you create an out-of-source directory under the GrPPI root directory:

1 mkdir build
2 cd build

Then, you may generate the scripts by just doing:

1 cmake ..
2 make

Important Note: Be sure to invoke make once before modifying you CMakeCache.txt file. This will allow CMake to compile and setup dependent libraries (e.g. GoogleTest).

Building the unit tests

To build the unit tests, you need to set configuration variable GRPPI_UNIT_TEST_ENABLE to ON. You can do so be using the CMake GUI or by typing:

1 cmake .. -DGRPPI_UNIT_TEST_ENABLE=ON

Then, you can build the unit tests by typing:

1 make

Disabling specific GrPPI back ends

You may want to disable specific back ends. GrPPI offers specific variables to control this issue:

Running the unit tests

To run all the unit tests you can do:

1 make test

or alternatively:

1 ctest

Performing coverage analysis

To perform a coverage analysis type:

1 make coverage

The coverage HTML reports are generated under unit_tests/mycov/index.html.

Documentation generation

Documentation generation is disabled by default. However, if you wish to build the documentation yourself, you may enable the option:

1 cmake .. -DGRPPI_DOXY_ENABLE=ON
2 make

This will generate a doc directory under your build tree with the generated documentation.

Note: You will need a doxygen in your system to make use of this option. You will also need graphviz.

Building the sample programs

GrPPI includes a number of example programs under directory samples. To build all samples you may use:

1 cmake .. -DGRPPI_EXAMPLE_PROGRAMS_ENABLE=ON
2 make

Installing GrPPI

If you want to install GrPPI in your system you can select to install in the default directory:

1 sudo make install

This will install the header files under /usr/local/include/grppi

You can specify a different install directory to CMake:

1 cmake .. -DCMAKE_INSTALL_PREFIX=path/to/folder
2 make install

Supported Compilers

For using GrPPI you need a C++14 compliant compiler.

GrPPI has been tested with the following compilers:

If you want to use a different compiler than the default one, you can specify it by doing:

1 cmake .. -DCMAKE_CXX_COMPILER=clang++
2 make

Required Libraries

Miminal support of GrPPI requires the following libraries.

Additional Libraries

In order to use the Intel Threading Building Blocks (TBB) back-end you need to install the following library:

Unit tests and coverage analysis

For unit testing GrPPI uses the GoogleTest framework. However you do not need to install it yourself. The framework is locally downloaded and compiled in your build tree to ensure that the right version is used. For more details see section (building).

If you want to run unit tests and perform coverage analysis you will need: