Ramakrishna Upadrasta (U.Ramakrishna)
Computer Science and Engineering,
Ordnance Factory Estate Campus
Yeddumailaram - 502205, India
ramakrishna AT iith DOT ac DOT in
I graduated with a PhD from
University of Paris-Sud, France, and INRIA, Paris,
where I worked under Prof. Albert Cohen.
My 2013 thesis was
titled "Sub-Polyhedral Compilation using (Unit-)Two-Variables-Per-Inequality Polyhedra", in which I addressed the problem of improvement of scalability of algorithms that are used in
My thesis used techniques from polyhedral compilation, abstract interpretation, combinatorial optimization and graph theory.
I have a M.S from Colorado State University, USA, an M.Tech in Computer Science from
Indian Institute of Science (IISc), Bangalore and a B.E in
Electrical and Electronics Engineering from Andhra University, Visakhapatnam.
I have been at IITH since March-2014.
Earlier, I was a visiting scientist at IISc, a research engineer at INRIA, Paris, a
research scholar at Lawrence Livermore National Laboratories, USA and
a compiler engineer in Hewlett Packard.
My broad research is in Programming Languages and Compilers. More specifically, these are the following research areas I am currently working on.
- Domain Specific Programming Languages for Parallelization: Building Domain Specific Languages (DSLs) and compilation strategies for
applications from various domains. An example is Big-Data applications and High-Performance Computing. We have funding for this.
- LLVM Optimizations: Various aspects of the open-source LLVM compiler.
We are working in collaboration with various industries on this.
I also run the IITH-LLVM group. Join the Group (only with IITH email-IDs)
- Coarse/Fine-Grain Compiler Optimization and Parallelization techniques for modern architectures for multi-core/GPUs:
Proposal of new parallelization algorithms and improvement of the range of programs that are amenable to parallelization schemes in existing polyhedral compilation tools.
As an example, I am interested in the range of programs that could be accepted by the well known polyhedral compilation tools
like Pluto and Polly.
- Improvement of Scalability of Tools in Polyhedral Compilation The above mentioned polyhedral compilation tools use expensive tools that limit their scalability.
I am interested in improving their scalability using advanced approximations like (U)TVPI sub-polyhedra, similar and more powerful to our POPL-2013 paper.
- Abstract Interpretation and sub-polyhedral approximations: Abstract interpretation is a formal framework to perform static analysis of programs. It
was formalized by the classic work of Cousot-Cousot in the 1970s.
Since then, there have been advances, with the Astrée
static analyzer being one of its largest successes.
It uses a variety of sub-polyhedral approximations; for example Antoine Miné's Octagon
I am interested in various aspects of scalability vs. precision issues of these approximations, with a particular focus in loop-programs (Affine Control
- Any aspects of program analysis.
- Ramakrishna Upadrasta and Albert Cohen. Sub-polyhedral scheduling using
(unit-)two-variable-per-inequality polyhedra. In Proceedings of the 40th annual ACM
SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '13). ACM, New York, NY, USA, 483-496. ACM-DL.
Recipient of a European Network of Excellence on High Performance and Embedded Architecture and Compilation (HiPEAC) paper award.
- Ramakrishna Upadrasta and Albert Cohen. Potential and Challenges of Two-Variable-Per-Inequality Sub-Polyhedral Compilation. In 1st International Workshop on Polyhedral
Compilation Techniques (IMPACT-2011), in conjunction with CGO'11, Chamonix, France, April 2011. IMPACT-11 from INRIA
- Dibyendu Das, U. Ramakrishna: A practical and fast iterative algorithm for phi-function computation using DJ graphs. ACM Trans. Program. Lang. Syst. 27(3): 426-440
- Maya Madhavan, Priti Shankar, Siddhartha Rai, U. Ramakrishna: Extending Graham-Glanville techniques for optimal code generation. ACM Trans. Program. Lang. Syst. 22(6):
973-1001 (2000) ACM-DL
August 2019: CS6250: Advanced Compiler Optimizations
August 2019: CS3423: Compilers-II (3 Credits: includes lab) and CS6240 Advanced Compiler Design
August 2019: CS6383: Introduction to Compiler Engineering (2 credit fractal course)
January 2019: CS6863: Compilers for Machine Learning: An Introduction (NEW!! First Time!, Thanks to Prof.
January 2019: CS5260: Compiler Optimizations
January 2019: CS6300: Topics in Compiler Optimizations
January 2019: CS3320: Compilers-I (1 Credit: includes lab)
August 2018: CS6250: Advanced Compiler Optimizations
August 2018: CS3423: Compilers-II (3 Credits: includes lab) and CS6240 Advanced Compiler Design
August 2018: CS6383: Introduction to Compiler Engineering (2 credit fractal course)
January 2018: CS5260: Compiler Optimizations and CS6300: Topics in Compiler Optimizations
January 2018: CS3320: Compilers-I (1 Credit: includes lab)
January 2018 (Jan-May 2018) CS2433: Principles of Programming Languages - II (Fractal 3 Credit Courses) at
August 2017 (Oct-Nov 2017) CS2400: Principles of Programming Languages - I (Fractal 1 Credit Courses) at
August 2017: CS6250: Advanced Compiler Optimizations
August 2017: CS3423: Compilers-II (3 Credits: includes lab) and CS6240 Advanced Compiler Design
August 2017: CS6383: Introduction to Compiler Engineering (2 credit fractal course)
January 2017: CS5260: Compiler Optimizations and CS6300: Topics in Compiler Optimizations
January 2017: CS3320: Compilers-I (1 Credit: includes lab)
August 2016: CS3320: Compilers-I (1 Credit), CS3423: Compilers-II (3 Credits: includes lab) and CS6240 Advanced Compiler Design
August 2016: CS6250: Advanced Compiler Optimizations (3 credits)
August 2016: CS6380: Introduction to Compiler Engineering (1 credit fractal course)
January 2016 (Jan-Mar 2016) CS2430: Principles of Programming Languages - II (and CS2431 Lab) (Fractal 2:2 Courses)
January 2016: CS5260: Compiler Optimizations and CS6300: Topics in Compiler Optimizations
August 2015 (Oct-Nov 2015) CS2400: Principles of Programming Languages - I (and CS2401 Lab) (Fractal 1:1 Courses)
August 2015: CS3020: Principles of Compiler Design (and CS3021 lab) and CS6240 Advanced Compiler Design
January 2015: CS6250: Advanced Compiler Optimizations
January 2015: CS2040: Principles of Programming Languages (and CS2041 Lab)
August 2014: CS3020: Principles of Compiler Design (and CS3021 lab) and CS6240 Advanced Compiler Design
Spring 2014: FC5264: Introduction to Basic and Advanced Compiler Optimization Techniques
The following students are currently working with me.
- Keyur Joshi, B.Tech 4th year, (Undergraduate honors thesis).
- Pratik Bhatu, Dual (B.Tech+M.Tech) degree 5th year.
- Abhishek Patwardhan M.Tech-RA 2nd year.
- Santanu Das, M.Tech-RA 2nd year.
- Dangeti Tharun Kumar, M.Tech-TA 2nd year.
- Shalini Jain, PhD 2nd year.
- Gayatri PK, PhD 2nd year.
- Utpal Bora, PhD 2nd year (converted from M.Tech-TA program).
I am looking for both graduate as well as undergraduate students.
If you are at IITH and are broadly interested in any areas of compilation, parallelization or programming languages, please feel free to send me an email or meet me in person.
- Ajay Brahmakshatriya, B.Tech (Undergraduate honors thesis).
- Kiran Bhos, M.Tech.
- Yogesh Chavan, M.Tech.
- Bhargav Reddy Godala, B.Tech (Undergraduate honors thesis).
Read this blog.
Account in "The Bank of San Serriffe"