Skip to main content

Compilers for High Performance Computers

Credits
6
Types
Specialization complementary (High Performance Computing)
Requirements
This subject has not requirements , but it has got previous capacities
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

Others

Weekly hours

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

Competences

High performance computing

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

  • CG2 - Capability to lead, plan and supervise multidisciplinary teams.
  • 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
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Presentation


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

    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