graph-tool Download
graph-tool is released under the GPL. For installation instructions, see the included INSTALL file.
Requirements
You'll need the following in order to build and use graph-tool:
- GCC 4.4 or above.
- The boost libraries.
- Python 2.5 or above.
- The expat library.
- The SciPy python module.
- The Numpy python module.
- The CGAL C++ geometry library.
- Graphviz for graph drawing, with the python bindings enabled (optional).
graph-tool was tested only on GNU/Linux systems, but should also be usable on other systems where the above requirements are available.
Memory requirements for compilation
graph-tool requires large amounts of RAM (>1 GB) during compilation, because it uses lots of template metaprogramming. The supported compiler, GCC, is still not very well optimized for this, which means that even though the program is relatively small (the compiled binary, as of version 1.0, is around 20 MB in size), it will still use up lots of RAM during compilation, specially if optimizations are used (and you do want to use them). See, for instance, GCC bugs 29433 and 12850. If you don't have enough memory, try passing the "--disable-range-filtering" option to the configure script. This will disable some of the filtering functionality of graph-tool, but will save some memory during compilation.
Parallel algorithms
graph-tool can run several of its algorithms in parallel. It makes use of OpenMP to do this, which provides an almost trivial way of converting serial code into parallel code. OpenMP is an extension to the Fortran, C and C++ languages, which uses compiler directives to achieve automatized code parallelization. Moreover, since it uses compiler directives (#pragma in C/C++), it maintains backwards compatibility with compilers which do not support OpenMP, and the code is then compiled cleanly as regular serial code. Thus, support for parallel code in graph-tool is quite optional.
OpenMP must be enabled during compilation, if you want the codes to run in parallel. For this, just pass the option "--enable-openmp" to the ./configure script:
$ ./configure --enable-openmp $ make
Stable Releases (Current version: 2.2.5)
The source code can be downloaded from:
http://downloads.forked.de/graph-tool/graph-tool-2.2.5.tar.bz2
There are binary packages available for the following GNU/Linux distributions:
Debian (sid)
Add the following lines to your sources.list:
deb http://downloads.forked.de/graph-tool/debian/ amd64/
or
deb http://downloads.forked.de/graph-tool/debian/ i386/
Depending on your achitecture. After running apt-get update, the package can be installed with
apt-get install graph-tool
Ubuntu (karmic)
Add the following lines to your sources.list:
deb http://downloads.forked.de/graph-tool/ubuntu/ amd64/
or
deb http://downloads.forked.de/graph-tool/ubuntu/ i386/
Depending on your achitecture. After running apt-get update, the package can be installed with
apt-get install graph-tool
Gentoo
An ebuild is available at:
http://downloads.forked.de/graph-tool/gentoo/graph-tool-2.2.5.ebuild
Latest Development Source Code
We use Git for source revision control and code sharing.
The git public repository can be browsed at:
Development snapshots can also be downloaded in the above URL. The whole tree can be checked out with the following command:
git clone git://git.forked.de/graph-tool
For further instructions on how to use Git, see the documentation.
The git repository is also mirrored at github: http://github.com/count0/graph-tool

