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, automated concurrency testing, 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 on. (Give you a flavour of my research!)
Drop me an email if you are a motivated student with similar research interests and want to work with me.
- 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.
- 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.
- Identifying Refactoring Opportunities in Large Codebases: It 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).
- TTLG: An efficient tensor transposition library for graphics processing units (GPUs), which implements specialized data movement strategies and uses a performance prediction model to achieve high coalesced access of data.
- Approximate Nearest Neighbor Search (ANN) on GPUs: It is an efficient ANN search implementation on GPUs for improving the QPS (Queries Per Second) throughput up to >50,000 on 100-dimensional billion point data (coming from deep learning-based embeddings).
Nekara: Generalized Concurrency Testing, Udit Agarwal, Pantazis Deligiannis,
Cheng Huang, Kumseok Jung, Akash Lal, Immad Naseer, Matthew Parkinson, Arun Thangamani, Jyothi Vedurada, Yunpeng Xiao, (to
appear) Proceedings of the 36th IEEE/ACM International Conference on
Automated Software Engineering, ASE'21. (paper)
MonkeyDB: Effectively Testing Correctness against Weak Isolation Levels, Ranadeep Biswas, Diptanshu Kakwani, Jyothi Vedurada, Constantin Enea, Akash Lal (conditionally accepted), 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: HiPC 2021, ISEC 2022
- 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.
|| Saim Khan
Project: Efficient ANN on GPUs
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.
- "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).
- Efficient Points-to Analysis Techniques Suitable for
Resource-Bound Environments. The 1st Software Engineering Research in
India (SERI) Update Meeting, sponsored by the India Chapter of SIGSOFT
Special Interest Group of ACM. IISc Bengaluru, July 2019.
- Identifying Refactoring Opportunities for Replacing Type Code
with Subclass and State -- An Application of Program Analysis. Presented
at Program Analysis (CS6843) course in IIT Madras.