dataset
: Folder containing graph dataset downloader for each graph.single-GPU
: Folder containing single-GPU Atos asynchronous graph analytics implementations.bfs_nvlink
: Folder containing multi-GPU Atos asynchronous BFS implementations on NVLink connected multi-GPU system.pr_nvlink
: Folder containing multi-GPU Atos asynchronous PageRank implementations on NVLink connected multi-GPU system.bfs_ib
: Folder containing multi-GPU Atos asynchronous BFS implementations on InfiniBand(IB) connected multi-GPU system.pr_ib
: Folder containing multi-GPU Atos asynchronous PageRank implementations on InfiniBand(IB) connected multi-GPU system.comm
: Folder containing implementations of distributed standard/priority queues and communication aggregator.perf_data
: Folder containing the performance results of BFS and PageRank on NVLink and IB systems.
- CUDA (V11.4.120 or newer)
- GCC (9.4.0 or newer)
- boost (1.63 or newer)
Set the following environment variables accordingly based on your dependency path
- CUDA_HOME
- CUDA (V11.4.120 or newer)
- GCC (9.4.0 or newer)
- boost (1.63 or newer)
- NVSHMEM (can be downloaded from https://developer.nvidia.com/nvshmem by joining NVIDIA developer)
- METIS (https://github.com/KarypisLab/METIS) Compile METIS with 64 bites option
- OpenMPI (4.0.5 or newer) or IBM Spectrum MPI on Summit
Set the following environment variables accordingly based on your dependency path
- CUDA_HOME
- METIS64_HOME
- NVSHMEM_HOME
- MPI_HOME
-
Download Datasets
Several tested graph datasets are included under the
datasets
directory. Under each graph dataset folder, one needs to runmake
to download the dataset. The downloaded graph datasets are either.mtx
format or.csr
format. Atos uses the.csr
format. In the case of.mtx
format, one can usegen_csr
tool under directorydatasets
to convert themtx
format tocsr
format. -
Compile BFS and PageRank
-
BFS implementations on NVLink systems are under the
bfs_nvlink
directory; BFS implementations on InfiniBand(IB) systems are under thebfs_ib
directory. -
Under
bfs_nvlink
andbfs_ib
directory, runmake
to compile the code. -
PageRank implementations on NVLink systems are under the
pr_nvlink
directory; PageRank implementations on InfiniBand(IB) systems are under thepr_ib
directory. -
Under
pr_nvlink
andpr_ib
directory, runmake
to compile the code
-
-
Run Performance Test for BFS on NVLink System
- Go the
bfs_nvlink
folder. - To test BFS on the graphs under the datasets directory, run the
figure5_persist.sh
andfigure5_discrete.sh
to generate and extract the performance data for BFS on NVLinks. - The script file
figure5_persist.sh
generates performance results for BFS implementation using a standard queue and persistent kernel scheme. - The script file
figure5_discrete.sh
generate performance results for BFS implementation using priority queue and discrete kernel scheme. - The
figure5_persist.sh
andfigure5_discrete.sh
firstly run the performance tests and output the results to a temporary file; then they extract and print the performance results.
Note: If abnormal results are generated by
figure5_persist.sh
andfigure5_discrete.sh
, please re-run the performance tests as the print output from multi-processes can tangle in the way that our script fails to extract the performance output correctly. - Go the
-
Run Performance Test for BFS on InfiniBand(IB) System
- Go to the
bfs_ib
folder. - To test on the graphs under the datasets directory, run the
run_bfs.sh
or therun_bfs.batch
if on Summit to generate the performance results for BFS on IB system. - Then extract the performance results by
./figure10_bfs.sh outputfile
Note: If abnormal results are generated by
figure10_bfs.sh
, please re-run the performance tests as the print output from multi-processes can tangle in the way that our script fails to extract the performance output correctly. - Go to the
-
Run Performance Test for PageRank on NVLink System
- Go to the
pr_nvlink
folder. - To test on the graphs under the datasets directory, run the
figure7_persist.sh
andfigure7_discrete.sh
to generate and extract the performance data for PageRank on NVLinks. - The script file
figure7_persist.sh
generates performance results for BFS implementation using a standard queue and persistent kernel scheme. - The script file
figure7_discrete.sh
generate performance results for BFS implementation using standard queue and discrete kernel scheme. - The
figure7_persist.sh
andfigure7_discrete.sh
firstly run the performance tests and output the results to a temporary file; then they extract and print the performance results.
Note: If abnormal results are generated by
figure7_persist.sh
andfigure7_discrete.sh
, please re-run the performance tests as the print output from multi-processes can tangle in the way that our script fails to extract the performance output correctly. - Go to the
-
Run Performance Test for PageRank on InfiniBand(IB) System
- Go to the
pr_ib
folder. - To test on the graphs under the datasets directory, run the
run_pr.sh
or therun_pr.batch
if on Summit to generate the performance results for PageRank on IB system. - Then extract the performance results by
./figure11_pr.sh outputfile
Note: If abnormal results are generated by
figure11_pr.sh
, please re-run the performance tests as the print output from multi-processes can tangle in the way that our script fails to extract the performance output correctly. - Go to the
Pre-generated performance data are under perf_data
directory. To extract the performance results, run figure5_persist.sh
, figure5_prio.sh
and figure10_bfs.sh
under bfs_nvlink
and bfs_ib
directory and run figure7_discrete.sh
, figure7_persist.sh
and figure11_pr.sh
under pr_nvlink
and pr_ib
directory.