Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Rajesh K. Karmani

dblp:98/1770 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency bug detection
data race detection
0.112011
Thread contracts for safe parallelism · PPoPP 2011
Program verification › concurrent program verification
data race freedom verification
0.112011
Thread contracts for safe parallelism · PPoPP 2011
Program analysis
static analysis
0.112011
Inferring ownership transfer for efficient message passing · PPoPP 2011
Software testing › concurrency testing
actor program testing
0.112010
Basset: a tool for systematic testing of actor programs · SIGSOFT FSE 2010
Software testing
systematic testing
0.112010
Basset: a tool for systematic testing of actor programs · SIGSOFT FSE 2010
Concurrent programming › concurrency models
actor model
0.122011
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.012011
Inferring ownership transfer for efficient message passing · PPoPP 2011
Concurrent programming › synchronization
synchronization primitives
0.012011
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
YearPublicationVenuePosition
2011 Thread contracts for safe parallelism
abstract
We 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
PPoPP1
2011 Inferring ownership transfer for efficient message passing
abstract
One 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
PPoPP2
2010 Evaluating Ordering Heuristics for Dynamic Partial-Order Reduction Techniques
Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, Gul A. Agha
FASE2
2010 Basset: a tool for systematic testing of actor programs
abstract
This 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 FSE2