Embedded Parallel Computing, 7.5 credits
Parallelldatorer i inbyggda system, 7,5 hp
Course code: DO8003
School of Information Technology
Level: Second cycle
Select course syllabus
Finalized by: Forsknings- och utbildningsnämnden, 2024-09-18 and is valid for students admitted for spring semester 2025.
Main field of study with advanced study
Computer Science and Engineering, Second cycle, has second-cycle course/s as entry requirements. (A1F)Entry requirements
Courses in computer science, computer engineering and electrical engineering of at least 90 credits. Courses in mathematics of at least 30 credits or courses including calculus, linear algebra and transform methods. The courses Artificial Intelligence 7.5 credits, Engineering Mathematics 7.5 credits and Algorithms, Data Structures and Problem Solving 7.5 credits or Real-Time Embedded Systems 7.5 credits. English 6.
Placement in the Academic System
The course is included as an elective course in the Master Programme in Embedded and Intelligent Systems 120 credits and in the Programme Computer Science and Engineering 300 credits. The course is also given as a single subject course.
Objectives
The course is intended to develop the student's knowledge and understanding of how parallel computing can be used, as a way to meet application demands in embedded systems, such as performance and power efficiency. Further, it is intended to give a general insight into current research and development in regard to parallel architectures and computation models. Parallelism of various types exists in all modern computer architectures, and knowledge about how to apply parallelism is necessary, in particular, when designing embedded computer systems.
Following successful completion of the course the student should 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 ability
- 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; as well as identify relevant research publications and research groups in the area
Judgement and approach
- relate the state of the art in the area to the current research and development, in particular such research and development that is important for the design of embedded systems
Content
The course is divided into a lecture part, a laboratory part including a small project, and a seminar part.
The lecture part initially gives a motivation for parallelism, based on demands on embedded computing (such as performance and power efficiency) and applications that require parallelism. Then it presents the fundamentals of parallel architectures (forms of parallelism, SIMD, MIMD, dataflow, reconfigurable architectures, interconnection networks, etc.) and parallel programming models (shared memory, message passing, stream programming, communicating sequential processes, process networks, etc.). Example architectures and programming techniques are presented and discussed. This part will also discuss various limitations, such as power and energy limitations or chip technology, which will influence future architecture developments.
The laboratory part provides hands-on experience of embedded parallel computing, primarily based on many-core processors on a chip and their available programming tools.
In the seminar part of the course, course participants make detailed studies of various sub-areas or specific architectures and lead seminars in these. The university’s research projects are included in these special studies.
Language of Instruction
Teaching Formats
Instruction is in the form of lectures, laboratory sessions, project tutoring and seminars. The latter are given by the students based on literature studies and discussions on subjects determined in consultation with the course instructor. All participants in a seminar prepare themselves by reading an introductory text for the topic, while those responsible for the seminar search additional information and make presentation of this as a background for further discussion. The project and the seminars shall be documented in short reports. The laboratory sessions are mandatory, and also leading at least one seminar.
Grading scale
Examination formats
The laboratory exercises and programming project are obligatory parts of the course. The student also needs to make at least one seminar presentation to pass the course. Examination of the lecture part of the course is by written exam at the end of the course. Bonus points for the written exam may be earned through participation in the seminars and providing correct answers on the written quizzes. The quality of the specific seminar or seminars that the student is responsible for is also weighed into the final grade.
1802: Laborations, Project and Seminar Presentation, 2.5 credits
Two-grade scale (UG): Fail (U), Pass (G)
1801: Written Examination, 5 credits
Four-grade scale, digits (TH): Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Exceptions from the specified examination format
If there are special reasons, the examiner may make exceptions from the specified examination format and allow a student to be examined in another way. Special reasons can e.g. be study support for students with disabilities.
Course evaluation
Course evaluation is part of the course. This evaluation offers guidance in the future development and planning of the course. Course evaluation is documented and made available to the students.
Course literature and other materials
Literature list 2025-01-20 – Until further notice
The main textbook to be used for the lecture part of the course is:
[HP-AQA] Hennessy, J.L. and Patterson, D.A. Computer Architecture: A Quantitative Approach, The Morgan Kaufmann Series in Computer Architecture and Design, Sixth Edition, 2017.
Other suitable books, recommended for reading, are:
Kirk, David and Hwu, Wen-mei. Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufmann (Elsevier), Third Edition, 2016.
El-Rewini, H. & Abd-el-Barr, M. Advanced Computer Architecture and Parallel Processing, John Wiley & Sons, 2005. The book was used earlier in this course and is electronically available in fulltext form through the database ebrary, available through the University’s library.