EDBT 2026 Demo / reviewers in the wild / expert
Rishi Surendran
dblp:82/7750
· DBLP profile ↗
7ranked-venue papers
5as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 4 first-authorSystems, architecture and hardware · 2 · 1 first-author
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 · 73% Compilers and program optimization · 13% Software testing · 10% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 100% |
Topics — the 9 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.3 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Concurrent programming › concurrency bugs
data races |
0.3 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Concurrent programming › concurrency bugs
data race freedom |
0.3 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Concurrent programming › concurrency correctness
deadlock freedom |
0.3 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Concurrent programming › parallel programming models
futures |
0.3 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Compilers and program optimization
parallelization |
0.2 | 1 | 2016 | Automatic parallelization of pure method calls via conditional future synthesis · OOPSLA 2016 |
Parallel and multicore computing › parallel programming models
automatic parallelization |
0.2 | 1 | 2016 | Automatic parallelization of pure method calls via conditional future synthesis · OOPSLA 2016 |
Parallel and multicore computing
parallel programming models |
0.2 | 1 | 2014 | Test-driven repair of data races in structured parallel programs · PLDI 2014 |
Program verification › proof assistants
coq |
0.1 | 1 | 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers · Proc. ACM Program. Lang. 2017 |
Methods — techniques the papers use, named apart from their topics
threshold expression synthesis · 0.5profile-guided analysis · 0.5synchronization insertion · 0.4structured parallel programming · 0.4formal proof · 0.3cycle detection · 0.3coq · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangersabstractFutures are an elegant approach to expressing parallelism in functional programs. However, combining futures with imperative programming (as in C++ or in Java) can lead to pernicious bugs in the form of data races and deadlocks, as a consequence of uncontrolled data flow through mutable shared memory. In this paper we introduce the Known Joins (KJ) property for parallel programs with futures, and relate it to the Deadlock Freedom (DF) and the Data-Race Freedom (DRF) properties. Our paper offers two key theoretical results: 1) DRF implies KJ, and 2) KJ implies DF. These results show that data-race freedom is sufficient to guarantee deadlock freedom in programs with futures that only manipulate unsynchronized shared variables. To the best of our knowledge, these are the first theoretical results to establish sufficient conditions for deadlock freedom in imperative parallel programs with futures, and to characterize the subset of data races that can trigger deadlocks (those that violate the KJ property). From result 2), we developed a tool that avoids deadlocks in linear time and space when KJ holds, i.e., when there are no data races among references to futures. When KJ fails, the tool reports the data race and optionally falls back to a standard deadlock avoidance algorithm by cycle detection. Our tool verified a dataset of ∼2,300 student’s homework solutions and found one deadlocked program. The performance results obtained from our tool are very encouraging: a maximum slowdown of 1.06× on a 16-core machine, always outperforming deadlock avoidance via cycle-detection. Proofs of the two main results were formalized using the Coq proof assistant. Tiago Cogumbreiro, Rishi Surendran, Francisco Martins, Vivek Sarkar, Vasco Thudichum Vasconcelos, Max Grossman |
Proc. ACM Program. Lang. | 2 |
| 2016 | Automatic parallelization of pure method calls via conditional future synthesisabstractWe introduce a novel approach for using futures to automatically parallelize the execution of pure method calls. Our approach is built on three new techniques to address the challenge of automatic parallelization via future synthesis: candidate future synthesis, parallelism benefit analysis, and threshold expression synthesis. During candidate future synthesis, our system annotates pure method calls as async expressions and synthesizes a parallel program with future objects and their type declarations. Next, the system performs a parallel benefit analysis to determine which async expressions may need to be executed sequentially due to overhead reasons, based on execution profile information collected from multiple test inputs. Finally, threshold expression synthesis uses the output from parallelism benefit analysis to synthesize predicate expressions that can be used to determine at runtime if a specific pure method call should be executed sequentially or in parallel. Rishi Surendran, Vivek Sarkar |
OOPSLA | 1 |
| 2016 | Dynamic Determinacy Race Detection for Task Parallelism with Futures
Rishi Surendran, Vivek Sarkar |
RV | 1 |
| 2016 | Brief Announcement: Dynamic Determinacy Race Detection for Task Parallelism with FuturesabstractExisting dynamic determinacy race detectors for task-parallel programs are limited to programs with strict computation graphs, where a task can only wait for its descendant tasks to complete. In this paper, we present the first known determinacy race detector for non-strict computation graphs with futures. The space and time complexity of our algorithm are similar to those of the classical SP-bags algorithm, when using only structured parallel constructs such as spawn-sync and async-finish. In the presence of point-to-point synchronization using futures, the complexity of the algorithm increases by a factor determined by the number of future operations, which includes future task creation and future get operations. The experimental results show that the slowdown factor observed for our algorithm relative to the sequential version is in the range of 1.00x to 9.92x, which is very much in line with slowdowns experienced for fully strict computation graphs. Rishi Surendran, Vivek Sarkar |
SPAA | 1 |
| 2014 | Inter-iteration Scalar Replacement Using Array SSA Form
Rishi Surendran, Rajkishore Barik, Jisheng Zhao, Vivek Sarkar |
CC | 1 |
| 2014 | Test-driven repair of data races in structured parallel programsabstractA common workflow for developing parallel software is as follows: 1) start with a sequential program, 2) identify subcomputations that should be converted to parallel tasks, 3) insert synchronization to achieve the same semantics as the sequential program, and repeat steps 2) and 3) as needed to improve performance. Though this is not the only approach to developing parallel software, it is sufficiently common to warrant special attention as parallel programming becomes ubiquitous. This paper focuses on automating step 3), which is usually the hardest step for developers who lack expertise in parallel programming. Rishi Surendran, Raghavan Raman, Swarat Chaudhuri, John M. Mellor-Crummey, Vivek Sarkar |
PLDI | 1 |
| 2009 | Region Based Structure Layout Optimization by Selective Data CopyingabstractAs the gap between processor and memory continues to grow, memory performance becomes a key performance bottleneck for many applications. Compilers therefore increasingly seek to modify an applicationpsilas data layout to improve cache locality and cache reuse. Whole program structure layout [WPSL] transformations can significantly increase the spatial locality of data and reduce the runtime of programs that use link-based data structures, by increasing the cache line utilization. However, in production compilers WPSL transformations do not realize the entire performance potential possible due to a number of factors. Structure layout decisions made on the basis of whole program aggregated affinity/hotness of structure fields, can be sub optimal for local code regions. WPSL is also restricted in applicability in production compilers for type unsafe languages like C/C++ due to the extensive legality checks and field sensitive pointer analysis required over the entire application. In order to overcome the issues associated with WPSL, we propose region based structure layout (RBSL) optimization framework, using selective data copying. We describe our RBSL framework, implemented in the production compiler for C/C++ on HP-UX IA-64. We show that acting in complement to the existing and mature WPSL transformation framework in our compiler, RBSL improves application performance in pointer intensive SPEC benchmarks ranging from 3% to 28% over WPSL. Sandya Mannarswamy, R. Govindarajan, Rishi Surendran |
PACT | 3 |