Difference between revisions of "Domain Specific Parallel Programming"
From CERES
(10 intermediate revisions by one user not shown) | |||
Line 34: | Line 34: | ||
** 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. | ** 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 | * 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. | + | ** 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 | * 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. | ** 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. | ||
Line 45: | Line 49: | ||
|- | |- | ||
| April 13, 10-12 | | April 13, 10-12 | ||
− | || Lecture 1: | + | || 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 | | April 15, 13-15 | ||
Line 54: | Line 58: | ||
|- | |- | ||
| April 28, 13-15 | | April 28, 13-15 | ||
− | || Lecture 2: Introduction to Dataflow Programming in CAL || Handouts, | + | || 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 | | 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" ( | + | || 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 | | May 5, 13-15 | ||
− | || Lecture 3: Manycore Architectures and their Programming || Handouts, Papers, | + | || 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]. |
+ | |||
+ | 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] | ||
|- | |- | ||
| May 12, 13-15 | | May 12, 13-15 |
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
Contents
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
- 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.
- 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.