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 frompinatrace
outputMapAddr
- Matches variable names from LLVM globals pass with interferences outputted bypinatrace
/detect
andmdcache
- 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.sh
script.
- 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