The main topics include
1. Data dependence analysis.2. Loop parallelization theories.
3. Data flow analysis equations (Aho’s book Chapter 8-10).
4. Pointer and Structure analysis
5. Parallel Languages and Parallel Programming Environments.
6. ILP compilers
7. DSP compilers
8. Superscalar and VLIW Compilations for modern single processor architectures.
9. DSP library and DSP compilation issues.
10. Compilers and OS for energy reductions.
11. Compilers for low-power.
12. Compilers for embedded systems.
13. Toolkits for DSP processors.
14. Compilers for embedded multi-core systems.
15. OpenCL Compilers for HSA.
16. OpenVX Compiler Designs.
Languages and Software used
C, C++, Fortran 77, Fortran 90, PAC DSP Tools, LLVM, and GCC compilers.Text Books
Lecture Notes by the instructor.Reference Book
1. "Compilers, Principles, Techniques, and Tools", A. Aho, Monica Lam, R. Sethi, J. Ullman, Addison-Wesley, Second Edition, 2007.2. "Optimizing Compilers for Modern Architectures", Randy Allen Ken Kennedy, Morgan Kaufmann, Academic Press 2002
3. “Embedded Computing: A VLIW Approach to Architecture, Compilers, and Tools”, Chapter 7-8, J. Fisher, P. Faraboschi, C. Young, Morgan Kaufmann, 2005 (Elesvier).
4. Encyclopedia of Parallel Computing,David Padua(Editor)
Week-by-Week Schedule
1. Overviews for course materials/dependence2. Dependences of programs/loop transformations
3. More loop transformations and diophantine equations/(assignment # 1).
4. Parallel Programming Principles: SPMD & Amdahl’s Law
5. Parallel Programming Principles: Memory locality, Blas1, Blas2, Blas3
6. Data flow equation (Part 1): reducible graphs and flow equations
7. Data flow equation (Part 2): Loops, and various variations.
8. Data flow equation (Part 3): Pointers and general frameworks (assignment # 2).
9. ILP compilers.
10. VLIW compilations.
11. DSP compilers (I).
12. DSP compilers (II).
13. DSP compilers (III).
14. Compilers for low-power.
15. OpenCL Compilers (I) // Final Project
16. OpenCL Compilers (II)
Tool
1. diophantineGrading
Grading
1. Projects 40% (Totally three projects)2. Final-exam 40%
3. Special topic presentations 20%