Difference between revisions of "Domain Specific Parallel Programming"

From CERES
Jump to: navigation, search
Line 45: Line 45:
 
|-
 
|-
 
| April 13, 10-12
 
| April 13, 10-12
|| Lecture 1: Models of Computations & Parallel Programming Patterns || [https://www.dropbox.com/s/8my4etd392lgz0a/DSPP_MoC_lect.pdf?dl=0 Lecture Handouts], Reading: [http://www.cise.ufl.edu/research/ParallelPatterns/ A Pattern Language for Parallel Programming]
+
|| Lecture 1: Parallel Programming Patterns & Models of Computations || [https://www.dropbox.com/s/8my4etd392lgz0a/DSPP_MoC_lect.pdf?dl=0 Lecture Handouts], Reading: [http://www.cise.ufl.edu/research/ParallelPatterns/ A Pattern Language for Parallel Programming]
 
|-
 
|-
 
| April 15, 13-15
 
| April 15, 13-15

Revision as of 13:18, 13 April 2015

Course Code:
Short description: The course is intended to give general insights into current research and development efforts being undertaken to meet the future needs of energy-efficient embedded systems and high-performance computing. In particular the course aims at providing hands-on experience of applying parallelism of various types that exists in all modern computer architectures by using domain-specific programming techniques.
Course Level: Advanced
Course page: http://ceres.hh.se/mediawiki/Domain_Specific_Parallel_Programming






Contact

Lecturers

Zain Ul-Abdin, Tomas Nordström

  • Office: E 307
  • Telephone 035 16 7309
  • Email: [1]


Learning Objectives

  • Knowledge and understanding
    • describe and explain the most important parallel architecture models, as well as parallel programming models, and discuss their respective pros, cons, and application opportunities
  • Skills and abilities
    • program parallel computer systems intended for embedded applications
    • describe, evaluate, and discuss how the choice of programming model and method influences, e.g., execution time and required resources
    • read and understand scientific articles in the area, to review and discuss them and to make summaries and presentations
  • Judgement and approach
    • discuss and relate the merits of various architectures supporting data-level parallelism
    • discuss and relate the high-level domain-specific programming techniques with respect to low-level hand-written program development

Primary Contents

The course is divided into three parts:

  • Lectures
    • The lecture part provides introduction to parallel programming concepts and models and includes tutorials about the state-of-the-art manycore architectures, CAL language, and the Epiphany manycore architecture (Parallella Platform) that are then used in the practical part of the course.
  • Reading Exercises
    • In this part, course participants make detailed studies of the literature related to models of computation and parallel programming methodologies for high-performance embedded computing and present their findings in the form of seminar.
  • Programming Exercises
    • The programming part provides hands-on experience of embedded parallel computing using CAL dataflow language and compiling the programs onto an emerging low-power manycore processor as well as using its proprietary low-level programming tools.

Schedule and Study Material

Schedule Activity Material / Literature Reference
April 13, 10-12 Lecture 1: Parallel Programming Patterns & Models of Computations Lecture Handouts, Reading: A Pattern Language for Parallel Programming
April 15, 13-15 Reading Ex. 1: Landscape of Parallel Computing Asanovic et al., "The Landscape of Parallel Computing Research: A View from Berkeley" (2006)
April 23, 15-17 Reading Ex. 2: Comparing Models of Computation A Lee & Sangiovanni-Vincentelli, "Framework for Comparing Models of Computation" (1998), Lee & Neuendorffer, "Concurrent Models of Computation for Embedded Software" (2004)
April 28, 13-15 Lecture 2: Introduction to Dataflow Programming in CAL Handouts, Reading: Eker & Janneck "CAL Language Report" (2003)
April 30, 10-12 Reading Ex. 3: Bulk Synchronous Programming Model Valiant, "A Bridging Model for Parallel Computing" (1990), Valiant, "A Bridging Model for Multi-core Computing" (2010)
May 5, 13-15 Lecture 3: Manycore Architectures and their Programming Handouts, Papers, Reading
May 12, 13-15 Reading Ex. 4: Invasive Computing Teich et al., "Invasive Computing - An Overview" (2010)
Programming Ex. 1: CAL Programming QR Decomposition (Gram Schmidt(Essayas), Given Rotation(Suleyman), Householder(Sebastian) Methods)
Programming Ex. 2: Epiphany Programming QR Decomposition (Gram Schmidt(Essayas), Given Rotation(Suleyman), Householder(Sebastian) Methods)
May 26, 13-15 Course Wrap-up: Final Presentation of Implementation Results