KIT | KIT-Bibliothek | Impressum | Datenschutz

An Empirical Study on Parallelism in Modern Open-Source Projects

Kiefer, Marc Aurel; Warzel, Daniel; Tichy, Walter F. ORCID iD icon

Abstract:

Writing parallel programs is hard, especially for inexperienced programmers. Parallel language features are still being added on a regular basis to most modern object-oriented languages and this trend is likely to continue. Being able to support developers with tools for writing and optimizing parallel programs requires a deep understanding of how programmers approach and implement parallelism.

We present an empirical study of 135 parallel open-source projects in Java, C# and C++ ranging from small (< 1000 lines of code) to very large (> 2M lines of code) codebases. We examine the projects to find out how language features, synchronization mechanisms, parallel data structures and libraries are used by developers to express parallelism. We also determine which common parallel patterns are used and how the implemented solutions compare to typical textbook advice.

The results show that similar parallel constructs are used equally often across languages, but usage also heavily depends on how easy to use a certain language feature is. Patterns that do not map well to a language are much rarer compared to other languages. Bad practices are prevalent in hobby projects but also occur in larger projects.


Originalveröffentlichung
DOI: 10.1145/2837476.2837481
Dimensions
Zitationen: 1
Zugehörige Institution(en) am KIT Institut für Programmstrukturen und Datenorganisation (IPD)
Publikationstyp Proceedingsbeitrag
Publikationsjahr 2015
Sprache Englisch
Identifikator ISBN: 978-1-4503-3910-0
KITopen-ID: 1000052153
Erschienen in SEPS 2015 : Proceedings of the 2nd International Workshop on Software Engineering for Parallel Systems, Fri 23 - Fri 30 October 2015 Pittsburgh, Pennsylvania, United States
Verlag Association for Computing Machinery (ACM)
Seiten 35-44
Nachgewiesen in Dimensions
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft
KITopen Landing Page