Difference between revisions of "Domain Specific Parallel Programming"

From CERES
Jump to: navigation, search
 
(39 intermediate revisions by one user not shown)
Line 2: Line 2:
 
|CourseShortDescription=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.
 
|CourseShortDescription=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.
 
|CourseLevel=Advanced
 
|CourseLevel=Advanced
|isNativeISlab=0
+
|CourseUrl=http://ceres.hh.se/mediawiki/Domain_Specific_Parallel_Programming
 
|SubjectArea=Embedded Parallel Computing, Computer Architecture
 
|SubjectArea=Embedded Parallel Computing, Computer Architecture
 
}}
 
}}
Learning Outcomes:
+
==Contact ==
  
Upon completion of the course, the student shall be able to:
+
===Lecturers===
 +
[[Zain Ul-Abdin]], [[Tomas Nordström]]
 +
 
 +
* Office: E 307
 +
* Telephone 035 16 7309
 +
* Email: [mailto:zain-ul-abdin@hh.se]
 +
 
 +
 
 +
==Learning Objectives==
  
 
* Knowledge and understanding
 
* 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
+
** 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
 
* Skills and abilities
    - program parallel computer systems intended for embedded applications
+
** 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
+
** 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
+
** read and understand scientific articles in the area, to review and discuss them and to make summaries and presentations
 
* Judgement and approach
 
* Judgement and approach
    - discuss and relate the merits of various architectures supporting data-level parallelism
+
** 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  
+
** 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. Prepare a short presentation (10-15 mins) on a related topic based on the theme of the reading session.
 +
*** Use the suggested material in the course as a starting point
 +
*** Mention at least three important messages in the suggested reading materials
 +
*** Perform a literature study around the topic and present your findings
 +
*** Highlight common characteristics and see if you can come up with a classification
 +
* 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 ==
  
Primary Content:
+
{| class="wikitable"
 +
|-
 +
! Schedule !!  Activity !! Material / Literature Reference
 +
|-
 +
| April 13, 10-12
 +
|| Lecture 1: Parallel Programming Patterns & Models of Computation || [https://www.dropbox.com/s/8my4etd392lgz0a/DSPP_MoC_lect.pdf?dl=0 Lecture Handouts], Reading: [http://www.cise.ufl.edu/research/ParallelPatterns/ Mattson et al., "A Pattern Language for Parallel Programming" (2004)]
 +
|-
 +
| April 15, 13-15
 +
|| Reading Ex. 1: Landscape of Parallel Computing  || [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html 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  || [https://inst.eecs.berkeley.edu/~ee249/fa07/discussions/TSM.pdf A Lee & Sangiovanni-Vincentelli, "Framework for Comparing Models of Computation" (1998)], [http://www2.hh.se/staff/tola/scientific_writing/lee_concurrentmodels.pdf Lee & Neuendorffer, "Concurrent Models of Computation for Embedded Software" (2004)]
 +
|-
 +
| April 28, 13-15
 +
|| Lecture 2: Introduction to Dataflow Programming in CAL  || [https://www.dropbox.com/s/zp63urj91y2nccq/DSPP_CAL_lect.pdf?dl=0 Lecture Handouts], Reading: [https://embedded.eecs.berkeley.edu/caltrop/docs/LanguageReport/CLR-1.0-r1.pdf Eker & Janneck "CAL Language Report" (2003)]
 +
|-
 +
| April 30, 10-12
 +
|| Reading Ex. 3: Bulk Synchronous Programming Model  || [http://dl.acm.org/citation.cfm?id=79181 Valiant, "A Bridging Model for Parallel Computing" (1990)], [http://people.seas.harvard.edu/~valiant/bridging-2010.pdf Valiant, "A Bridging Model for Multi-core Computing" (2010)]
 +
|-
 +
| May 5, 13-15
 +
|| Lecture 3: Manycore Architectures and their Programming  || [https://halmstaduniversity.box.com/s/82e47pnvhzgc90h2wlvu66655ntgy2it Handouts], Reading: [http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7094761&isnumber=7094373 Olofsson, Andreas; Nordstrom, Tomas; Ul-Abdin, Zain, "Kickstarting high-performance energy-efficient manycore architectures with Epiphany," Asilomar Conference on Signals, Systems and Computers, 2014 48th, pp.1719-1726, 2-5 Nov. 2014].
  
The course is divided into a lecture part, a programming exercises including a small project, and a seminar series based on selected course literature.
+
Exercise: Describe [http://www.kalrayinc.com/ Kalray]'s MPPA-256 architecture in a similar fashion as our paper on Adapteva. Links: [http://www.kalrayinc.com/kalray/downloads/ Kalray Downloads], Papers: [http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6670342 A clustered manycore processor architecture for embedded and accelerated applications], [http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6800311 Time-critical computing on a single-chip massively parallel processor] [http://www.irit.fr/torrents/seminars/20121214/kalray.pdf Kalray Presentation Slides]
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.
+
| May 12, 13-15
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.
+
|| Reading Ex. 4: Invasive Computing  || [https://www.info.uni-karlsruhe.de/uploads/publikationen/teich11msoc.pdf 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  ||
 +
|}

Latest revision as of 15:46, 5 May 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. Prepare a short presentation (10-15 mins) on a related topic based on the theme of the reading session.
      • Use the suggested material in the course as a starting point
      • Mention at least three important messages in the suggested reading materials
      • Perform a literature study around the topic and present your findings
      • Highlight common characteristics and see if you can come up with a classification
  • 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 Computation Lecture Handouts, Reading: Mattson et al., "A Pattern Language for Parallel Programming" (2004)
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 Lecture 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, Reading: Olofsson, Andreas; Nordstrom, Tomas; Ul-Abdin, Zain, "Kickstarting high-performance energy-efficient manycore architectures with Epiphany," Asilomar Conference on Signals, Systems and Computers, 2014 48th, pp.1719-1726, 2-5 Nov. 2014.

Exercise: Describe Kalray's MPPA-256 architecture in a similar fashion as our paper on Adapteva. Links: Kalray Downloads, Papers: A clustered manycore processor architecture for embedded and accelerated applications, Time-critical computing on a single-chip massively parallel processor Kalray Presentation Slides

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