Slide 1: Pinballs: Portable and Shareable User-level Checkpoints for Reproducible Analysis and Simulation
Pinballs: Portable and Shareable User-level Checkpoints for Reproducible Analysis and Simulation Harish Patil (Intel Corporation) Trevor E. Carlson (Ghent University) 1 February 15th, 2014 REPRODUCE2014/HPCA Orlando, Florida
Slide 2: Legal Disclaimer & Optimization Notice
Legal Disclaimer & Optimization Notice INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANT
Slide 3: Objective: Reproducible Input for Simulators
Objective : Reproducible Input for Simulators Reproducible Input Apples to apples comparison Simulator A Reproducible Input Pinball Simulator B Program binary (x86) Replayer+ Logger pinball + input Simulator 3 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the
Slide 4: Check-pointing is not enough…Need to control non-determinism (Pinball does)
Check-pointing is not enough…Need to control non-determinism (Pinball does) Single-threaded programs: 1. Changes to : Initial stack/heap addresss ; shared library load location (randomized address space) 2. Processor-specific instruction behavior changes: CPUID, RDTSC 3. Signals : Arbitrary memory/r
Slide 5: Pinballs: Properties
Pinballs : Properties o Enable deterministic simulation : ST and MT o See Trevor’s talk on MT simulation o Independent of operating system (version/type) o System call side-effects injected o Small in size o Whole-program or regions SPEC2006 Instruction Pinball size Logging Replay (Average count slo
Slide 6: The Vision: A Global Repository of Pinballs
The Vision: A Global Repository of Pinballs Submit from Interesting Programs Pinballs Use for reproducible simulation Started already (SPEC2006) : http://snipersim.org/Pinballs 6 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective own
Slide 7: Outline
Outline • Pinballs • What are they? • How are they generated? • How to use them for simulation? 7 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Slide 8: Pinball (ST) = Initial memory/register + injections
Pinball (ST) = Initial memory/register + injections foo.reg Internal states initialized Arch. state Replayer + Simulator Replay 50 100 250 Syscall A instructions RDTSC Signal Initial memory image Inject events: based on instruction counts foo.sel / foo.reg (injections) foo.text •System calls : skipp
Slide 9: Pinball (MT): Pinball (ST) + Thread-dependencies
Pinball (MT) : Pinball (ST) + Thread- dependencies foo.reg (per-thread) Initial Initial Initial registers: registers: T0 registers: T1 T(n-1) foo.text Application Memory (common) Event injection works only if same foo.reg (per-thread) behavior (same instruction counts) is foo.sel (per-thread) guaran
Slide 10: Outline
Outline • Pinballs • What are they? • How are they generated? • How to use them for simulation? 10 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Slide 11: Pin: A Tool for Writing Program Analysis Tools
Pin: A Tool for Writing Program Analysis Tools counter++; print(IP) sub $0xff, %edx sub $0xff, %edx movl 0x8(%ebp), %eax counter++; print(EA) jle <L1> movl 0x8(%ebp), %eax counter++;print(br_taken) Extra code jle <L1> Pintool Pin Test-program Run-time Translator Operating System Hardware Normal outp
Slide 12: PinPlay: Workload Capture and Deterministic Replay Framework
PinPlay: Workload Capture and Deterministic Replay Framework PinTool logger LOG (pinball) + replayer Program/ Guaranteed Repeatability Libraries No binaries/inputs Input No application setup No license checking License Record Once Replay + Analyze Multiple Times Anywhere! Program Record/Replay Toolk
Slide 13: Outline
Outline • Pinballs • What are they? • How are they generated? • How to use them for simulation? 13 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Slide 14: Pinball-based Simulation: Two Usage Models
Pinball-based Simulation: Two Usage Models 1. Pin-based simulators: e.g. Sniper from Ghent Univ. Pin-tool pinball Simulator 2. Other, non-Pin, simulators: e.g. Intel-internal Looking for collaboration : QEMU-based/ other simulators Simulator Pin-based Checkpoint pinball Simulator converter / Trace 1
Slide 15: Simulation Challenge + Solution
Simulation Challenge + Solution Detailed, cycle-accurate, simulation is slow Solution: Find/simulate only representative regions (PinPoints) PinPoints cover << 1% of whole-program execution vastly reduced simulation time 15 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands a
Slide 16: PinPoints = Pin + SimPoint (UC San Diego)
PinPoints = Pin + SimPoint (UC San Diego) 1 2 … 1022 … 4232 Profile with a pin-based profiler Intervals : Program 30 million Instructions each Execution Basic-block-vectors Analyze with SimPoint Find 1 2 … 350 … 3518 4232 phases Choose one simulation 350 … 3518 … point per phase PinPoint 1: Weight 3
Slide 17: PinPoints: The Repeatability Challenge
PinPoints : The Repeatability Challenge 1. Profile and find Simulation Test-program regions PinPoints file Test-program 2. Trace selected regions Problem: Two runs are not exactly same PinPoints missed Found this for 25/54 SPEC2006 runs! [ “PinPoints out of order” “PinPoint End seen before Start”
Slide 18: Enters PinPlay To Provide Repeatability
Enters PinPlay To Provide Repeatability 1. Profile and find Simulation regions PinPlay PinPoints file Test-program logger pinball 2. Trace selected regions Two runs are same PinPoints guaranteed to be reached 18 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are t
Slide 19: PinPlay + PinPoints: Basic Flow
PinPlay + PinPoints: Basic Flow Program + Collect Simulate with Pin- input whole- based simulators program or translate to other pinball simulator checkpoints Profile and Whole find Selective program PinPoints file re-logging Region pinball representative pinball regions PinPoints are representati
Slide 20: SPEC: CPU2006 Pinballs for download
SPEC : CPU2006 Pinballs for download www.snipersim.org/Pinballs 20 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Slide 21: Summary: Pinballs
Summary : Pinballs User-level x86 checkpoints: 1. Enable deterministic simulation 2. Portable : No OS dependence 3. Shareable : Relatively small in size Generate with PinPlay : http://www.pinplay.org Use for simulation: 1. Replay-enabled Pin-based simulator OR Translate to other simulator inputs 2.
Slide 22: Call for action
Call for action 1. Make a global repository a reality Submit from Interesting Programs Pinballs Use for reproducible simulation 2. Pinball converter for QEMU-based/other simulators 22 Copyright© 2014, Intel Corporation. All rights reserved. *Other brands and names are the property of their respectiv
Slide 23: Upcoming Events
Upcoming Events 1. Use of Pinball for debugging: DrDebug: CGO 2014 talk (Monday 2/17/2014) @4 PM 2. Creation of Pinballs for representative regions: PinPoints: ISCA 2014 tutorial (Sunday 15th June, 2014) ( https://sites.google.com/site/pinpointstutorialisca14/ ) 23 Copyright© 2014, Intel Corporation