SIGCSE 2013 - The 44th ACM Technical Symposium on Computer Science Education
March 6-9, 2013, Denver, USA

Workshop 31: Developing a Hands-on Undergraduate Parallel Programming Course with Pattern Programming

3:00 pm to 6:00 pm Saturday March 9, 2013, Room: Governors 9

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

Agenda
Materials
3:00 pm - 3:15 pm

Welcome and opening remarks (15 minutes) Using patterns 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.

Introduction
(17 slides)


3:15 pm - 4:25 pm

Session 1: Basic Pattern Programming (70 minutes)

    a) Presenters: Seeds pattern programming framework, outline of pattern programming code for a workpool - Monte Carlo pi. Compiling using Eclipse. (Approx. 25 minutes)


    b) Participants: Guided hands-on experience. Software on flash drives, installing software. Compile and execute Seeds pattern programming Monte Carlo pi code on laptop. Compare with sequential code. To continue after break. (Approx. 45 minutes)


Session 1 presentation
(27 slides)

Session 1 Hands-on notes
(12 pages)

Workshop Software

Moving software to a new location

Software FAQs

4:25 pm - 4:35 pm
Break (10 minutes)

4:35 pm - 5:35 pm

Session 2: Further pattern programming and the compiler directive approach (60 minutes)

    a) Presenters: Seeds code for matrix addition and matrix multiplication, use of Seeds segment variable. (Approx 15 minutes)

    b) Participants: Continuing guided hands-on experience. Compile and execute Seeds pattern programming matrix addition code on laptop. Modify code to perform matrix multiplication and explore performance improvements. (Approx. 25 minutes)
       
    c) Presenters: Brief introduction to using compiler directives to achieve higher level of programming, Paraguin compiler. (Approx. 20 minutes)

 

 

Session 2a presentation
(19 slides)


Session 2 Hands-on notes
(8 pages)

Session 2c presentation
(15 slides)

5:35 pm - 6:00 pm

Discussion of promoting structured parallel programming at undergraduate level (25 minutes)
(All) Discussion of teaching parallel and distributed programming at a higher level of abstraction at the undergraduate level. Discussing on pattern programming approach in the classroom and in professional programming, relationship to existing software engineering techniques, software, hardware requirements, use of labs and servers, review of available textbooks and their use in the classroom, prerequisites.



SIGCSE 2013 paper
Paper Presentation

 



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.
March 4, 2013.