Compilers for High Performance Computers

You are here

Credits
6
Types
Specialization complementary (High Performance Computing)
Requirements
This subject has not requirements
Department
AC
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

Activity Evaluation act


Introduction



Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h

Instruction Level Parallelism


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

Memory Hierarchy Optimizations


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

Data Level Parallelism


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

Thread Level Parallelism


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

Deliverable


Objectives: 1 2 3 4 5 6
Week: 10
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
20h

Presentation


Objectives: 1 2 3 4 5 7
Week: 14
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
20h

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.

Bibliography

Basic: