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, Suite 430
Washington, DC 20005

Barry Wilkinson
University of North Carolina Charlotte
Clayton Ferner
University of North Carolina Wilmington
Flyer/registration

Agenda

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

Welcome and opening remarks, outline of workshop.

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, our approach.

Slides:

Introduction to patterns

Hands-on Notes (all sessions)

9:15 am - 10:45 am

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

a) Presenters (45 minutes):

(i) Brief outline of MPI and MPI patterns

(ii) Suzaku routines

b) Participants: Guided hands-on experience (45 minutes):

(i) Installing VirtualBox and virtual machine for workshop

(ii) Brief Introduction to MPI Parallel Programming
      Hello world, matrix multiplication

(iii) Introduction to Suzaku low level patterns
      Point-to-point, matrix multiplication, N-body problem, graphics, N-body programs

 

Slides:

MPI Outline

Suzaku


Hands-on Notes

Additional notes:
Suzaku macros
N-body problem
Using Eclipse

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

Session 2: Pattern Programming - Higher-level patterns with Suzaku and the Seeds Framework

a) Presenters: Development of higher level patterns and tools (60 minutes):

(i) Suzaku workpool. Monte Carlo pi and matrix multiplication.

(ii) Seeds pattern programming framework - Monte Carlo pi, matrix addition and multiplication.

b) Participants: Guided hands-on experience (30 minutes).

(i) Suzaku workpool - Monte Carlo pi, matrix multiplication and N-body programs.

(ii) Seeds pattern programming using Eclipse (Java), workpool pattern - Monte Carlo pi, matrix addition/multiplication.

 

Slides:

Suzaku Workpool

Seeds Framework

Hands-on Notes

Additional notes:
Suzaku workpool Suzaku generalized patterns
Seeds network version
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, compiler submission page, programs, hello world, matrix addition, matrix multiplication, heat distribution (stencil pattern).

 

Slides:

Paraguin Compiler

Hands-on Notes

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

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

a) Presenters: Brief presentation on course deveopment at UNC-C and UNC-W and our experences (20 minutes).

Regular courses, NCREN video conferencing courses, on-line courses. Top-down verse bottom up. Use of VM, cluster. Future use of pattern-based parallel programming. ACM/IEEE 2013 curriculum.

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

 

 

Course development at UNC-C/W

4:45 pm - 5:00 pm

Wrap up, follow-up support, future collaborations.
 

Software

  • Parallel Programming Software (VM and sample files)
  • Additional Information

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.
June 29, 2015