Demo Data from EDBT 2026 / reviewers in the wild / expert
Rajesh K. Karmani
dblp:98/1770
· DBLP profile ↗
4ranked-venue papers
1as first author
0since 2021 · last 2011
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 2 · 1 first-authorSoftware engineering, systems software and programming languages · 2
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
3 papers |
Concurrent programming · 37% Software testing · 30% Program verification · 17% |
Topics — the 8 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2011 | Thread contracts for safe parallelism · PPoPP 2011 |
Program verification › concurrent program verification
data race freedom verification |
0.1 | 1 | 2011 | Thread contracts for safe parallelism · PPoPP 2011 |
Program analysis
static analysis |
0.1 | 1 | 2011 | Inferring ownership transfer for efficient message passing · PPoPP 2011 |
Software testing › concurrency testing
actor program testing |
0.1 | 1 | 2010 | Basset: a tool for systematic testing of actor programs · SIGSOFT FSE 2010 |
Software testing
systematic testing |
0.1 | 1 | 2010 | Basset: a tool for systematic testing of actor programs · SIGSOFT FSE 2010 |
Concurrent programming › concurrency models
actor model |
0.1 | 2 | 2011 | Inferring ownership transfer for efficient message passing · PPoPP 2011 Basset: a tool for systematic testing of actor programs · SIGSOFT FSE 2010 |
Concurrent programming
message passing |
0.0 | 1 | 2011 | Inferring ownership transfer for efficient message passing · PPoPP 2011 |
Concurrent programming › synchronization
synchronization primitives |
0.0 | 1 | 2011 | Thread contracts for safe parallelism · PPoPP 2011 |
Methods — techniques the papers use, named apart from their topics
static analysis · 0.1runtime assertion · 0.1program transformation · 0.1SMT solver · 0.1schedule exploration · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2011 | Thread contracts for safe parallelismabstractWe build a framework of thread contracts, called Accord, that allows programmers to annotate their concurrency co-ordination strategies. Accord annotations allow programmers to declaratively specify the parts of memory that a thread may read or write into, and the locks that protect them, reflecting the concurrency co-ordination among threads and the reason why the program is free of data-races. We provide automatic tools to check if the concurrency co-ordination strategy ensures race-freedom, using constraint-solvers (SMT solvers). Hence programmers using Accord can both formally state and prove their co-ordination strategies ensure race freedom. The programmer's implementation of the co-ordination strategy may however be correct or incorrect. We show how the formal Accord contracts allow us to automatically insert runtime assertions that serve to check, during testing, whether the implementation conforms to the contract. Using a large class of data-parallel programs that share memory in intricate ways, we show that natural and simple contracts suffice to document the co-ordination strategy amongst threads, and that the task of showing that the strategy ensures race-freedom can be handled efficiently and automatically by an existing SMT solver (Z3). While co-ordination strategies can be proved race-free in our framework, failure to prove the co-ordination strategy race-free, accompanied by counter-examples produced by the solver, indicates the presence of races. Using such counterexamples, we report hitherto undiscovered data-races that we found in the long-tested applu_l benchmark in the Spec OMP2001 suite. Rajesh K. Karmani, P. Madhusudan, Brandon M. Moore |
PPoPP | 1 |
| 2011 | Inferring ownership transfer for efficient message passingabstractOne of the more popular paradigms for concurrent programming is the Actor model of message passing; it has been adopted in one form or another by a number of languages and frameworks. By avoiding a shared local state and instead relying on message passing, the Actor model facilitates modular programming. An important challenge for message passing languages is to transmit messages efficiently. This requires retaining the pass-by-value semantics of messages while avoiding making a deep copy on sequential or shared memory multicore processors. A key observation is that many messages have an ownership transfer semantics; such messages can be sent efficiently using pointers without introducing shared state between concurrent objects. We propose a conservative static analysis algorithm which infers if the content of a message is compatible with an ownership transfer semantics. Our tool, called SOTER (for Safe Ownership Transfer enablER) transforms the program to avoid the cost of copying the contents of a message whenever it can infer the content obeys the ownership transfer semantics. Experiments using a range of programs suggest that our conservative static analysis method is usually able to infer ownership transfer. Performance results demonstrate that the transformed programs execute up to an order of magnitude faster than the original programs. Stas Negara, Rajesh K. Karmani, Gul A. Agha |
PPoPP | 2 |
| 2010 | Evaluating Ordering Heuristics for Dynamic Partial-Order Reduction Techniques
Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, Gul A. Agha |
FASE | 2 |
| 2010 | Basset: a tool for systematic testing of actor programsabstractThis paper presents Basset, a tool for systematic testing of JVM-based actor programs. The actor programming model offers a promising approach for developing reliable concurrent and distributed systems. Since the actor model is based on message passing and disallows shared state, it avoids some of the problems inherent in shared-memory programming, e.g., low-level dataraces involving access to shared data. However, actor programs can still have bugs that result from incorrect orders of messages among actors or processing of messages by individual actors. To systematically test an actor program, it is necessary to explore different message delivery schedules that might occur during execution. Basset facilitates such exploration and provides a generic platform that can support actor systems that compile to Java bytecode. Our current implementation of Basset supports testing of programs developed using the ActorFoundry library and the Scala programming language. Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, Gul A. Agha |
SIGSOFT FSE | 2 |