Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime
Adrian Pegler March 18, 2016
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 1 / 53
Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter - - PowerPoint PPT Presentation
Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime Adrian Pegler March 18, 2016 Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 1 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 1 / 53
Introduction ⊲ Motivation
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 2 / 53
Introduction ⊲ Motivation
◮ Hypothetical web-application with daily sales of 100,000$ ◮ 1 second page delay → 7% annually sales loss
ahttp://blog.kissmetrics.com/loading-time/
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 3 / 53
Introduction ⊲ Motivation
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 4 / 53
Introduction ⊲ Goals
◮ Overview and classification of existing approaches ◮ Discussion of advantages and drawbacks
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 5 / 53
Foundation ⊲ The Pipe & Filter Architectural Style
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 6 / 53
Foundation ⊲ The Pipe & Filter Architectural Style
◮ ... reordering [10] ◮ ... reuse [10] ◮ ... replacement [10] ◮ Good support for real concurrency [10] Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 7 / 53
Foundation ⊲ The Pipe & Filter Architectural Style
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 8 / 53
Foundation ⊲ The P&F Framework TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 9 / 53
Foundation ⊲ The P&F Framework TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 10 / 53
Foundation ⊲ The P&F Framework TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 11 / 53
Foundation ⊲ The P&F Framework TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 12 / 53
Foundation ⊲ The P&F Framework TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 13 / 53
Foundation ⊲ The P&F Framework TeeTime
◮ Function as buffer ◮ Synchronize threads
◮ Stores only single element (pointer) ◮ Activates successor stage Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 14 / 53
Foundation ⊲ Bottleneck Detection Approaches
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 15 / 53
Foundation ⊲ Bottleneck Detection Approaches
◮ If a stage has the smallest isolation production rate, this machine is the
◮ The stage right after the fullest buffer (pipe) is the bottleneck [4, 5]
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 16 / 53
Foundation ⊲ Bottleneck Detection Approaches
◮ Changing input data
◮ Static system or code analysis
◮ Specific configuration → scenario ◮ Simulate different scenarios → configuration of best performing
◮ Based on simulation output data → coefficients ◮ Examples for coefficients: ◮ Percentage of active time ◮ Average length of active time ◮ Longest waiting time of items Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 17 / 53
Examples for Bottleneck Detection Approaches ⊲ Scenarios
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 18 / 53
Examples for Bottleneck Detection Approaches ⊲ Scenarios
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 19 / 53
Examples for Bottleneck Detection Approaches ⊲ Coefficients
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 20 / 53
Examples for Bottleneck Detection Approaches ⊲ Coefficients
◮ Inaccurate [8] ◮ Strong correlation to blocking of stages ◮ No blocking
◮ blocking caused by sending to full pipe ◮ blocking caused by pulling from empty pipe Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 21 / 53
Examples for Bottleneck Detection Approaches ⊲ Coefficients
◮ Easy to implement [8] ◮ But similar percentages for different behavior [8] ◮ High effort to gain confidence [8]
◮ Solves the above mentioned draw backs [8] Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 22 / 53
Examples for Bottleneck Detection Approaches ⊲ Coefficients
◮ Easy to implement [8] ◮ But similar percentages for different behavior [8] ◮ High effort to gain confidence [8]
◮ Solves the above mentioned draw backs [8]
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 23 / 53
An Extended and Combined Approach
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 24 / 53
An Extended and Combined Approach
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 25 / 53
An Extended and Combined Approach
◮ Compute times:
◮ Blocked time correlates to fullness of pipes ◮ Number of times a stage changed to a specific state Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 26 / 53
An Extended and Combined Approach
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 27 / 53
An Extended and Combined Approach
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 28 / 53
An Extended and Combined Approach
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 29 / 53
Applying our Approach on TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 30 / 53
Applying our Approach on TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 31 / 53
Applying our Approach on TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 32 / 53
Applying our Approach on TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 33 / 53
Applying our Approach on TeeTime
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 34 / 53
A Solution for the TeeTime Bottleneck ⊲ The Culpable Code and a Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 35 / 53
A Solution for the TeeTime Bottleneck ⊲ The Culpable Code and a Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 36 / 53
A Solution for the TeeTime Bottleneck ⊲ The Culpable Code and a Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 37 / 53
A Solution for the TeeTime Bottleneck ⊲ The Culpable Code and a Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 38 / 53
A Solution for the TeeTime Bottleneck ⊲ Evaluating the Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 39 / 53
A Solution for the TeeTime Bottleneck ⊲ Evaluating the Solution
◮ version 2.0 now also uses old data structure
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 40 / 53
A Solution for the TeeTime Bottleneck ⊲ Evaluating the Solution
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 41 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 42 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 43 / 53
◮ TeeTime 2.0 faster then 1.1.2 on many threads ◮ Stage behavior differences: noise or real?
◮ More representations. ◮ Computation of representation could be organized as P&F
◮ Should be choose-able ◮ Optimize runtime overhead of the StateLogger itself Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 44 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 45 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 46 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 47 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 48 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 49 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 50 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 51 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 52 / 53
Adrian Pegler Evaluating Approaches to Detect Bottlenecks in the Pipe & Filter Framework TeeTime March 18, 2016 53 / 53