Benchmark different graph libraries on the same task(s) and dataset(s) in order to compare time performance.
Inspired by the graph benchmarks and results from graph results
-
clone repository
-
select Python Interpreter: use non default interperter that comes from OS. Instead install specific version. For example:
brew install python@3.12
Then add interpreter path in VsCode: Command Pallete (CMD+SHIFT+P) -> Python: Select Interpreter -> Enter interpreter path. Path is based on brew install location for specific version. For example:
brew info python@3.12
- if you want to use Python virtual environment in VsCode, follow the instructions update .gitignore accordingly. For example:
python3 -m venv .venv
- open new terminal should activate the virtual environment automatically. For example for venv, you should see .venv mentioned near the cursor at the terminal (.venv) User falcon >
If it is not auto activated, add this line to .vscode/settings.json :
"python.terminal.activateEnvironment": true,
and open a new terminal.
- install dependencies (python modules) based on requirements-dev.txt:
pip3 install -r requirements.txt
Run bash script inside "data" folder:
chmod +x download_data.sh
./download_data.sh
You can comment out lines with data files that you don't want to download.
Example command for benchmarking all tasks and printing results to output file:
python3 <path/to/this/script> <library> <dataset> <repeations> [task] > output/file.txt
Substitute with specific arguments:
- library: Networkx
- Input dataset tsv file: data/small.txt
- Repeat every run number of times: 10
- task: [Optional], default = All
- Print the results to output file: output/networkx-small.txt
Example command:
python3 src/main.py networkx data/small.txt 10 > output/networkx-small.txt
Example command for benchmarking specific task CONNECTED_COMPONENT:
python3 src/main.py networkx data/small.txt 10 CONNECTED_COMPONENT > output/networkx-cc-small.txt
Task can be one of enum values from src/profiling/task.py