CS652002 : Parallelizing Compilers

Spring 2010

Computer Engineering Department

Iran University of Science and Technology

Cource Timinng and Contacts

Saturday : 10-12   monday : 10-12

Instructor : Saeed Parsa               email : parsa@iust.ac.ir

Teaching Assistants : Mohamad Hamzei   email : hamzei@iust.ac.ir

                                 Mehdi Sakhaei Niea  email : sakhaei@iust.ac.ir

Course Description and Prerequisites

Description : This course deals with principles and practice of  compiler optimization techniques for automatic translation of sequential to multithreaded and multiprocessing parallel code. Parallel architectures and their application in high performance computing will be discussed. The issues of dependency analysis, loop parallelization, program transformation, multithreading, scheduling, synchronization and communication will be covered.

Prerequisites : Advanced Compiler

Main References & Handouts

i- References

  1. Optimizing Compilers for High Performance Architectures, Randy Allen, Ken Kennedy, 2001.

  2. Professional Multicore Programming (design and implementation for C++ programmes),  Cammeron Hughes, Tracy Hughes, 2008

  3. Compilers : Principles, Tools, Technique, Alfered V. Aho, 2007

  4. Thesis

ii. Handouts

  1. Parallelizing Compilers                                                                 5.  Advanced Compiler

  2. Multicores                                                                                   6.  Aliasing

  3. Multicore Algorithm (power point1 - 2, 2007: 1 - 2)                    7. Aliasing power points

  4. Multicore Programming (power point)

 

Course Description and Prerequisites

 

Lecture #

 

References

Handouts

Date

 1 Goals and Motivations      
 2 Parallel Architectures  ref #1, pages 21..29  Handout #1  
 3 Pipelining  ref #1, pages 21..29  Handout #1  
4 Vector Instructions  ref #1, pages 29..32  Handout #1  
 5 Superscalar and VLIW Processors  ref #1, pages 32..36  Handout #1  

6

Instruction Scheduling  ref #3, pages 732..736  Handout #1  

7 -8

Multicore

 ref #2, pages 2..4, 15..16  Handout #1  

9

Four Multicore Architectures : The AMD Opteron  ref #2, pages 21-25  Handout #1  

10

                                               The Sun UltraSparc T1  ref #2, pages 25-28  Handout #1  

11

                                               The IBM Cell Broaedband  ref #2, pages 28-31  Handout #1  

11

                                               Intel Core 2 DUO  ref #2, pages 31-33  Handout #1  

12

 Dependency Theory  ref #1, pages    

13

 Data Dependency analysis  ref #1, ref #3  Handout #1,#5  

14

 Aliasing  ref #3  Handout #6, #7  

15-16

 Control dependencies  ref #3  Hadnout #5  

17

 Task Graphs  ref #3  Handout #5  

18-19

 Task Graph pre-scheduling      

20

 Task Graph Scheduling      

21

 Loop Parallelization    Handout #1, pages75..106  

Essays

1. Posix Practicals

2. Mulithreading algorithm