ECL-CC is a connected components graph algorithm. The CUDA implementation thereof is quite fast. It operates on graphs stored in binary CSR format. Converters to this format as well as several already converted graphs can be found here.
Click on ECL-CC_11.cu and ECLgraph.h to download the CUDA code or on ECL-CC_11.cpp and ECLgraph.h to download the OpenMP C++ code (with g++ intrinsics). Click on one of the links below for a description of ECL-CC. Note that ECL-CC is protected by the license included in the beginning of the code.
The CUDA code can be compiled as follows:
nvcc -O3 -arch=sm_35 ECL-CC_11.cu -o ecl-cc
The OpenMP C++ code can be compiled as follows:
g++ -O3 -march=native -fopenmp ECL-CC_11.cpp -o ecl-cc
To compute the connected components of the file
J. Jaiganesh and M. Burtscher. "A High-Performance Connected Components Implementation for GPUs."
Proceedings of the 2018 ACM International Symposium on High-Performance Parallel and Distributed Computing. June 2018.
[pdf] [pptx] [video]
This work has been supported in part by the National Science Foundation under Grant No. 1406304 as well as by equipment donations from Nvidia Corporation.