C++ Graph I/O. Fast and Simple.
The GDSB library offers various tools for graph data structures and experiments using benchmark functionality including:
- optimized POSIX graph file I/O, see graph_input.h, graph_output.h, and graph_io_parameters.h
- easy to use and up to 2.5x faster MPI graph fileI/O, see mpi_graph_io.h, mpi_error_handler.h
- graph and edge data structures, see graph.h
- experiment environment to benchmark procedures, see experiment.h
- time measurement facilities, see timer.h
- sorting containers using a specific permutation, see sort_permutation.h
- a batcher system to create and apply edge batches which may be fed to a graph data structure, see sort_permutation.h
- using C++17
More information is provided in the paper ScaleRunner: A Fast MPI-Based Random Walk Engine for Multi-CPU Systems where GDSB is used to read in graphs in parallel storing edges on multiple compute nodes.
First feature complete version of GDSB, now also with full support to read and write graph files. As a new feature, we offer MPI graph file read functionality using our binary format.
| Version Number | Tag | URL |
|---|---|---|
1.0.0 |
v1.0.0 |
A complete revision of graph file I/O to read edges from a file reducing the formerly defined functions to read in directed, undirected, weighted, unweighted, dynamic, or static graphs to a single function. In addition, the graph data structure primitives have been revised to reflect their 32 or 64 bit nature as well as a few minor fixes.
In short, this version addresses the complexity of file I/O options trying to simplify the API.
| Version Number | Tag | URL |
|---|---|---|
0.2.0 |
v0.2.0 |
https://github.com/hu-macsy/graph-ds-benchmark/tree/v0.2.0 |
This version includes timer, graph (I/O), and sorting functionality. Also includes a batcher system and an experiment environment for benchmarking.
| Version Number | Tag | URL |
|---|---|---|
0.0.1 |
v0.0.1 |
https://github.com/hu-macsy/graph-ds-benchmark/tree/v0.0.1 |
Sorted alphabetically.
| Name | Affiliation | |
|---|---|---|
| Alexander van der Grinten | n/a | n/a |
| Florian Willich | [email protected] | HU Berlin |
Build the library using CMake, generator Ninja.
mkdir install
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install ../
ninja
ninja installYou can build the tests by setting the CMake option GDSB_TEST to On.
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DGDSB_TEST=On -DCMAKE_INSTALL_PREFIX=../install ../
ninja install
ninja