National Workshop on Teaching an Undergraduate Parallel Programming Course with Pattern Programming

Monday July 13th, 2015

Southeastern Universities Research Association
1201 New York Avenue, NW
Washington, DC 20005

Barry Wilkinson
University of North Carolina Charlotte
Clayton Ferner
University of North Carolina Wilmington

Tentative Agenda

8:30 am Arrival, Continental Breakfast
9:00 am - 9:15 am

Welcome and opening remarks, outline of workshop. Wireless, laptop software.

9:15 am - 10:45 am

Session 1: Course development, OpenMP, MPI, and pattern programming tools

a) Presenters: Brief overview of existing parallel programming courses, OpenMP, MPI, CUDA. Introduction to pattern programming as a design approach to parallel programming, workpool, pipeline, stencil, divide and conquer, and synchronous all-to-all patterns, advantages, disadvantages, existing work, our approach. Top down and bottom-up approaches.

b) Participants: Installing VirtualBox and software stack for workshop. Using OpenMP and MPI, command line and Eclipse-PTP. Suzaku low level macros to hide MPI.

10:45 am - 11:00 am Break
11:00 am - 12:30 pm

Session 2: Pattern Programming with the Seeds Framework and the Suzaku Framework

a) Presenters: Development of higher level tools. Seeds pattern programming framework, code for workpool applications - Monte Carlo pi, matrix addition and multiplication. Suzaku workpool and other patterns.

b) Participants: Guided hands-on experience. Seeds pattern programming using Eclipse (Java), Monte Carlo pi, matrix addition/multiplication. Suzaku programs, workpool.

12:30 pm - 1:30 pm
Lunch
1:30 pm - 3:00 pm

Session 3: The Paraguin compiler approach

a) Presenters: Paraguin compiler pattern programming framework, matrix addition/multiplication, heat distribution using stencil pattern.

b) Participants: Guided hands-on experience.

3:00 pm - 3:15 pm Break
3:15 pm - 4:30 pm

Session 4: Discussion - Integrating patterns into parallel programming classes and lower level CS courses

Discussion on using the pattern programming approach to introduce parallel/distributed computing in the lower CS courses. Relationship with IEEE/CS curriculum.

Our experiences, course materials.

Future collaborations.

4:30 pm - 5:00 pm

Wrap up, questionnaire, follow-up support

Acknowledgements: This material is based upon work supported by the National Science Foundation under the collaborative grant #1141005/1141006, "Collaborative Research: Teaching Multicore and Many-Core Programming at a Higher Level of Abstraction." Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
April 10, 2015