schedule
   
NEWS






GCC for Parallelization

A day long tutorial conducted in conjuction with PPoPP 2012, New Orleans, LA, USA

Date

Saturday 25 February 2012

Coverage

  • Motivation

    The GNU Compiler collection is a compiler generation framework which constructs a compiler for a given architecture by reading the machine descriptions for that architecture. This framework is practically very useful as evidenced by the existence of several dozens of targets for which compilers have been created using GCC. These compiler are routinely used by millions of users for their regular compilation needs. Among the other optimizations, GCC also provides support for auto-parallelization and auto-vectorization. However, it seems to be adhoc and has some limitations. Thus, there is a lot of scope for interesting work in this area.

    Most explanations of GCC which are publicly available describe many details and tend to be heavy on information rather than insights. As a consequence, a clear and crisp explanation of the journey from a given machine description to an actual run of a compiler generated from that machine description is not available. We believe that this is the main reason why experimentation with GCC is not as wide-spread as it could have been, given the entire source code is available with documentation.

    In this tutorial we describe some carefully chosen abstractions that help one to understand the retargetability mechanism and the architecture of the compiler generation framework of GCC and relate it to a generated compiler. Further, we also explain the essential abstractions related to parallelization and vectorization support in GCC.

  • List of topics covered

    S.No. Topics Slides
    1. Introductory Remarks To be uploaded
    2. First Level Gray Box Probing To be uploaded
    3. Gray Box Probing for Optimizations To be uploaded
    4. GCC Configuration and Building To be uploaded
    5. Module Binding Mechanisms and Control Flow in GCC To be uploaded
    6. Machine Descriptions in GCC To be uploaded
    7. The Retargetability Model of GCC To be uploaded
    8. Introduction to Auto-Parallelization and Auto-Vectorization Download
    9. Obvserving Parallelization and Vectorization in GCC Download
    10. GRAPHITE: Polyhedral Representation in GCC Download
    11. Summary: Essential Abstractions in GCC To be uploaded

Target Audience

People interested in using GCC for their research as well as people interested in contributing to GCC will benefit from this tutorial. It is expected that this tutorial will bring down their ramp up period into GCC from several frustrating months to a few stimulating weeks. This tutorial will also be useful for people who are interested in relating class room concepts of compilation to a large scale practical compiler which is widely used.

Special Requirements

This tutorial is a lecture based tutorial and hence it is not necessary for the audience to bring a laptop. Soft copies of the slides will be made available on this page well in advance.

Presenters and Organizers

  • Uday P. Khedker (http://www.cse.iitb.ac.in/~uday).

    Presenter's Bio

    Uday Khedker finished Ph.D. in Computer Science & Engg. From IIT Bombay in 1995 and taught at the Department of Computer Science at Pune University from 1984 to 2001. Since then, he is with IIT Bombay where currently he is Professor of Computer Science & Engg.

    His areas of interest are Programming Languages and Compilers and he specialises in data flow analysis and its applications to code optimization. A recent research thrust involves cleaning up the GNU Compiler Collection (GCC) to simplify its deployment, retargetting, and  enhancements. Other goals include increasing its trustworthiness as well as the quality of generated code. He has published papers in leading journals and conferences, has contributed chapters in Compiler Design Handbook and has authored a book titled “Data Flow Analysis: Theory and Practice”. He has also worked very closely with the industry.

  • Supratim Biswas (http://www.cse.iitb.ac.in/~sb).

    Presenter's Bio

    Supratim Biswas finished Ph.D. in Computer Science & Engg. From IIT Kharagpur in 1980. Since then, he is with IIT Bombay where currently he is Professor of Computer Science & Engg.

    His areas of interest are Programming Languages and Compilers and he specialises in code optimization and parallelizing compilers. A recent research thrust involves using polyhedral model for auto-parallelization and auto-vectorization in GNU Compiler Collection (GCC). Apart from serving as the Head of Department (CSE), and Dean of Academic Programs in IIT Bombay, he has also worked very closely with the industry.

  • Prashant Singh Rawat (http://www.cse.iitb.ac.in/~prashantr).

    Presenter's Bio

    Prashant Singh Rawat is an M.Tech student at IIT Bombay, and a research assistant at GCC Resource Center. His areas of interest are Programming Languages and Compilers. He has been working on problems in data flow anlaysis, and auto-parallelization and auto-vectorization framework of GCC.

References

Tested on Firefox version 3.0.8 and above     |    Site designed and maintained by GRC    |    © 2013, GCC Resource Center