[Publications | CV]
[Beyond-Lab]
Office: AB13 /401-I
ajsingh[at]iitgn[dot]ac[dot]in
[Publications | CV]
[Beyond-Lab]
Office: AB13 /401-I
ajsingh[at]iitgn[dot]ac[dot]in
Assistant Professor in CSE at IIT Gandhinagar. Previously, I was a postdoc at FORTH Institute of Computer Science, Greece, working with Panagiota Fatourou, and obtained my Ph.D. from the University of Waterloo, Canada, advised by Trevor Brown.
Modern applications, from AI and databases to large-scale data analytics, continue to push the limits of computation and memory while demanding correctness, scalability, and high performance.
At the same time, computing hardware is rapidly evolving, providing unprecedented computational power, memory capacity, increasingly complex memory hierarchies, and massive parallelism through multicore NUMA processors, heterogeneous CPU–GPU systems, and RDMA-enabled clusters.
Software infrastructure bridges these two worlds by harnessing the hardware to meet the correctness, scalability, and performance demands of these applications.
I develop its foundational building blocks, including concurrent data structures, concurrent memory reclamation techniques, and synchronization mechanisms.
Drawing on ideas from across the computing stack, including algorithms, programming languages, operating systems, computer architecture, and networking, my research advances the theory and practice of next-generation software infrastructure on emerging hardware.
Current Opportunities:
If building the foundational building blocks of future software infrastructure (concurrent, parallel, or distributed) excites you, feel free to drop by my office or email me to express your interest.
I am accepting applications for:
Undergraduate researchers
Master's and Ph.D. students
Two fully funded Research Fellows/Postdoctoral researchers.
Your usual workflow might look like the following:
You will usually spend time thinking about how to design an efficient concurrent data structure, algorithm, memory management, or a synchronization mechanism, often starting with a well-known sequential counterpart or proposing a new one.
Prove correctness, implement, and evaluate the developed mechanisms on server-grade machines. Could be in any programming language supporting concurrency, e.g., C/C++. You would often get to be a detective and hunt down performance and correctness issues (aka culprits) in your implementations using several open-source performance and debugging tools. (This is the most satisfying phase for Ajay)
You may also find yourself thinking about integrating your implementations into a production-grade open-source system software or library.
In the process, you may end up making concurrent programming easier by developing productivity tools for it.
You may find yourself working at the intersection of ML/AI for concurrent systems.
Students jointly mentored:
Currently:
Myron Tsatsarakis (Ph.D., University of Crete) with Panagiota Fatourou
Mugdh Mittal (B.Tech at Shiv Nadar University) with Archit Somani and Sweta Kumari
Graduated:
Nikos Metaxakis (B.Tech at University of Crete, moved to the Master's program) with Panagiota Fatourou
Gautam Patahak (MMath, University of Waterloo, currently at ARM) with Trevor Brown
"Nothing in life is to be feared, it is only to be understood. Now is the time to understand more, so that we may fear less." -Marie Curie