The aggregation repository contains a set of algorithms for grouping vertices of DAGs coming from loop-carried dependencies. Load-balance Level Coarsening (LBC) is one of the aggregation algorithms.
Hybrid Aggregation (HDagg) is another algorithm that can operate on chordal and non-chordal DAGs directly.
The algorithms in this repository can be used within code generators or libraries.
First following items should be installed:
homebrew install libomp
. You canbrew install llvm
which support OpenMP natively.Then build Aggregation, using the following:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
You can always set -DCMAKE_CXX_COMPILER=
and -DCMAKE_C_COMPILER=
to use
a different compiler. For example:
cmake -DCMAKE_CXX_COMPILER=/usr/local/Cellar/gcc\@9/9.3.0_2/bin/g++-9 -DCMAKE_C_COMPILER=/usr/local/Cellar/gcc\@9/9.3.0_2/bin/gcc-9 ..
The example directory shows how to call LBC API and iterate over the created partitioning. For more examples on how LBC is used for making loops with sparse dependencies parallel.