Difference between revisions of "Domain Specific Parallel Programming"
(Created page with "{{CourseTemplate |CourseShortDescription=The course is intended to give general insights into current research and development efforts being undertaken to meet the future need...") |
|||
| Line 10: | Line 10: | ||
* 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 | |
Skills and abilities | 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 | * 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 | |
Revision as of 16:20, 31 March 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}}}
Learning Outcomes:
Upon completion of the course, the student shall be able to:
- 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 Content:
The course is divided into a lecture part, a programming exercises 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.