International Summer School in Parallel Patterns 2014 Software Engineering Group by Prof. Dr. Wilhelm Hasselbring Kiel University, Germany Christian Wulf –
Current Research Activities Pattern-Based Detection and Utilization of Potential Parallelism in Software Systems TeeTime: A generic, concurrency-aware Pipes & Filters framework for Java Christian Wulf ― International Summer School in Parallel Patterns 20142
Overview of our Approach Christian Wulf ― International Summer School in Parallel Patterns 20143
S1: SDG Construction Christian Wulf ― International Summer School in Parallel Patterns control flow data flow hierarchy dependencies e.g., with Soot or Wala
S2: Runtime Information Gathering International Summer School in Parallel Patterns 2014Christian Wulf ― Instrumentation number of method invocations method execution time number of loop iterations I/O accesses accessed array positions Profiling/Monitoring e.g., with
S3: SDG Enrichment International Summer School in Parallel Patterns 2014Christian Wulf ― type: method invocation name: file.updateContents(text) variable: writtenBytes type: method invocation name: file.updateContents(text) variable: writtenBytes invocations: 10 exec. time: avg: 300ms, mean: 290ms, min: 250ms, max: 600ms filenames: (“C:/../Person.java”, “C:/../Address.java”, “C:/../Cridentials.java”, …) Graph transformation
S4: Ranking Christian Wulf ― International Summer School in Parallel Patterns 20147
S5: Pattern Detection Christian Wulf ― International Summer School in Parallel Patterns 20148
S6: Transformation International Summer School in Parallel Patterns 2014Christian Wulf ― graph refactoring -introduction of concurrency -introduction of synchronization -final approval by the user corresponding instance of a parallelization pattern graph transformation matched instance of a candidate pattern
S7 or S4 Christian Wulf ― International Summer School in Parallel Patterns
TeeTime Christian Wulf ― Read Process Write An example Pipes-and-Filters pipeline filter or stagepipe International Summer School in Parallel Patterns
TeeTime Christian Wulf ― Read Process An example Tee-and-Join pipeline Write Process port loop International Summer School in Parallel Patterns
TeeTime Christian Wulf ― Read Process Write Process Lock-free work stealing pipe within same thread SPSC pipe between different threads Thread boundary High abstraction of concurrency High efficiency Transparent thread creation and management Type-safe connection of ports Development in beta phase International Summer School in Parallel Patterns
Example Filter in TeeTime Christian Wulf ― International Summer School in Parallel Patterns