DiscoPoP Setup
Prerequisites
- LLVM/clang version 11
- Python version 3.6 or greater
Setup
git clone git@github.com:discopop-project/discopop.git
cd discopop
mkdir build
Build libraries and install Python modules
cd build
cmake .. <CMAKE_FLAGS>
make
cd ..
where <CMAKE_FLAGS>
can consist of any combination of the following flags and commonly used CMAKE_FLAGS:
Environment configuration
-DUSE_LLVM_VERSION=<version>
– Use a specific Version of LLVM-DLLVM_DIST_PATH=<llvm_base_dir>
– Use a specific LLVM installation by specifiying the locationProfiling configuration
-DDP_PTHREAD_COMPATIBILITY_MODE=[0|1]
– If your application uses PThreads, please specify this flag to serialize the calls to the DiscoPoP runtime functions. Note, however, that this can negatively influence the runtime of the profiling.-DDP_NUM_WORKERS=<int>
– Specify the number of worker threads available for the dependency analysis during profiling. Default:3
worker threads.0
can be used to disable the creation of additional threads for the analysis.-DDP_HYBRID_PROFILING=[0|1]
– Enbale hybrid profiling. Default:1
.-DDP_MEMORY_REGION_DEALIASING=[0|1]
: Enable or disable the generation of dependency de-aliasing information. Reduces potential false positive parallelization suggestions, but increases the profiling overhead.-DDP_STACK_ACCESS_DETECTION=[0|1]
: Enable or disable stack dependency detection. Enabling will reduce false positive dependences, but increase the profiling overhead. This flag only has an effect on the results, if-DDP_HYBRID_PROFILING=0
.
Development and debugging
-DDP_RTLIB_VERBOSE=[0|1]
– Enable verbose output during profiling.-DDP_INTERNAL_TIMER=[0|1]
– Enable timing of runtime library functions.
Testing the installation
To test the installation, it is possible to execute the provided set of unit tests.
python -m unittest -v