Patternlets — A teaching tool for introducing students to parallel design patterns

Thanks to the ubiquity of multicore processors, today’s CS students must be introduced to parallel computing or they will be ill prepared as modern software developers. Professional developers of parallel software think in terms of parallel design patterns, which are markedly different from traditio...

Full description

Saved in:
Bibliographic Details
Published in:Journal of parallel and distributed computing Vol. 105; pp. 31 - 41
Main Author: Adams, Joel C.
Format: Journal Article
Language:English
Published: Elsevier Inc 01.07.2017
Subjects:
ISSN:0743-7315, 1096-0848
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Thanks to the ubiquity of multicore processors, today’s CS students must be introduced to parallel computing or they will be ill prepared as modern software developers. Professional developers of parallel software think in terms of parallel design patterns, which are markedly different from traditional (sequential) design patterns. It follows that the more we can teach students to think in terms of parallel patterns, the more their thinking will resemble that of parallel software professionals. In this paper, we present patternlets—minimalist, scalable, syntactically correct programs, each designed to introduce students to a particular parallel design pattern. The collection currently includes 44 patternlets (16 MPI, 17 OpenMP, 9 Pthreads, and 2 heterogeneous), of which we present a representative sample. We also present data that indicate the use of patternlets to introduce parallelism in CS2 produced a modest improvement in student understanding of parallel concepts. •Introduction to parallel design patterns.•Introduction to patternlets as minimalist, scalable, working programs.•Ideal for introducing students to parallel design pattern behaviors.•Detailed presentation of several patternlets, including: –Single Program Multiple Data (MPI, OpenMP).–Barrier (MPI, OpenMP).–Parallel Loop (MPI, OpenMP).–Reduction (MPI, OpenMP).–Gather (MPI).–Mutual Exclusion (OpenMP).•Description of courses in which patternlets have been used.•Data indicating that use of patternlets improved student learning.
ISSN:0743-7315
1096-0848
DOI:10.1016/j.jpdc.2017.01.008