ECL-SCC is a parallel algorithm for detecting strongly connected components in directed graphs. The CUDA implementation thereof is quite fast, especially on mesh graphs. It operates on graphs stored in binary CSR format. Converters to this format can be found here.
Click on ECL-SCC_10.cu and ECLgraph.h to download the CUDA code. Alternatively, the code and sample inputs are also available on github. See the paper listed below for a description of ECL-SCC. Note that ECL-SCC is protected by the license included in the beginning of the code.
The code can be compiled as follows:
nvcc -O3 -arch=sm_70 ECL-SCC_10.cu -o ecl-scc
To compute the SCC of the file
G. Alabandi, W. Sands, G. Biros, and M. Burtscher. "A GPU Algorithm for Detecting Strongly Connected Components."
Proceedings of the 2023 ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis. November 2023.
This work has been supported in part by the Department of Energy, National Nuclear Security Administration under Award Number DE-NA0003969 as well as by equipment donations from NVIDIA Corporation.