Efficient Heterogeneous Computing
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Architecture, Operating Systems and Networks |
Instance: 2021/2022 - 1S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
M.EIC |
6 |
Syllabus |
2 |
- |
6 |
39 |
162 |
Teaching language
English
Objectives
This course covers all the stages of the application design flow for heterogeneous systems (heterogeneous multi-core/multi-processor, GPGPU, FPGA-based accelerators). Besides the exposition component of examples and use cases in this course, an important component for the acquisition of knowledge is through the execution of a project by groups of students.
The exposure of the topics and their practice contribute decisively to enable students to familiarize themselves with the body of knowledge related to heterogeneous systems.
The content covered in the syllabus will strongly contribute to the competencies described.
Learning outcomes and competences
- Describe and explain the processes, methodologies, and best practices associated to the development of applications in the context of heterogeneous high-performance computing systems;
- Describe and explain the different stages of the process to map an application to heterogeneous architectures;
- Identify the main problems and challenges on mapping and optimizing applications;
- Carry out the tuning of an application according to specific requirements such as performance and energy consumption;
- Explain and apply a comprehensive set of source-to-source code transformations for the mapping and tuning of applications codes to heterogeneous high-performance computing systems;
- Describe and select available tools to help tuning and mapping an application to a computing system, possibly consisting of multiple heterogeneous/homogeneous cores;
- Analyze real-life application examples to uncover methods to map and tune their own applications.
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Computer Architecture;
Compilers;
Programming;
Data Structures and Algorithms;
Parallel Computing and/or Programming;
Program
M1. Introduction to Heterogeneous Computing Platforms.
M2. High Performance Embedded Computing: Target Architectures; Hardware Accelerators; Performance, Power and Energy Models; Transformations and Tuning for Heterogeneous Architectures.
M3. Controlling the Design and Development Cycle.
M4. Source Code Analysis and Instrumentation: Source Code Complexity Metrics; Source Level Application Code Profiling; Tracing Loop Metrics.
M5. Source Code Transformations and Optimizations: Basic Transformations; Loop-based Transformations; Function-based Transformations; Partitioning.
M6. Compiler Optimizations: Code Specialization; Runtime Aware Optimizations.
M7. Code Retargeting: Compiler Directives and Pragmas; Mapping to Multi-Core, GPU-based and FPGA-based Systems.
M8. Advanced Topics: Runtime Adaptability; Performance/Energy Auto-Tuning; Design Space Exploration.
Mandatory literature
João Manuel Paiva Cardoso;
Embedded computing for high performance. ISBN: 978-0-12-804189-5
Terzo, O., Djemame, K., Scionti, A., & Pezuela, C. ;
Heterogeneous computing architectures: challenges and vision, Boca Raton: CRC Press, 2019. ISBN: 9780367023447
Wolf, M.;
High-performance embedded computing: applications in cyber-physical systems and mobile computing, Morgan Kaufmann, 2014
Marilyn Wolf;
Computers as components. ISBN: 978-0-12-805387-4
Various; Selected scientific papers
Teaching methods and learning activities
Lectures: presentation of subject matter, accompanied by examples and clues to solve the problems of practical sessions and practical work. Theoretical-practical classes: problem solving and discussion of practical work issues.
keywords
Technological sciences > Technology > Computer technology > Software technology
Technological sciences > Engineering > Computer engineering
Technological sciences > Technology > Computer technology > Systems technology
Evaluation Type
Distributed evaluation without final exam
Assessment Components
Designation |
Weight (%) |
Teste |
25,00 |
Trabalho prático ou de projeto |
60,00 |
Apresentação/discussão de um trabalho científico |
15,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
Designation |
Time (hours) |
Estudo autónomo |
35,00 |
Frequência das aulas |
42,00 |
Trabalho laboratorial |
75,00 |
Apresentação/discussão de um trabalho científico |
10,00 |
Total: |
162,00 |
Eligibility for exams
Frequency Conditions: a) Practical work with 50% or better;
Do not exceed maximum limit (3) of absences in TP classes.
Calculation formula of final grade
Calculation formula of final grade:
- Project (PRJ) [0..20]
- Presentation and discussion of a scientific paper (PAPER) [0..20]
- EX: grade in the midterm exam (EX1) or in the “recurso” exam (EX2) [0..20]
- Final grade (FG) = ROUND (0.60 * AD + 0.15 * PAPER + 0.25 * EX)
Approval Conditions:
- Do not exceed maximum limit (3) of absences in classes, and
- PROJ >= 10.0, and
- EX1 or EX2 >= 8.0, and
- Final Grade (FG) >= 10