The Indigo2 benchmark suite contains hundreds of parallel implementations of 6 graph algorithms written in CUDA, OpenMP, and C++ Threads.
The codes, small inputs, and scripts to run the codes (as well as scripts to download larger inputs) are available on GitHub at https://github.com/burtscher/Indigo2Suite/.
If you use Indigo2, please cite the following publication.
Y. Liu, N. Azami, A. Vanausdal, and M. Burtscher. "Choosing the Best Parallelization and Implementation Styles for Graph Analytics Codes: Lessons Learned from 1106 Programs." Proceedings of the 2023 ACM/IEEE International Conference for High Performance Computing, Networking, Storage, and Analysis. Article 92, pp. 1-14. November 2023.
Summary: Indigo2 is a suite of 1106 versions of 6 key graph algorithms that are based on 13 parallelization and implementation styles as well as meaningful combinations thereof. The paper analyzes these irregular codes on a set of input graphs from different domains to determine which styles should be used, under what circumstances, and with which other styles they should be combined for best performance. The paper suggests a number of programming guidelines for developing efficient parallel programs.
This work has been supported in part by the National Science Foundation under Grant No. 1955367 as well as by an equipment donation from NVIDIA Corporation.