Program Record/Replay Toolkit Product Overview
PinPlay kit is now included in Intel® Software Development Emulator (Intel® SDE) 9
Program Record/Replay Toolkit is built on the Pin dynamic binary instrumentation system. It is included in the Intel Software Development Emulator for Windows* and Linux* with some features for making Pin-based analyses repeatable. The features include a library and a header file that provide an API for making Pintools enabled for recording a program execution and doing analysis while replaying a program recording.
The GitHub* repository has a number of example Linux* Pintools that are record/replay enabled and a number of scripts for recording, replaying, and doing replay-based analysis for finding and check-pointing representative regions ("PinPoints") of large applications.
The Sniper simulator project now uses Intel SDE or PinPlay.
Latest Release Notes
See Intel® Software Development Emulator (Intel® SDE)
Installation
Set your DE_BUILD_KIT variable to point to SDE (9.*) directory.
Prerequisites: Installation will only work on 64-bit Linux machines with gcc/g++ installed for both 32-bit and 64-bit compiles.
cd $SDE_BUILD_KIT/pinkit/sde-example/example
make clean
make
More PinPlay tools examples can be found at the GitHub repository.
Known Issues
Check all the Intel SDE Pin known issues in the Intel SDE Pin documentation, which also apply to PinPlay. Following are the currently known PinPlay issues:
- Pintools that change application control flow (with PIN_ExecuteAt() for example) cannot work with replay for obvious reasons (replay faithfully follows the control-flow as captured during logging).
Additional Documents
- Specifying region-of-interest with Intel SDE
- DrDebug: Common Usage Examples
- Testimonials
- PinPlay FAQ
- DCFG
- Using PinPlay with Intel SDE
Related Tutorials
Related Publications
- LoopPoint: Checkpoint-Driven Sampled Simulation for Multi-Threaded Applications, HPCA-2022 [ Paper ]
- ELFies: Executable Region Checkpoints for Performance Analysis and Simulation, CGO-2021. [ Paper | Website].
- Pinballs: Portable and Shareable User-level Checkpoints for Reproducible Analysis and Simulation.
- DrDebug: Deterministic Replay-based Cyclic Debugging with Dynamic Slicing; Yan Wang, Harish Patil, Cristiano Pereira, Gregory Lueck, Rajiv Gupta, and Iulian Neamtiu. CGO 2014.
- PinADX: An Interface for Customizable Debugging with Dynamic Instrumentation; Gregory Lueck, Harish Patil, and Cristiano Pereira. CGO 2012. [Nominated for Best Paper Award]
- PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs; Harish Patil, Cristiano Pereira, Mack Stallcup, Gregory Lueck, James Cownie. CGO 2010. [CGO 2010 Best Paper Award Winner. Test-of-Time Award winner at CGO 2020.]
- Automatic Logging of Operating System Effects to Guide Application-Level Architecture Simulation; Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder In the proceedings of ACM SIGMETRICS: the International Conference on Measurement and Modeling of Computer Systems, June 2006.
- Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation; Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation.[Most influential paper of PLDI 2005 : Awarded PLDI 2015]
- Pinpointing Representative Portions of Large Intel® Itanium® Programs with Dynamic Instrumentation; Patil, H., Cohn, R., Charney, M., Kapoor, R., Sun, A., and Karunanidhi, A. In Proceedings of the 37th Annual IEEE/ACM international Symposium on Microarchitecture (Portland, Oregon, December 04 - 08, 2004). [Nominated for Best Paper Award]
- Graph-matching-based simulation-region selection for multiple binaries, Yount, C., Patil, H. Islam, M.S., Srikanth, A.; Performance Analysis of Systems and Software (ISPASS), 2015 IEEE International Symposium on Performance Analysis of Systems and Software, pp.52,61, 29-31 March 2015. [Paper]