Compilers for High Performance Computers

You are here

Credits
6
Department
AC
Types
Specialization complementary (High Performance Computing)
Requirements
This subject has not requirements
Optimizing compilers play a critical role in modern computer systems ranging from mobile devices to supercomputers. Compilers can optimize for performance, power consumption and/or code size. Practically all computer scientists and engineers may benefit for a deep knowledge of compiler optimizations: programmers and application optimizers write programs that are better optimized by the compiler, computer designers design hardware features that are easy to use by compilers, and finally compiler writers develop new compiler optimizations. This course covers optimizations and aspects of the compiler back-end and middle-end such as: instruction level parallelism, memory hierarchy optimizations, data level parallelism and thread level parallelism.

Teachers

Person in charge

  • Josep Llosa Espuny ( )

Others

  • Josep Ramon Herrero Zaragoza ( )
  • Marc Gonzàlez Tallada ( )

Weekly hours

Theory
4
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
5

Competences

Technical Competences of each Specialization

High performance computing

  • CEE4.2 - Capability to analyze, evaluate, design and optimize software considering the architecture and to propose new optimization techniques.

Generic Technical Competences

Generic

  • CG2 - Capability to lead, plan and supervise multidisciplinary teams.

Transversal Competences

Appropiate attitude towards work

  • CTR5 - Capability to be motivated by professional achievement and to face new challenges, to have a broad vision of the possibilities of a career in the field of informatics engineering. Capability to be motivated by quality and continuous improvement, and to act strictly on professional development. Capability to adapt to technological or organizational changes. Capacity for working in absence of information and/or with time and/or resources constraints.

Basic

  • CB7 - Ability to integrate knowledges and handle the complexity of making judgments based on information which, being incomplete or limited, includes considerations on social and ethical responsibilities linked to the application of their knowledge and judgments.

Objectives

  1. Know the most common machine independent optimizations.
    Related competences: CEE4.2,
  2. Know scheduling techniques and register allocation for exploiting Instruction Level Parallelism
    Related competences: CEE4.2,
  3. Know the most common memory locality optimizations.
    Related competences: CEE4.2,
  4. Learn the concept and compiler techiques for exploiting Data Level Parallelism
    Related competences: CEE4.2,
  5. Compiler techniques and tools for exploiting Thread Level Parallelism
    Related competences: CEE4.2,
  6. Make a technical report on some advanced compiler technique
    Related competences: CEE4.2, CB7, CTR5,
  7. Make a presentation so that the other students learn some advanced compiler technique
    Related competences: CG2, CEE4.2, CB7, CTR5,

Contents

  1. Introduction
  2. Instruction Level Parallelism
  3. Memory Hierarchy Optimizations
  4. Data Level Parallelism
  5. Thread Level Parallelism

Activities

Introduction

Theory
2
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
0

Contents:

Instruction Level Parallelism

Theory
24
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
15
Objectives: 1 2
Contents:

Memory Hierarchy Optimizations

Theory
6
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
4
Objectives: 3
Contents:

Data Level Parallelism

Theory
2
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
1
Objectives: 4
Contents:

Thread Level Parallelism

Theory
20
Problems
0
Laboratory
0
Guided learning
0
Autonomous learning
12
Objectives: 5
Contents:

Teaching methodology

The classes consist of lectures intermixed with practical exercises and homework. In addition, some advanced topics will be selected by the students on demand. Each student will make a presentation of his selected topic to the rest of the class.

Evaluation methodology

The evaluation of this course will take into account three different items
a. A deliverable of a class assignment will account for 40% of the grade
b. The presentation in class of a related topic will account of 40% the grade
c. Attendance and participation in class will account for 20% of the grade.

Bibliografy

Basic: