This repository is a reference implementation of the model presented at The Ninth International Workshop on Programming Models and Applications for Multicores and Manycores (PMAM 2018).
A Pin tool for generating synchronization traces can be found in the pthread-trace
directory.
The Pin tool has been tested using Pin version 3.
You should also be able to use Pin version 2 with some modifications.
To compile the tool, make sure you have defined the PIN_ROOT
environment variable to point to the root directory of your Pin installation.
To use the tool, run Pin with the compiled library (e.g., pthread-trace.so
) and a multithreaded application that uses the pthread library.
The core library for generating estimates can be found in the simsync
directory.
You can control the library via the command line using the simsync-cl
binary.
Both the library and the command line executable are compiled using CMake.
CMake can configure the project for different build systems and IDEs (type cmake --help
for a list of generators available for your platform).
We recommend you create a build directory before invoking CMake to configure the project (cmake -B
).
For example, we can perform the configuration step from the project root directory:
cmake -H. -Bcmake-build-release -DCMAKE_BUILD_TYPE=Release cmake -H. -Bcmake-build-debug -DCMAKE_BUILD_TYPE=Debug
After the configuration step, you can ask CMake to build the project.
cmake --build cmake-build-release/ --target all cmake --build cmake-build-debug/ --target all
Once compiled, you will find the simsync-cl
executable in a directory of the same name.
Use the --help
argument for information on the command line interface.
Architecture configurations used in the publication can be found in the architecture-config
directory for different benchmarks and number of threads/cores.