https://blogs.qub.ac.uk/DIPSA/ParaGrapher
This repository contains the source code of ParaGrapher, an API and library for loading graphs. For futher information about the library please refer to https://blogs.qub.ac.uk/DIPSA/ParaGrapher/ and publications.
- PARAGRAPHER_CSX_WG_400_AP : WebGraphs with 4 Bytes ID per vertex without weights on edges or vertices
- PARAGRAPHER_CSX_WG_800_AP : Big WebGraphs with 8 Bytes ID per vertex without weights on edges or vertices
- PARAGRAPHER_CSX_WG_404_AP : WebGraphs with 4 Bytes ID per vertex and 4 Bytes integer weight per edge and without weights on vertices
gcc
with a version greater than 9JDK
with a version greater than 15bc
,wget
, andunzip
- Run
make download_WG400
,make download_WG404
, ormake download_WG800
to download and store sample datasets totest/datasets
-
If
gcc
is not inPATH
, please set path togcc
compiler folder in Line 9 of theMakefile
andtest/Makefile
. -
By commenting
-DNDEBUG
in Line 25 of theMakefile
, ParaGrapher will output its logs. -
With
make all
the C and Java source codes are compiled and the required WebGraph libraries are downloaded. -
All compiled and downloaded files are stored in the
lib64
folder and future calls to the library requires setting thePARAGRAPHER_LIB_FOLDER
environemnt variable to thelib64
folder. -
The
test
folder contains sample codes for different types of graphs. Usemake test
for running the test. You may pass argumentdataset
to specify the location of the test, e.g.,make test dataset=path/to/dataset
. -
In the first access to the graphs in WebGraph format a delay may be experienced for creating two files by the library:
- A WebGraph
.offset
file is required which is created through a call to the WebGraph framework. - An
_offsets.bin
file is created that contains the offsets array of the CSX format but in binary and littel-endian format with 8-Bytes values for each of |V|+1 elements. In case of MS-BioGraphs, the file with nameMS??_offsets.bin
can be downloaded and renamed asMS??-underlying_offsets.bin
to prevent creating.
- A WebGraph
-
ParaGrapher creates some temporary files in
/dev/shm
with names starting byparagrapher_
. The files are deleted at the end of a successful exuection. Otherwise, they should be deleted by the user. -
After calling ParaGrapher, OS cache of storage contents should be dropped using
echo 3 > /proc/sys/vm/drop_caches
or by calling theflushcache
program that has the same functionality but with a longer execution time.
-
The file test/read_bandwidth.c contains a benchmark implemented in C to measure the read bandwidth of storage for (i) different thread numbers, (ii) different block sizes, and (iii) different read methods (read(), pread(), mmap()).
-
The file test/ReadBandwidth.java contains a benchmark implemented in Java to measure the read bandwidth of storage for (i) different thread numbers, (ii) different block sizes, and (iii) different read methods (read(), mmap()). The script test/java-read-bandwidth.sh may be used for changing parameters.
- Binary format
- MatrixMarket format
- Textual CSX
- Sleep time of communicating threads in webgraph.c and WebGraphRRServer.java, using semapher?
- A permanently-in-background (daemon) Java program may be required to answer all queries, but its memory usage and GC impacts should be considered
Licensed under the GNU v3 General Public License, as published by the Free Software Foundation. You must not use this Software except in compliance with the terms of the License. Unless required by applicable law or agreed upon in writing, this Software is distributed on an "as is" basis, without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose, neither express nor implied. For details see terms of the License (see attached file: LICENSE).