Pattern-driven parallelization of sequential software
The free lunch of ever increasing clock frequencies is over. Performance-critical sequential software must be parallelized, and this is tedious, hard, buggy, knowledge-intensive, and time-consuming. In order to assist software engineers appropriately, parallelization tools need to consider detection, transformation, correctness, and performance all together. In this talk we introduce a pattern-based process model that assists in all four parallelization tasks and hence facilitates transforming legacy software that had not been developed with multicore in mind. Our approach uses optimistic parallelization and generates a semantic model with static and dynamic information. With this information we detect parallelizable regions and runtime-relevant tuning parameters. The regions are then transformed to tunable parallel patterns. The process model covers the detection of parallelizable regions, the identification of appropriate parallelization strategies, and enhances traditional parallelization processes with correctness and performance validations.We implemented the patternbased process model in Patty, a tool that actively assists engineers in the tedious and error-prone software parallelization tasks. This talk also presents a user study that compares the effectivity of optimistic pattern-based parallelization as implemented in Patty to 1) a popular commercial parallelization tool and 2) pure manual parallelization. We demonstrate that our approach receives the best average scores from its users while delivering the best results within the least amount of time. In our user study Patty outperforms both control groups in subjective and objective measurements. Patty achieves parallel performance comparable to a skilled parallel software engineer within minutes rather than days of work. This makes our approach attractive for experts and inexperienced software engineers alike.
|Zugehörige Institution(en) am KIT
||Institut für Programmstrukturen und Datenorganisation (IPD)
||KITopen ID: 1000052165
||parallel 2015, Softwarekonferenz für Parallel Programming, Concurrency und Multicore-Systeme, Karlsruhe, IHK, 21.-24. April 2015
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
KITopen Landing Page