| Version 123 (modified by tiago peixoto (2), 12 months ago) (diff) |
|---|
Table of Contents
Downloading and installing graph-tool
graph-tool is released under the GPL. For general installation instructions, please see the included INSTALL file.
Requirements
You'll need the following in order to build and use graph-tool:
- GCC, version 4.4 or above (version 4.7 is recommended). For MacOS X, the clang compiler is recommended.
- The boost libraries, version 1.42 or above.
- Python, version 2.7 or above (including version 3).
- The expat library.
- The SciPy python module.
- The Numpy python module.
- The CGAL C++ geometry library, version 3.5 or above.
- The Graphviz packaged for graph drawing, with the python bindings enabled (optional).
- The cairomm, pycairo and matplotlib libraries, used for graph drawing (optional).
graph-tool was tested only on GNU/Linux and MacOS X 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 2.2, 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-graph-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 Release (Current version: 2.2.17)
The source code can be downloaded from:
http://downloads.skewed.de/graph-tool/graph-tool-2.2.17.tar.bz2
There are binary packages available for the following GNU/Linux distributions:
Debian and Ubuntu
Add one of the following lines to your sources.list,
deb http://downloads.skewed.de/apt/squeeze squeeze main deb-src http://downloads.skewed.de/apt/squeeze squeeze main
or
deb http://downloads.skewed.de/apt/sid sid main deb-src http://downloads.skewed.de/apt/sid sid main
or
deb http://downloads.skewed.de/apt/precise precise universe deb-src http://downloads.skewed.de/apt/precise precise universe
or
deb http://downloads.skewed.de/apt/oneiric oneiric universe deb-src http://downloads.skewed.de/apt/oneiric oneiric universe
depending on your distribution. After running apt-get update, the package can be installed with
apt-get install graph-tool
If you want to verify the packages, you should use the
following public key: F36FE35D.
After saving it to a file, you should add it to your list with
apt-key add <key's filename>
Afterwards, you can run apt-key list, which should give you the following details about the key:
pub 1024D/F36FE35D 2009-03-29 uid Tiago de Paula Peixoto <tiago@skewed.de> uid Tiago de Paula Peixoto <tiago@itp.uni-bremen.de> uid Tiago de Paula Peixoto <tiago@fkp.tu-darmstadt.de> sub 2048R/D3E62840 2010-10-12 [expires: 2011-10-12] sub 2048R/0FF00286 2010-10-12 [expires: 2011-10-12] sub 2048R/5900157D 2010-10-12 [expires: 2011-10-12] sub 4096g/BD0ABCFD 2009-03-29 [expires: 2011-10-12]
Gentoo
An ebuild is available at:
http://downloads.skewed.de/graph-tool/gentoo/graph-tool-2.2.17.ebuild
If you want to install the latest development version from git, you can use:
http://downloads.skewed.de/graph-tool/gentoo/graph-tool-9999.ebuild
MacOS X
macports
A portfile is available for installation in MacOS X systems with macports. It is included in the standard macports list. Just run the following command to install it:
port install py-graph-tool
If you want to install the latest development version from git, you can use the following portfile:
http://downloads.skewed.de/graph-tool/macosx/graph-tool-devel.Portfile
Make sure you use the same GCC version to compile the whole stack (python, boost, etc) or you may lead into problems. In an ideal world, the correct version should be the latest one from the "stock" FSF GCC, however only the bastardized version from Apple (currently, version 4.2) seems to work properly on the platform. On the other hand, in an ideal world, one would opt for a less freedom- hating platform in the first place...
homebrew
Instructions for installing graph-tool in MacOS X with homebrew are available here.
FreeBSD
An unofficial graph-tool port is available at freshports.
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.skewed.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 and gitorious: http://gitorious.org/graph-tool


