- To compile the code, first use spack to load the Intel parallel studio 2019.5 compiler, then run
makein the released code folder.
-
preprocessing script
- The script
process_logs.pycan be run bypython process_logs.py log_folder_name output_file_name, thelog_folder_nameis where we save logs of experiments, and theoutput_file_nameis a json file, including parameters, times and results from every experiment.
- The script
-
visualization script
- Each visualization script specifies a data source(json file generated by preprocessing), and a result directory where the figure would be saved
- The sciprt
fig9_single_cpu_gpu_barplot.pyreproduce figure 9 from the MemXCT paper, and can be run using commandpython fig9_single_cpu_gpu_barplot.py - The sciprt
fig10_tune_param_heatmap.pyreproduce figure 10 from the MemXCT paper, and can be run using commandpython fig10_tune_param_heatmap.py - The script
fig11_strong_scaling_lineplot.pyandfig11_strong_scaling_lineplot_multinode.pygenerate figures for strong scaling on a single node(change number of processors) and multiple node(change number of nodes), they reproduce figure 11 from the MemXCT paper, and can be run using commandpython fig11_strong_scaling_lineplot.py - We use python packages
matplotlibandseabornin above scripts to generate figures.
- The shell script
run.shruns the MemXCT algorithm on a specified dataset and can be executed using commandrun.sh [arguments...] DATASET [-- MPI_ARGS...] [-- PROGRAM_ARGS...], more details can be found by executing./run.sh -h. - The shell script
calc_dataset_size.shspecifies size of a dataset, command./calc_dataset_size.sh DATASETwill output size of it, in M$\times$ N format. - Shell scripts for tuning the parameters on CPU and GPU, comparing performance on single CPU and GPU, and test scalability of weak scaling and strong scaling are put in the
run/scriptfolder separately. - To run the script, e.g. the script
run_tune_params.sh, one can execute command./run_tune_params.sh. Each result of specific parameters are saved in a log file in therun/outputfolder.
This reproducibility experimental result was performed during the Student Cluster Competition 2020 (SC-20) by the GeekPie_HPC team from ShanghaiTech University. We thank our shepherds and the reviewers for their constructive feedback. We thank the support from ShanghaiTech University. We also want to thank our co-advisor, Mr. Yingdong Zhang from the Library and Information Technology Center, ShanghaiTech University.