Skip to content

narayanan2004/GraphMat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphMat graph analytics framework

Build Status

Note: This is a major update from GraphMat v1.0 (single node and distributed). Please see changelog for details.

Requirements:

  • Intel compiler (icpc) + Intel MPI (mpiicpc + mpi libraries)

(or)

  • GCC + MPICH (Other MPI libraries not tested)

  • Boost serialization library (links to libboost_serialization)

To compile with Intel compiler + Intel MPI :

make

To compile with gcc + MPICH:

make MPICXX=mpic++ CXX=g++

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 if you are running 1 MPI rank on all the sockets e.g.

mpirun -np <NRANKS> numactl -i all bin/PageRank < graph file >
mpirun -np <NRANKS> numactl -i all bin/BFS < graph file > < start vertex >

To compile and run tests:

GraphMat uses Catch, a C++ based testing framework.

git submodule init
git submodule update
make test

To run all the tests with a single MPI rank,

./testbin/test 

Tests are also runnable in distributed mode with multiple ranks,

mpirun -np <NRANKS> ./testbin/test

You can also do ./testbin/test -? to list all the options available

Reading graph files to use with GraphMat:

See wiki page - https://github.com/narayanan2004/GraphMat/wiki/Reading-graph-files

References:

If you use GraphMat in your work, please cite the following papers:

  • 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.

  • Michael J. Anderson, Narayanan Sundaram, Nadathur Satish, Md Mostofa Ali Patwary, Theodore L. Willke and Pradeep Dubey, "GraphPad: Optimized Graph Primitives for Parallel and Distributed Platforms," 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS), Chicago, IL, USA, 2016, pp. 313-322.

Paper URL:

More documentation coming soon. For questions, please email [email protected]