Course Information

CS 616: Parallelizing Compilers

Parallelizing Compilers - motivation and overview, structure of a parallelizing compiler; review of code optimization techniques in compilers for sequential machines. Parallelism detection - data dependence, direction vectors, loop carried and loop independent dependences; tests for data dependence and their applicability, construction of data dependence graph. Control dependence and control dependence graph. Restructuring transformations and automatic extraction of parallelism; representation of iteration spaces of multiply nested loops; loop based transformations such as loop distribution, loop coalescing, loop inter-change and cycle shrinking transformation. Introduction to machine models and associated algorithms for parallel code generation and task graph construction. Interprocedural analysis - aliasing information, summary data flow analysis, interprocedural constant propagation, interprocedural data dependence analysis and parallelisation of call statements. Partitioning and Scheduling of a task graph; models for communication, partitioning and scheduling algorithms, dynamic scheduling algorithms, target code generation. Case studies of contemporary parallelising compiler efforts.

M. J. Wolfe, Optimizing Supercompilers for supercomputers ,MIT Press, 1989. V. Sarkar, Partitioning and Scheduling Parallel Programs for Execution on Multiprocessors, MIT Press, 1989. U. Banerjee, Dependence Analysis for Supercomputing, Norwell, Kluwer Academic Publishers, 1988.
Home Page


UG com
Other Details

Duration : Full Semester Total Credit : 6
Type : Theory
Autumn Semester 2019-20

Status : Offered Instructor : Prof. Supratim Biswas
Spring Semester 2019-20

Status : Not Offered Instructor : ---

Last Modified Date: 15-Jul-2013


Faculty CSE IT
Forgot Password
    [+] Sitemap     Feedback