Overview
This project implements a graph traversal program using both sequential and parallel breadth-first search (BFS) and outputting them into seperate result files to compare between sequential BFS and parallel BFS. It includes:
-
libcurl: A library for making HTTP requests.
- On Ubuntu/Debian:
sudo apt install libcurl4-openssl-dev
- On macOS:
brew install curl
- On Ubuntu/Debian:
-
RapidJSON: A fast JSON parser for C++.
-
On Mac or Windows install using:
git clone https://github.com/Tencent/rapidjson.git cd rapidjson mkdir build && cd build cmake .. sudo make install
If this does not work, you can directly include the RapidJSON headers by specifying the path in your compilation command. Assuming the cloned folder is in your home directory:
-
-
Clone the repository
-
Update the Makefile RAPIDJSON_PATH to where you cloned rapidjson into.
-
To compile the program, run the following command in the terminal:
make
-
To run more tests, edit the nodes or the depth in the myscript.sh file.
-
level_client.cpp: Implements the sequential graph traversal.
-
par_level_client.cpp: Implements the parallel graph traversal.
-
Makefile: Compilation instructions for building the executables.
-
myscript.sh: A SLURM batch script to automate execution and measure performance.
-
output_files.txt: Stores combined results from both sequential and parallel executions.
-
sequential_results.txt: Stores results of sequential BFS execution.
-
parallel_results.txt: Stores results of parallel BFS execution.