The MultiThreaded Graph Library (MTGL) is a collection of algorithms and data structures designed to run on shared-memory platforms such as the massively multithreaded Cray XMT, or, with support from the  Qthreads library, on Symmetric Multiprocessor (SMP) machines or multi-core workstations. The software and API is modeled after the Boost Graph Library, though the internals differ in order to leverage shared memory machines.

The MTGL is copyrighted and released under a Berkeley open source license. If you are a developer, you may get the most recent unreleased version of the MTGL (after logging in) by clicking the "Browse Source" tab at the top of this page, then clicking on "trunk," and finally clicking on the "zip archive" link. See below for the MTGL 1.0 release, which will have various improvements and will not include deprecated/experimental code.


There is not yet any canonical paper on the MTGL. However, the library was first introduced in the paper Software and Algorithms for Graph Queries on Multithreaded Architectures. Please cite this paper for MTGL use in research.

Software Tutorials


  • 3/5/2012 Version 1.1.1 has been released. Get it here.


  • Jon Berry - library founder ( jberry at )
  • Greg Mackey - lead developer ( gemacke at )