EECS 583 F21 — Group 21
Tony Bai, Daniel Hoekwater, Brandon Kayes, Thomas Smith
bench- Benchmark programs that exhibit false sharingdocs- pdfs explaining more about this projectdemo.pdf- Visual overview of design and an examplereport.pdf- Detailed report on the system
pin- Source code for false sharing detection- Intel Pin pinatrace:
pinatrace.cpp - Intel Pin multicore cache simulator:
mdcache.H,mdcache.cpp,mutex.PH detect- Detects false sharing frompinatraceoutputMapAddr- Matches variable names from LLVM globals pass with interferences outputted bypinatrace/detectandmdcache
- Intel Pin pinatrace:
src- Source code for the compiler passesglobals- First pass to output the names, locations, and sizes of all global variables at the beginning of program execution.fix- Second pass to fix false sharing by aligning global variables and padding structs.
Prerequisites: LLVM is installed on the machine
- Clone this repo
- Download Intel Pin and unzip it with
tar -xzvf.
wget https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.21-98484-ge7cd811fd-gcc-linux.tar.gz
- Look at
run.shscript.
- Set
PATH_TO_PIN,BENCHNAME,CACHELINESIZE, etc., correctly.
Mega-command to do all of the above steps on Linux:
cd ~ && mkdir intel-pin && cd intel-pin && wget https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.21-98484-ge7cd811fd-gcc-linux.tar.gz && tar -xvzf pin-3.21-98484-ge7cd811fd-gcc-linux.tar.gz && cd ~ && git clone git@github.com:thomasebsmith/eecs583-f21-group21.git && cd eecs583-f21-group21