GraphMat graph analytics framework
Requirements:
Intel compiler (icpc).
To compile:
do make in the GraphMat/ directory
To run:
set the following environment variables:
export OMP_NUM_THREADS=[ number of cores in system ]
export KMP_AFFINITY=scatter
use numactl for NUMA (multi-socket) systems e.g.
numactl -i all bin/PageRank < graph file >
numactl -i all bin/BFS < graph file > < start vertex >
You can convert an edge list file to GraphMat compatible format using the graph_converter utility. GraphMat works on a binary graph format.
To convert from a text file with 3 white space separated columns (src, dst, edge_value) to GraphMat format, do
bin/graph_converter --selfloops 1 --duplicatededges 1 --inputformat 1 --outputformat 0 --inputheader 0 --outputheader 1 --nvertices < nvertices > < input text file > < output graphmat file >
You can remove selfloops and duplicatededges (when multiple edges with same src and dst are found, only one is retained) by changing their values in the command line from 1 to 0.
If you use GraphMat in your work, please cite the following paper:
Narayanan Sundaram, Nadathur Satish, Md Mostofa Ali Patwary, Subramanya R Dulloor, Michael J. Anderson, Satya Gautam Vadlamudi, Dipankar Das, Pradeep Dubey:
GraphMat: High performance graph analytics made productive. Proceedings of VLDB 2015, volume 8, pages 1214 - 1225.
PDF available at www.vldb.org/pvldb/vol8/p1214-sundaram.pdf
More documentation coming soon. For questions, please email [email protected]