Difference between revisions of "Domain Specific Parallel Programming"

From CERES
Jump to: navigation, search
Line 44: Line 44:
 
|| Lecture 1: Models of Computations & Parallel Programming Patterns  || Handouts, Papers
 
|| Lecture 1: Models of Computations & Parallel Programming Patterns  || Handouts, Papers
 
|-
 
|-
| Lecture 2: Functional Testing
+
| April 16, 13-15
March 30, 2015
+
|| Reading Ex. 1: Landscape of Parallel Computing  || The Landscape of Parallel Computing Research: A View from Berkeley (2006)
||  
+
||   Chapters 6 and 7 of Jorgensen
+
[http://dx.doi.org/10.1002%2Fstvr.4370030203 M. Grochtmann and K. Grimm, Classification trees for partition testing]
+
 
|-
 
|-
| Lecture 3: Coverage Criteria 
+
| April 23, 15-17
April 1, 2015
+
|| Reading Ex. 1: Comparing Models of Computation || A Framework for Comparing Models of Computation (1998), Concurrent Models of Computation for Embedded Software (2004)
||  
+
+
  || Chapter 2 Ammann and Offutt
+
Chapters 9 and 10 of Jorgensen
+
 
|-
 
|-
| Lecture 4: Guest Lecture 
+
| April 28, 13-15
April 9, 2015
+
|| Lecture 2: Introduction to Dataflow Programming in CAL  || CAL Language Report
||  
+
||
+
 
|-
 
|-
| Lecture 5: Model Checking 
+
| April 30, 10-12
 
+
|| Reading Ex. 2: Bulk Synchronous Programming Model  || A Bridging Model for Parallel Computing (1990), A Bridging Model for Multi-core Computing (2010)
April 13, 2015
+
||  
+
 
+
 
+
||  
+
 
+
 
|-
 
|-
| Lecture 6: UI Testing 
+
| May 5, 13-15
 
+
|| Lecture 1: Manycore Architectures and their Programming  || Handouts, Papers
April 20, 2015
+
||  
+
 
+
 
+
||  
+
 
+
 
|-
 
|-
| Lecture 7: Slicing and Debugging 
+
| May 12, 13-15
April 27, 2015
+
|| Reading Ex. 2: Invasive Computing  || Invasive Computing - An Overview (2010)
||  
+
||
+
Chapters 5, 6, and 13 of Zeller
+
[http://dl.acm.org/citation.cfm?id=802557 M. Wiser, Program Slicing]
+
 
+
 
|-
 
|-
| Presentation of Papers 
+
|  
May 11, 2015
+
|| Programming Ex. 1: CAL Programming  || QR Decomposition(Gram Schmeidt, Given Rotation, House-holder Methods)
||     ||  
+
 
|-
 
|-
 
+
|
 +
|| Programming Ex. 2: Epiphany Programming  || QR Decomposition(Gram Schmeidt, Given Rotation, House-holder Methods)
 
|-
 
|-
| Lecture 8: Reviewing Model Examination 
+
| May 26, 13-15
May 18, 2015
+
|| Reading Ex. 2: Final Presentation of Implementation Results  || Invasive Computing - An Overview (2010)
||     ||  
+
 
|-
 
|-
 
|}
 
|}

Revision as of 15:45, 2 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: {{{CourseUrl}}}






Contact

Lecturer

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 a lecture part, a programming exercises part including a small project, and a seminar series based on selected course literature. The lecture part 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. The laboratory 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. In the seminar part of the course, 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. The university’s research projects are included in these special studies.

Schedule and Study Material

Schedule Activity Material / Literature Reference
April 13, 10-12 Lecture 1: Models of Computations & Parallel Programming Patterns Handouts, Papers
April 16, 13-15 Reading Ex. 1: Landscape of Parallel Computing The Landscape of Parallel Computing Research: A View from Berkeley (2006)
April 23, 15-17 Reading Ex. 1: Comparing Models of Computation A Framework for Comparing Models of Computation (1998), Concurrent Models of Computation for Embedded Software (2004)
April 28, 13-15 Lecture 2: Introduction to Dataflow Programming in CAL CAL Language Report
April 30, 10-12 Reading Ex. 2: Bulk Synchronous Programming Model A Bridging Model for Parallel Computing (1990), A Bridging Model for Multi-core Computing (2010)
May 5, 13-15 Lecture 1: Manycore Architectures and their Programming Handouts, Papers
May 12, 13-15 Reading Ex. 2: Invasive Computing Invasive Computing - An Overview (2010)
Programming Ex. 1: CAL Programming QR Decomposition(Gram Schmeidt, Given Rotation, House-holder Methods)
Programming Ex. 2: Epiphany Programming QR Decomposition(Gram Schmeidt, Given Rotation, House-holder Methods)
May 26, 13-15 Reading Ex. 2: Final Presentation of Implementation Results Invasive Computing - An Overview (2010)