TY - GEN
T1 - Mechanisms that separate algorithms from implementations for parallel patterns
AU - Krieger, Christopher D.
AU - Stone, Andrew
AU - Strout, Michelle Mills
PY - 2010
Y1 - 2010
N2 - Parallel programming implementation details often obfuscate the original algorithm and make later algorithm maintenance difficult. Although parallel programming patterns help guide the structured development of parallel programs, they do not necessarily avoid the code obfuscation problem. In this paper, we observe how emerging and existing programming models realized as programming languages, preprocessor directives, and/or libraries are able to support the Implementation Strategy Patterns that were proposed as part of the Our Pattern Language. We posit that these emerging programming models are in some cases able to avoid code obfuscation through features that prevent tangling of algorithm and implementation details for parallelization and performance optimizations. We qualitatively evaluate these features in terms of how much they prevent tangling and how well they provide programmercontrol over implementation details. We conclude with remarks on potential research directions for studying how to produce efficient and maintainable parallel programs by separating algorithm from implementation.
AB - Parallel programming implementation details often obfuscate the original algorithm and make later algorithm maintenance difficult. Although parallel programming patterns help guide the structured development of parallel programs, they do not necessarily avoid the code obfuscation problem. In this paper, we observe how emerging and existing programming models realized as programming languages, preprocessor directives, and/or libraries are able to support the Implementation Strategy Patterns that were proposed as part of the Our Pattern Language. We posit that these emerging programming models are in some cases able to avoid code obfuscation through features that prevent tangling of algorithm and implementation details for parallelization and performance optimizations. We qualitatively evaluate these features in terms of how much they prevent tangling and how well they provide programmercontrol over implementation details. We conclude with remarks on potential research directions for studying how to produce efficient and maintainable parallel programs by separating algorithm from implementation.
UR - http://www.scopus.com/inward/record.url?scp=79955645945&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79955645945&partnerID=8YFLogxK
U2 - 10.1145/1953611.1953622
DO - 10.1145/1953611.1953622
M3 - Conference contribution
AN - SCOPUS:79955645945
SN - 9781605588735
T3 - ACM International Conference Proceeding Series
BT - ParaPLoP 2010 - 2nd Workshop on Parallel Programming Patterns, Proceedings
T2 - 2nd Workshop on Parallel Programming Patterns, ParaPLoP 2010
Y2 - 30 March 2010 through 31 March 2010
ER -