This Repository holds the source code discussed in our paper "Distance Closures: Unifying Search- and Lookup-based Shortest Path Speedup Techniques".
Clone with recursive:
git clone --recursive https://github.com/fmi-alg/dgc.git
cmake -B build -S ./cpp -DCMAKE_BUILD_TYPE=Release -DOPTIMIZE_ULTRA=TRUE
cmake --build build
cmake -B build -S ./cpp -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE -DSSERIALIZE_INLINE_IN_LTO_ENABLED=TRUE -DCMAKE_BUILD_TYPE=Release
cmake --build build
Note: gcc-10/g++-10 is needed to compile sserialize.
Sample data can be obtained from here.
build/dgc boost -i <file>
build/dgc export-oa -i <file>
build/dgc oa -i data.sserialize-oa
taskset 0x1 ./build/dgc -j 8 ...
This pins the process to core 1 (hence a single "real" thread) whereas 8 threads are spawned. If a thread waits for io then the OS will switch to an other one.