I am an assistant professor at the Dept. of Computer Science and Engineering, IIT Hyderabad. My research interests are program analysis, program understanding, automated concurrency testing, and high-performance computing. Prior to joining IIT Hyderabad, I was a post-doctoral researcher at Microsoft Research Lab, Bangalore. I received my PhD (+M.Tech) from IIT Madras, supported by the TCS PhD fellowship. Before that, I worked as a Software Engineer at Hewlett Packard, Chennai.
I am broadly interested in program analysis, program understanding, compilers and high-performance computing. Specifically, I work on designing new (or enhancing existing) program-analysis techniques for practical applications, with the main focus on the challenges related to scalability and interoperability. I am also interested in devising techniques to achieve scalable performance, correctness and programmability in real-world systems that appear in varied environments: single-core/multicore, heterogeneous and distributed systems.
  Here are some of the projects I worked/am working on. (Give you a flavour of my research!)
- Compiler Optimizations. Collaborative computation between CPU and GPU is essential to achieve high program
performance in a heterogeneous system; however, CPU- or GPU-only optimization techniques do not suffice. At IITH, we propose new global compiler optimizations
in this project that allow CPUs and GPUs to work cooperatively to achieve
high performance in heterogeneous systems.
- ML for PL. While traditional program analysis tools are very powerful, they become challenging to use in real
settings due to their whole program requirements, scalability issues etc. As AI systems learn from examples, they
easily overcome some of these challenges. However, the current AI-based systems fail to learn complex semantic
information from code, which is required for developing these productivity tools. To this end, this project aims to
automatically identify program properties or semantic information from big code and use this information to
accomplish various downstream tasks. At IITH, using code embeddings generated by SOTA models such as
CodeBERT, GraphCodeBERT, and Code2Vec etc., we are developing tools for: (1) bug detection in code snippets, (2)
recommendation of (library) API misuses in IDEs, (3) automatic algorithm description for Jupyter notebooks.
- Parallelization. The goal of this project is to address the problem of many applications not taking full advantage of
the parallelism provided by massively parallel GPUs due to limitations in: efficiently utilizing GPU memory,
understanding and leveraging domain-specific data patterns, etc. We provide efficient parallel algorithms and
application-level optimizations for achieving high performance on GPUs. At IITH, we are currently working on two
sub-problems: (1) Efficient Approximate Nearest Neighbour search on high-dimensional billion point data (coming
from deep learning-based embeddings) using GPU, (2) Multi-Query optimization for subgraph isomorphism search
on GPUs. Along the same lines, in the past, I worked on developing an efficient tensor transposition library (TTLG) for GPUs.
- Concurrency Testing. Testing the correctness of a concurrent system is challenging. During my post-doc at Microsoft
Research, I worked on two problems which deal with automated testing of concurrent systems: (1) A
Language-agnostic Concurrency Testing Library: Designed for developers to build their own custom systematic
testing solutions. The library detects concurrency bugs by taking over the scheduling of concurrent operations
(tasks/threads/actors etc.) and systematically exploring the various interleavings of operations. (2) Testing
Storage-backed Applications Against Weak Isolation Levels: Develops a mock storage system that exercises weak
behaviors possible under multiple isolation levels to detect assertion violations in a database/KV-store application.
The operational semantics of this storage system is based on axiomatic definitions of various weak isolation levels.
- Program Analysis for Code Refactoring. My dissertation research involves proposing efficient static analyses
(mainly points-to analyses) for automatic identification of challenging refactoring opportunities in object-oriented
software, with particular emphasis on the issues that occur when the refactoring tools are coupled into
resource-bound environments like IDEs (Integrated Development Environments).
Drop me an email if you are a motivated student with similar research interests and want to work with me.
- Compilers II (August 2023)
- CS4443 Software Engineering (January 2023)
- CS6300 Topics in Compiler Optimization (August 2022)
- CS5863 Introduction to Program Analysis and Optimization (January 2022)
- CS3423 Compilers II (August 2021)
-
Cell2Doc: ML Pipeline for Generating Documentation in Computational Notebooks, Tamal Mondal, Scott Barnett, Akash Lal, Jyothi Vedurada (to appear) Proceedings of the 38th IEEE/ACM International Conference on
Automated Software Engineering, ASE'23. (paper)
-
SYNC: A Structurally guided Hard Negative Curricula for Efficient Neural Code Search, Atharva Naik, Soumitra Das, Jyothi Vedurada and Somak Aditya, (to appear)
Proceedings of the 13th International Joint Conference on Natural Language Processing, IJCNLP-AACL 2023. (paper)
-
Nekara: Generalized Concurrency Testing, Udit Agarwal, Pantazis Deligiannis,
Cheng Huang, Kumseok Jung, Akash Lal, Immad Naseer, Matthew Parkinson, Arun Thangamani, Jyothi Vedurada, Yunpeng Xiao, Proceedings of the 36th IEEE/ACM International Conference on
Automated Software Engineering, ASE'21. (paper)
-
[Distinguished Paper Award] MonkeyDB: Effectively Testing Correctness against Weak Isolation Levels, Ranadeep Biswas, Diptanshu Kakwani, Jyothi Vedurada, Constantin Enea, Akash Lal (to appear), Proceedings of the ACM on Programming Languages (PACMPL); ACM SIGPLAN
International Conference on Object-Oriented Programming, Systems, Languages, and Applications; OOPSLA'21 (paper)
-
Batch Alias Analysis, Jyothi Vedurada and V. Krishna Nandivada, Proceedings of the 34th IEEE/ACM International Conference on
Automated Software Engineering, ASE'19. (paper)
-
Identifying Refactoring Opportunities for Replacing Type Code with
Subclass and State, Jyothi Vedurada and V. Krishna Nandivada,
Proceedings of the ACM on Programming Languages (PACMPL); ACM SIGPLAN
International Conference on Object-Oriented Programming, Systems,
Languages, and Applications; OOPSLA'18. (paper)
-
TTLG - An Efficient Tensor Transposition Library for GPUs, Jyothi
Vedurada, Arjun Suresh, Aravind Sukumaran Rajam, Jinsung Kim, Changwan
Hong, Ajay Panyala, Sriram Krishnamoorthy, V. Krishna Nandivada, Rohit
Kumar Srivastava, P. Sadayappan, Proceedings of the 32nd IEEE
International Parallel and Distributed Processing Symposium, IPDPS'18. (paper)
- Refactoring Opportunities for Replacing Type Code
with State and Subclass, Jyothi Vedurada and V. Krishna Nandivada,
Proceedings of the 39th IEEE/ACM International Conference on Software
Engineering Companion, ICSE-C'17. (paper)
- Program Committee Member: ISEC 2024 (research papers + docotoral symposium), PPoPP 2023, VSTTE'22, ISEC 2022, HiPC 2021, PPEE'21
- Program Vice-Chair: HiPC 2022
- Reviewer: TOPLAS 2021
- Organizing Committee Member: ACM India Women Grad Cohort 2024 at IITH (July 2021).
- Organizing Committee Member and Speaker: ACM Summer School on Programming Language Analysis and Optimizations (July 2021).
- Artifact Evaluation Chair: SAS 2020
- Artifact Evaluation Committee Member: OOPSLA 2019, ASPLOS 2020.
- Reviewer for INAE Letters 2018.
- Session Chair: ISEC 2024.
M.tech Students
|
Saim Khan (Mtech TA) Project: Efficient ANN on GPUs |
|
Tamal Mondal (Mtech RA) |
PhD Students
|
Soumik Kumar Basu |
|
Kathik V |
Note: I am looking for both graduate and undergraduate students with good programming skills and are broadly interested in topics such as program analysis, programming languages, concurrency testing, compiler optimizations, parallelization, etc.
- Google Research exploreCSR Award 2021
- "Distinguished Paper Award" for the paper titled 'MonkeyDB: Effectively Testing Correctness under Weak Isolation Levels' at OOPSLA 2021.
- "Distinguished Reviewer Award" for the work on the OOPSLA 2019 Artifact Evaluation PC.
- "Institute Research Award" in recognition of my PhD thesis work.
- Tata Consultancy Services PhD fellowship.
- Ranked 1st in the
Student Parallel Programming Challenge hosted by IEEE International
Conference on High Performance Computing (HiPC) 2016.
- "STAR TA Award" for contributing as a Teaching Assistant at IIT Madras.
- Awarded ACM SIGAI, ACM-India/IARCS, Microsoft Research India travel grants (to attend ASE 2019); Microsoft Research India travel grant and ACM SIGPLAN PAC funding (for OOPSLA 2018); IEEE TCPP funding and ACM-India/IARCS travel grant (for IPDPS 2018); ACM SIGSOFT CAPS funding (for ICSE 2017); Student travel grants (for HiPC 2016 & IPDPS 2015).
- Leveraging Large Language Models for Effective Software Development Practices. Invited talk at GenAIforSE workshop at ISEC 2024 conference at Bangalore. Feb 22, 2024.
- Navigating Academia: Lessons from a PhD Journey and Faculty Career -- Research in Compilers and HPC @IITH. Invited talk at ACM ARCS 2024 at NISER Bhubaneswar. Feb 9, 2024.
- Unlocking CPU-GPU Heterogeneous System Performance through Compiler Optimizations and Parallelization. Invited talk at NSM HPC Week at IIT Madras. Nov 23, 2023.
- Efficient Points-to Analysis Techniques Suitable for Resource-Bound Environments. Software Engineering Research in India (SERI) Update Meeting. IISc Bengaluru, July 2019.