Realization of popular Graph Algorithms using C and OpenMP. The base algorithms are taken from GreenMarl[1] example algorithms. Apart from these we have also created a few utility graph algorithms
i. communities
ii. conduct
iii. pagerank
iv. sssp
v. triangle_counting
Utility Algorithms
i. addEdgeWeights: Add random edge weights to an unweighted directed graph to output a weighted directed graph. maxLength(Default value 100) and random seed (Default value 0) can be given as user inputs.
ii. preprocess: Preprocess the input graph to generate an isomer optimized for cache performance.
iii. graphequivalence: given tow isomers and a vertex map verifies the equivalance of the two graphs.
iv. graphprop: Extracts the graph properties from the input graph.
v. train*#*.c: Some random graph kernels.
inputGraphs: a set of real world and generated graphs in EDGE_LIST[1] format. We only handle EDGE_LIST format.
The input graphs are either downloaded from SNAP data set[2] or RMAT graphs generated using SNAP[3] or random graphs generated using GreenMarl graph gen program[1].
***** skipped due to size **** Please contact for set of input graphs.
SNAP data set graphs:
- amazon.edge
- higgs.edge
- patent.edge
- pokec.edge
- pokecr.edge
- rhiggs.edge
- roadNet-CA.edge
- rpatent.edge
- web-BerkStan.edge
- wiki-topcats.edge
RMAT Graphs:
- rmatv1e5e1e7.edge
- rmatv7e5e5e6.edge
- rrmatv1e5e1e7.edge
- rrmatv7e5e5e6.edge
Random Graphs:
- rm1e6u8e6.edge
- rm1e6u35e6.edge
See GMLICENCE for GreenMarl Licence. See LICENCE.md for our licence.
Run ./configure.sh before running make.
make modes: i. make ii. make intermediate iii: make debug
To change chunk size make SET_CHUNKSIZE=
Place Holder header: /include/energylib.h
You can replace the function in energylib to track power and energy consumption of the kernel. please see [4] for more details.
- SPRNG: Scalable parallel Random Number Generator: http://www.sprng.org Download and add to the home folder
[1] https://github.com/stanford-ppl/Green-Marl
[2] https://snap.stanford.edu/data/
[3] SNAP: A General-Purpose Network Analysis and Graph-Mining Library
[4] https://github.com/jkrishnavs/Energymonitorlibrary
- Jyothi Krishna V S, IIT Madras ([email protected])
- Rupesh Nasre, IIT Madras