Kapil Vaswani
I am a researcher with the Programming Languages and Tools group at Microsoft Research. I am broadly interested in programming language abstractions and tools that simplify the design and implementation of concurrent and distributed systems. I graduated from the department of Computer Science and Automation at the Indian Institute of Science where I worked on efficient and accurate profiling and performance modeling techniques.
Current Research
| CScale |
| The task of writing applications that are responsive, available, and can service a large number of users is daunting, even for experienced developers. CScale is a programming model that simplifies this task. CScale permits programmers to specify the application’s core logic declaratively without explicitly managing distribution. CScale applications have simple semantics that enables local reasoning, and testing and debugging on the single machine. In turn, CScale manages all aspects of execution of a CScale application on a large clusters, including deployment, state management (replication and data partitioning) and fault tolerance. CScale ensures high availability by using distributed wait-free data structures to manage state. |
| Peformance Models for Distributed Applications |
| Programming models such as MapReduce and DryadLINQ provide programmers with declarative abstractions for writing data intensive computations and runtime systems that can execute these computations on a large cluster of machines, without the programmer having to deal with the vagaries of distribution such as storage, messaging, failures and synchronization. However, this level of abstraction comes at a cost – the inability to understand, predict and debug performance. We are working on building performance models for predicting execution time of distributed computations (and other metrics such as bandwidith, cost etc). Our modeling approach is based on a novel combination of analytical white box models, empirical black box models and conventional query execution time estimation techniques from databases. |
| Side Effect Analysis for .NET (Seal) |
| Seal is a modular static analysis tool that infers side-effects of methods in a .NET application. The side-effects of a method are the set of heap locations in the program state right before the invocation of the method (referred to as prestate) that are modified (or written) by the method. Intuitively, these are the locations on which the method has an effect and hence can be expected to change after the method invocation. A method with no side-effects is said to be pure. Seal supports many sophisticated (and higher-order) C# features such as LINQ, delegates, event-handlers, exceptions, and scales to several thousand lines of code. Check out Seal in action here. |
Recent papers
- Jose Faleiro, Sriram Rajamani, Kaushik Rajan, G Ramalingam, and Kapil Vaswani, Generalized Lattice Agreement, in Proceedings of Symposium on Principles of Distributed Computing (PODC), ACM, July 2012
- Ravichandhran Madhavan, Ganesan Ramalingam, and Kapil Vaswani, Purity Analysis: An Abstract Interpretation Formulation, in Proceedings of Static Analysis Symposium (SAS), September 2011
- Dawei Qi, Abhik Roychoudhury, Zhengkai Liang, and Kapil Vaswani, DARWIN: An Approach for Debugging Evolving Programs, in ACM Transactions on Software Engineering and Methodology (TOSEM), ACM, August 2011
- Jyotirmoy V. Deshmukh, G. Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani, Logical Concurrency Control from Sequential Proofs, in Logical Methods in Computer Science (LICS), vol. 7, no. 3, 2011
- Shuvendu K. Lahiri, Kapil Vaswani, and Tony Hoare, Differential Static Analysis: Opportunities, Applications, and Challenges, in 2010 FSE/SDP Workshop on the Future of Software Engineering Research (Position paper) , Association for Computing Machinery, Inc., November 2010
- Prakash Prabhu, G Ramalingam, and Kapil Vaswani, Safe Programmable Speculative Parallelism, in Proceedings of Programming Language Design and Implementation (PLDI), Association for Computing Machinery, Inc., June 2010
- Jyotirmoy Deshmukh, G. Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani, Logical Concurrency Control From Sequential Proofs, in Proceedings of European Symposium on Programming (ESOP) - ETAPS Best Paper, March 2010
Software
Other projects
| Speculate - Language extensions for speculative parallelism |
| WYPIWYG - Inferring concurrency control from sequential proofs |
| Isolator - Dynamically enforcing isolation in concurrent programs |
| Darwin - Software fault localization using program versions |
| Preferential Path Profiling - An approach for improving the efficiency of collecting path coverage data |
Program committees
FASE 2011, SCORE 2011, ISEC 2011, APLAS 2011, CGO 2012, ICTAC 2012, ISEC 2012, TOOLS Europe 2012




