cbarriers is a framework for evaluating different barrier synchronization algorithms. It was written to evaluate hybrid barrier with other known barrier synchronization algorithms. You can find more details in the paper:
"Effective Barrier Synchronization on Intel Xeon Phi Coprocessor", Andrey Rodchenko, Andy Nisbet, Antoniu Pop, and Mikel Lujan, Euro-Par 2015. [paper] [slides]
This work is supported by EPSRC grants DOME EP/J016330/1, PAMELA EP/K008730/1 and EP/M004880/1. A. Rodchenko is funded by a Microsoft Research PhD Scholarship, A. Pop is funded by a Royal Academy of Engineering Research Fellowship and M. Lujan is funded by a Royal Society University Research Fellowship.
gcc, r-base, r-cran-gplots, data.table package in R
make build
- builds barrier evaluation framework.
make test
- runs tests.
make db
- creates data base needed for plotting.
make plot
- plots charts in pdf.
make all
- does all mentioned above.
make help
- prints help message.
The following command runs tests on Intel Xeon Phi 5110P:
make test TEST_RUNNER='ssh mic0 "ulimit -s unlimited; export KMP_LIBRARY=turnaround; export KMP_BLOCKTIME=infinite;' TEST_RUNNER_PASS_ARG_END='"' HOST_NAME=mic0 TEST_RUNNER_INIT='scp -r bin mic0:' TEST_RUNNER_FINI='ssh mic0 "rm -rf bin"' CC=icc CPUS_NUM=232 EXTRACFLAGS="-mmic" BARRIERS_NUM=10000 ARCH=mic TOPOLOGY_NUMA_AWARE_ALLOC=no THREADS_MIN_NUM=8 THREADS_INC=+=8 RADIX_INC=*=2 EXPERIMENTS_NUM=10
Refined utilization of non-globally streaming stores under #define ARCH_STORE_NR_NGO_REFINED
(ARCH_STORE_NR should be undefined).