This repository contains the source code for the Reordering and Compression for Hypergraph Processing project.
Below is a detailed description of the function of each directory and file.
The experimental datasets are obtained from http://www.cs.cornell.edu/~arb/data/
This directory contains files to generate various hypergraph storage formats.
- compressUnordering.cpp: Generates the hypergraph storage format for a one-dimensional compressed array, without vertex or hyperedge reordering.
- reorderingHyperedges.cpp: Generates the hypergraph storage format for one-dimensional compressed arrays, with hyperedge reordering and vertex non-reordering.
- reorderingVertices.cpp: Generates a compressed one-dimensional array hypergraph storage format, with vertex reordering and without hyperedge reordering.
- reorderingVerticesHyperedges.cpp: Generates the hypergraph storage format for compressed one-dimensional array, with both vertices and hyperedges reordering.
This directory contains program dependencies files.
- adjacencyList.h: Hypergraph adjacency list storage format. Algorithms for executing the adjacency list storage format.
- oneDimensionalArray.h: Hypergraph one-dimensional array storage format. Algorithm used for executing the one-dimensional array storage format.
This directory contains the application of the hypergraph algorithm. There are several algorithms available, including: BFS, DFS, SCC, NQ, PR, kcore, SSSP, and MIS.
- XXXAdjList.cpp: Algorithm for adjacency list storage format.
- XXXOneDimArray.cpp: Algorithm for One-Dimensional Array Storage Format.
This directory contains a file for measuring algorithm compression efficiency.
- measureMemory.cpp: Measure algorithm compression efficiency.
- Set the file path for the files inside the
genDataStorage
folder. - Change to the
genDataStorage
directory usingcd genDataStorage
. - Run
make
. - Execute the corresponding executable file.
- Set the file path for the files inside the
includes
folder. - Execute the makefile for the main program.
- Execute the corresponding program to measure its execution time.