Abstract

This paper discusses the impact of structured parallel programming methodologies in state-of-the-art industrial and research parallel programming frameworks. We first recap the main ideas underpinning structured parallel programming models and then present the concepts of algorithmic skeletons and parallel design patterns. We then discuss how such concepts have permeated the wider parallel programming community. Finally, we give our personal overview—as researchers active for more than two decades in the parallel programming models and frameworks area—of the process that led to the adoption of these concepts in state-of-the-art industrial and research parallel programming frameworks, and the perspectives they open in relation to the exploitation of forthcoming massively-parallel (both general and special-purpose) architectures.

Highlights

  • In the last two decades, the number of parallel architectures available to the masses has substantially increased

  • Our chief contribution in this paper is to provide an outline of the main results from algorithmic skeletons and parallel design patterns that have been migrated to industrial-strength parallel programming frameworks

  • 3 Research Programming Framework Evolution We present a short review of the history of structured parallel programming models and frameworks in order to introduce the discussion on state-of-the-art parallel programming environments in relation to the ‘‘structured’’ parallel programming concepts of Sect

Read more

Summary

Introduction

In the last two decades, the number of parallel architectures available to the masses has substantially increased. Parallel application programmers face the challenge of targeting hundreds of hardware-thread contexts, possibly associated to thousands of GP-GPU cores or, for top500-class architectures, millions of cores. These hardware features exacerbate the ‘‘software gap,’’ as Extended author information available on the last page of the article. Our chief contribution in this paper is to provide an outline of the main results from algorithmic skeletons and parallel design patterns that have been migrated to industrial-strength parallel programming frameworks They have arguably contributed to the acceptance and success of these frameworks along with the outlining of the possibilities still to be explored in the area. Aside from being of historical interest to those with an interest in structured parallel programming, the work may serve to inform the efforts of those charged with addressing the programmability of generation computing systems

Structured Parallel Programming
Algorithmic Skeletons
Parallel Design Patterns
Strengths and Weaknesses of Structured Parallel Programming
Research Programming Framework Evolution
Industrial Strength Programming Frameworks
Programming Frameworks Perspectives
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call