KIT | KIT-Bibliothek | Impressum

Patty: A Pattern-based Parallelization Tool for the Multicore Age

Molitorisz, Korbinian; Müller, Tobias; Tichy, Walter F.

Abstract: 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. This paper introduces a pattern-based process model that assists in all of these parallelization tasks and facilitates transforming legacy software that had not been developed with multicore in mind. We introduce a parallelization approach for existing software artifacts. It detects parallelizable locations and transforms them to common parallel patterns. Our approach uses optimistic parallelization strategies and generates a semantic model from static and dynamic information. Using this mode, we detect parallel patterns together with runtime-relevant tuning parameters. Our process model covers the detection of parallelizable regions, the identification of appropriate parallelization strategies. It enhances traditional parallelization processes to additionally address correctness and performance validation. We implemented the pattern-based process model in Patty, a tool that actively assists engineers in the tedious and error-prone task of software parallelization. This paper also contains 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) to 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 indicators. 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)
Publikationstyp Proceedingsbeitrag
Jahr 2015
Sprache Englisch
Identifikator DOI: 10.1145/2712386.2712392
ISBN: 978-1-4503-3404-4
KITopen ID: 1000051688
Erschienen in The 6th International Workshop on Programming Models and Applications for Multicores and Manycores (PMAM), to be held in conjunction with the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP) : February 7-8, 2015, San Francisco Bay Area, USA
Verlag Association for Computing Machinery, New York
Seiten 153-163
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft KITopen Landing Page