The benchmarking is done in two categories. One for static-temporal graphs i.e. graphs with a static structure and varying node features. The second category is for dynamic graphs, where structure and features vary with time. For the static case we have considered the node classification task and for the dynamic case the link prediction task was used.
- The
static-bench.shuses the WikiMaths and WindmillOutput datasets. - The
dynamic-bench.shuses the sx-mathoverflow and wiki-talk-temporal (pruned at 2Million temporal edges)
- From the main project directory run the collowing commands
pip install -r requirements.txt
- Install python venv
sudo apt-get install python3.10-venv
- Traverse to the
stgraph/graph/staticfolder
nvcc $(python3 -m pybind11 --includes) -shared -rdc=true --compiler-options '-fPIC' -D__CDPRT_SUPPRESS_SYNC_DEPRECATION_WARNING -o csr.so csr.cu
- Traverse to the
stgraph/graph/dynamic/pcsrfolder
nvcc $(python3 -m pybind11 --includes) -shared -rdc=true --compiler-options '-fPIC' -D__CDPRT_SUPPRESS_SYNC_DEPRECATION_WARNING -o pcsr.so pcsr.cu
- Traverse to the
stgraph/graph/dynamic/gpmafolder
nvcc $(python3 -m pybind11 --includes) -shared -rdc=true --compiler-options '-fPIC' -D__CDPRT_SUPPRESS_SYNC_DEPRECATION_WARNING -o gpma.so gpma.cu
- From the main project directory run the following
python3 -m build && pip uninstall stgraph -y && pip install dist/stgraph-1.0.0-py3-none-any.whl
Note: For benchmarking we will need to install PyG-T, the following commands should do the necessary
pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.0.0+cu118.html
pip install torch-geometric-temporal
From the benchmarking/ directory run the following command. This will build the datasets in the necessary folders. It will also perform necessary preprocessing for the dynamic datasets.
chmod u+x build-dataset.sh && ./build-dataset.sh
Note: Around 100 MB of data will be downloaded and the preprocessing could take around 5 minutes.
The benchmark scripts will execute a series of scripts with a variation of parameters. The logs of all these can be found in the results/ folder at the end of the benchmarking.
- To run the static-temporal graphs tests
chmod u+x static-bench.sh && ./static-bench.sh
- To run the dynamic graph tests
chmod u+x dynamic-bench.sh && ./dynamic-bench.sh
Note: Each of these tests could take upto an hour or more.
The following datasets were added for the following benchmarking categories.
- Hungary Chickenpox
- PedalMe
- MonteVideoBus
- sx-mathoverflow
- sx-stackoverflow
- sx-askubuntu
- soc-reddit-hyperlink-title
- soc-reddit-hyperlink-body
- wiki-talk-temporal
- email-eu-core-temporal
- sx-superuser
- bitcoin OTC
Make sure to download the new datasets first by running the ext-build-dataset.sh file
chmod u+x ext-build-dataset.sh && ./ext-build-dataset.shThe benchmark scripts will execute a series of scripts with a variation of parameters. The logs of all these can be found in the results/ folder at the end of the benchmarking.
- To run the new static-temporal graphs tests
chmod u+x ext-static-bench.sh && ./ext-static-bench.sh
- To run the new dynamic graphs tests
chmod u+x ext-dynamic-bench.sh && ./ext-dynamic-bench.sh