Projects

  1. Compiling for Multicore Systems. As multi-core systems are gaining popularity, there is a definite need for languages, tools and techniques that can simplify programming high performance machines to exploit the hardware features to a significant level and achieve higher throughput. Programming languages such as OpenMP, MPI, X10, CAF, OpenCL, and Titatnium are part of some of the efforts in this direction. Two of the main issues that we encounter while compiling for multi-core systems are the following: (a) the difference between user perceived (ideal) parallelism and useful parallelism based on the actual hardware, and (b) reasoning about the locality of data and computation. Our goal is to design new optimizations techniques to improve performance and develop new tools and language extensions to help the design of parallel programs.

  2. Performance and Programmability in OO languages. Performance and programmability are two of the most desired targets of OO languages like Java. However, considering the typical multisite development, and two tier translation mechanism both programmability and performance take a hit. Our goal is to design new optimizations that take advantage of the two tier translation scheme of Java (to improve performance). Similarly, we aim to generate semi-automatic tools to improve the readability and programmability of large Java applications.


  3. Requirements. Candidate should be comfortable in one or more of (a) Compiler Design, (b) Computer Architecture, and (c) Operating System. Candidate should be very good in coding (in one or more of C, C++, Java).
Under construction
Last updated: Thu Jul 14 21:06:03 IST 2022