Parallel implementations of graph algorithms using Go. Parallelization is performed both on CPU (using goroutines) and GPU (using CUDA).
Parallel implementation of Pagerank. This was done as part of the project for the course "Heterogeneous Parallelism" (UE18CS342) at PES University.
Details can be found in the report slides and the README.
Summary:
- Fixed partitioning based parallelization using goroutines
- Tested and benchmarked on 5 datasets of varying sizes and characteristics (number of nodes, edges, average degree, density, etc.)
- Up to 4.2x speedup on the Stanford Web graph (on a system with 4 cores, 8 threads)
TODO: rough implementation can be found in the cuda_pr
branch.