/accuracy-verification-microbenchmarks

The microbenchmarks that are used to verify the accuracy of ComDetective.

Primary LanguageMakefile

ComDetective Accuracy Verification Microbenchmarks
===============
These microbenchmarks were used to verify the accuracy of ComDetective in M. Aditya Sasongko, Palwisha Akhtar, Milind Chabbi, Didem Unat, "ComDetective: A Lightweight Communication Detection Tool for Threads", 2019 IEEE/ACM Supercomputing Conference. 


Installation
===============
To install these microbenchmarks, type the following commands.

make volume_install
make p2p_install


How to Run
===============
Before monitoring these microbenchmarks with ComDetective and Linux perf, please assign the installation path of ComDetective to the ComDetective_bin variable and the location of perf executable to the perf_bin variable in the Makefile.


Reproducing The Results in the ComDetective Paper
===============

The results in the paper were generated under the following environment.

- OS Kernel: Linux 4.15.0 with a patch that enables fast address replacement in debug registers. This patch has already been a part of Linux kernel in Linux version 4.18 or above.
- Hardware: Intel Xeon E5-2640 v4

To reproduce the write-volume verification results presented in the paper (Figure 3), execute the following commands.

# the following command generates the ground truths
make all_rfo_write
# the following command generates the total communication counts detected by ComDetective
make volume_write_verification

To reproduce the false sharing verification results in the paper (Figure 5), execute the following command.

make false_sharing_add_intra_socket_8_threads

To reproduce the read-write verification results in the paper (Figure 6), execute the following command.

make read_write

To reproduce the communication matrices for the point-to-point communication verification as shown in the paper (Figure 7), run the following command.

make p2p