Mechanisms that separate algorithms from implementations for parallel patterns

Christopher D. Krieger, Andrew Stone, Michelle Mills Strout

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Scopus citations


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.

Original languageEnglish (US)
Title of host publicationParaPLoP 2010 - 2nd Workshop on Parallel Programming Patterns, Proceedings
StatePublished - 2010
Externally publishedYes
Event2nd Workshop on Parallel Programming Patterns, ParaPLoP 2010 - Carefree, AZ, United States
Duration: Mar 30 2010Mar 31 2010

Publication series

NameACM International Conference Proceeding Series


Conference2nd Workshop on Parallel Programming Patterns, ParaPLoP 2010
Country/TerritoryUnited States
CityCarefree, AZ

ASJC Scopus subject areas

  • Software
  • Human-Computer Interaction
  • Computer Vision and Pattern Recognition
  • Computer Networks and Communications


Dive into the research topics of 'Mechanisms that separate algorithms from implementations for parallel patterns'. Together they form a unique fingerprint.

Cite this