This codebase is structured as follows.
src
folder contains the source code for all 4 implementationstarget
folder contains the binaries for all 4 implementationscompile.sh
compiles the source code and generates the binariesrun_experiments.py
runs experiments for different problem sizes across the different clusterscollect_experiments_results.py
collects and generates a summary of the experiments results in a given folder
.
├── compile.sh
├── run_experiments.py
├── collect_experiments_results.py
└── src
│ ├── cpu_clustering.cpp
│ ├── naive_cpu_clustering.cpp
│ ├── single_gpu_clustering.cu
│ └── single_gpu_clustering_sort.cu
└── target
├── cpu1
├── cpu2
├── gpu1
└── gpu2
cd
to root- Enable script permissions:
chmod +x compile.sh
- Compile and generate binaries in
target
folder:./compile.sh
- To run any of the 4 binaries:
./target/<binary-name> N M
, whereN
is number of samples to generate andM
is dimension of samples - To run the experiments:
./run_experiments.py folder_path
- To get the outputs of finished experiments:
./collect_experiments_results.py folder_path