franktakes / teexgraph

C++ library for large-scale network analysis and computation
GNU General Public License v3.0
24 stars 8 forks source link
cpp graph-algorithms parallel-computing

teexGraph

This C++ library is intended for large-scale network analysis and computation. It can be used in two ways:

About

Several explicit design choices were made in in this library:

Features

Of course, all credit goes to the original authors of these algorithms.

Compilation

Optional: if you want the Python library you will need PyBind11. You can install it with:

sudo apt install pybind11-dev

Compile with the standard cmake sequence:

mkdir build
cd build
cmake ..
make

or make a debugging build with

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

Note: you may need gcc 4.7 or newer for all OpenMP functionality to work.

Direct usage

Use as a Python library

If PyBind11 is installed and the programme is compiled as above, a file with a name similar to

build/pyteexgraph.cpython-39-x86_64-linux-gnu.so

will be generated. Make sure this is accessible from your Python working directory and use

import pyteexgraph

from within Python to load it. See python_example.py for some examples.

Use as a C++ library

If your project uses cmake, then incorporating this package is easy!

Just add the following lines to your CMakeLists.txt file:

add_subdirectory(path/to/teexgraph EXCLUDE_FROM_ALL)
target_link_libraries(your_executable_target PRIVATE teexgraphlib)

And everything should work.

Disclaimer

This code was written for research-purposes only, and is and should in no way be seen as an attempt at creating a good piece of code with respect to any programming- or software-engineering standards whatsoever. It comes without any warranty of merchantability or suitability for a particular purpose. The software has exclusively been tested under the UNIX/Linux operating system, in particular Ubuntu LTS and CentOS.