Massively Parallel Log Graphs (MPLG)


This work uses a compressed in-memory representation of the main graph data structure to speed up the processing and to enable larger graphs to fit in the GPU's memory. Please see the paper cited below for more details.

All of the following codes operate on graphs stored in binary CSR format. Converters to this format as well as several already converted graphs can be found here.

Click on the following links to download the original and MPLG-enhanced codes. Note that the codes are protected by the license included in the beginning of each file.

ECLgraph.h
Connected components: ecl-cc.cu and mplg-ecl-cc.cu
Graph coloring: ecl-gc.cu and mplg-ecl-gc.cu
Maximal independent sets: ecl-mis.cu and mplg-ecl-mis.cu

For example, the MPLG-enhanced connected components code can be compiled as follows:

nvcc -O3 -arch=sm_70 mplg-ecl-cc.cu -o mplg-ecl-cc

To run the code on the internet.egr input, enter:

ulimit -s unlimited
./mplg-ecl-cc internet.egr

Publication

N. Azami and M. Burtscher. "Compressed In-memory Graphs for Accelerating GPU-based Analytics." 12th SC Workshop on Irregular Applications: Architectures and Algorithms. November 2022. [pdf] [pptx]

This work has been supported in part by the National Science Foundation under Grant No. 1955367 and by equipment donations from NVIDIA Corporation.

Official Texas State University Disclaimer