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.

Saurabh Joshi 0001

dblp:13/4416-1 · DBLP profile ↗
← Back
16ranked-venue papers
5as first author
4since 2021 · last 2025
0000-0001-8070-1525ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 5 first-author · 2 since 2021Artificial intelligence and machine learning · 4 · 2 first-authorSystems, architecture and hardware · 3 · 1 since 2021Theory of computation · 3 · 1 first-author · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 1

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
4 papers
Program analysis · 46% Concurrent programming · 45% Software testing · 6%
Theoretical computer science
3 papers
Automated reasoning and model checking · 44% Computational complexity · 28% Automata and formal languages · 19%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Memory systems · 43% High-performance computing · 26% Parallel and multicore computing · 17%

Topics — the 18 heaviest of 20, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.722020
LLOV: A Fast Static Data-Race Checker for OpenMP Programs · ACM Trans. Archit. Code Optim. 2020
Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs · ACM Trans. Program. Lang. Syst. 2017
Concurrent programming › concurrency bugs
data races
0.412020
LLOV: A Fast Static Data-Race Checker for OpenMP Programs · ACM Trans. Archit. Code Optim. 2020
Concurrent programming › concurrency bug detection
data race detection
0.412020
LLOV: A Fast Static Data-Race Checker for OpenMP Programs · ACM Trans. Archit. Code Optim. 2020
Program analysis › concurrent program analysis
static race detection
0.412020
LLOV: A Fast Static Data-Race Checker for OpenMP Programs · ACM Trans. Archit. Code Optim. 2020
Computational complexity
phase transition
0.412019
Phase Transition Behavior of Cardinality and XOR Constraints · IJCAI 2019
Automated reasoning and model checking
satisfiability
0.412019
Phase Transition Behavior of Cardinality and XOR Constraints · IJCAI 2019
Concurrent programming
deadlock detection
0.312017
Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs · ACM Trans. Program. Lang. Syst. 2017
Concurrent programming
memory models
0.212016
The virtues of conflict: analysing modern concurrency · PPoPP 2016
Automata and formal languages
equivalence problem
0.212016
Equivalence Checking of a Floating-Point Unit Against a High-Level C Model · FM 2016
Memory systems
memory consistency
0.212015
Property-Driven Fence Insertion Using Reorder Bounded Model Checking · FM 2015
Automated reasoning and model checking › model checking
bounded model checking
0.212015
Property-Driven Fence Insertion Using Reorder Bounded Model Checking · FM 2015
Program analysis › static analysis
abstract interpretation
0.112012
Underspecified harnesses and interleaved bugs · POPL 2012
Program analysis
false alarm reduction
0.112012
Underspecified harnesses and interleaved bugs · POPL 2012
Software testing › test infrastructure
harness generation
0.112012
Underspecified harnesses and interleaved bugs · POPL 2012
Coding theory › error-correcting codes › decoding › decoding algorithms › optimal decoding
maximum-likelihood decoding
0.112019
Phase Transition Behavior of Cardinality and XOR Constraints · IJCAI 2019
Parallel and multicore computing › parallel programming models › message passing
MPI applications
0.112017
Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs · ACM Trans. Program. Lang. Syst. 2017
Integrated circuit design › digital circuit design › arithmetic circuit design
floating-point unit
0.112016
Equivalence Checking of a Floating-Point Unit Against a High-Level C Model · FM 2016
Software testing › test infrastructure
test harness
0.012012
Underspecified harnesses and interleaved bugs · POPL 2012

Methods — techniques the papers use, named apart from their topics

LLVM compiler framework · 0.9trace analysis · 0.6partial order modeling · 0.6SAT solving · 0.6empirical runtime study · 0.4symbolic semantics · 0.2partial order semantics · 0.2event structures · 0.2static assertion checking · 0.1
YearPublicationVenuePosition
2025 LLOR: Automated Repair of OpenMP Programs
Utpal Bora 0001, Saurabh Joshi 0001, Gautam Muduganti, Ramakrishna Upadrasta
VMCAI (2)2
2023 Oracle Agreement: From an Honest Super Majority to Simple Majority
abstract
Oracle networks feeding off-chain information to a blockchain are required to solve a distributed agreement problem since these networks receive information from multiple sources and at different times. We make a key observation that in most cases, the value obtained by Oracle network nodes from multiple information sources are in close proximity. We define a notion of agreement distance and leverage the availability of a blockchain or state machine replication (SMR) service to solve this distributed agreement problem with an honest simple majority of nodes instead of the conventional requirement of an honest super majority of nodes. Values from multiple nodes being in close proximity, therefore, forming a coherent cluster, is one of the keys to its efficiency. Our asynchronous protocol also embeds a fallback mechanism if the coherent cluster formation fails. Through simulations using real-world exchange data from seven prominent exchanges, we show that even for very small agreement distance values, the protocol would be able to form coherent clusters and therefore, can safely tolerate up to 1/2 fraction of Byzantine nodes. We also show that, for a small statistical error, it is possible to choose the size of the Oracle network to be significantly smaller than the entire system tolerating up to a 1/3 fraction of Byzantine failures. This allows the Oracle network to operate much more efficiently and horizontally scale much better.
Prasanth Chakka, Saurabh Joshi 0001, Aniket Kate, Joshua Tobkin
ICDCS2
2021 GPURepair: Automated Repair of GPU Kernels
Saurabh Joshi 0001, Gautam Muduganti
VMCAI1
2021 On the tractability of (k, i)-coloring
Sriram Bhyravarapu, Saurabh Joshi 0001, Subrahmanyam Kalyanasundaram, Anjeneya Swami Kare
Discret. Appl. Math.2
2020 LLOV: A Fast Static Data-Race Checker for OpenMP Programs
abstract
In the era of Exascale computing, writing efficient parallel programs is indispensable, and, at the same time, writing sound parallel programs is very difficult. Specifying parallelism with frameworks such as OpenMP is relatively easy, but data races in these programs are an important source of bugs. In this article, we propose LLOV, a fast, lightweight, language agnostic, and static data race checker for OpenMP programs based on the LLVM compiler framework. We compare LLOV with other state-of-the-art data race checkers on a variety of well-established benchmarks. We show that the precision, accuracy, and the F1 score of LLOV is comparable to other checkers while being orders of magnitude faster. To the best of our knowledge, LLOV is the only tool among the state-of-the-art data race checkers that can verify a C/C++ or FORTRAN program to be data race free.
Utpal Bora 0001, Pankaj Kukreja, Saurabh Joshi 0001, Ramakrishna Upadrasta, Sanjay V. Rajopadhye
ACM Trans. Archit. Code Optim.4
2019 Phase Transition Behavior of Cardinality and XOR Constraints
abstract
The runtime performance of modern SAT solvers is deeply connected to the phase transition behavior of CNF formulas. While CNF solving has witnessed significant runtime improvement over the past two decades, the same does not hold for several other classes such as the conjunction of cardinality and XOR constraints, denoted as CARD-XOR formulas. The problem of determining satisfiability of CARD-XOR formulas is a fundamental problem with wide variety of applications ranging from discrete integration in the field of artificial intelligence to maximum likelihood decoding in coding theory. The runtime behavior of random CARD-XOR formulas is unexplored in prior work. In this paper, we present the first rigorous empirical study to characterize the runtime behavior of 1-CARD-XOR formulas. We show empirical evidence of a surprising phase-transition that follows a non-linear tradeoff between CARD and XOR constraints.
Yash Pote, Saurabh Joshi 0001, Kuldeep S. Meel
IJCAI2
2019 Pinaka: Symbolic Execution Meets Incremental Solving - (Competition Contribution)
abstract
Many modern-day solvers offer functionality for incremental SAT solving, which preserves the state of the solver across invocations. This is beneficial when multiple, closely related SAT queries need to be fed to the solver. Pinaka is a symbolic execution engine which makes aggressive use of incremental SAT solving coupled with eager state infeasibility checks. It is built on top of the CProver / Symex framework. Pinaka supports both Breadth First Search and Depth First Search as state exploration strategies along with partial and full incremental modes. For SVCOMP 2019, Pinaka is configured to use partial incremental mode with Depth First Search strategy.
Eti Chaudhary, Saurabh Joshi 0001
TACAS (3)2
2018 Approximation Strategies for Incomplete MaxSAT
Saurabh Joshi 0001, Prateek Kumar 0001, Ruben Martins, Sukrut Rao
CP1
2017 Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs
abstract
The Message Passing Interface (MPI) is the standard API for parallelization in high-performance and scientific computing. Communication deadlocks are a frequent problem in MPI programs, and this article addresses the problem of discovering such deadlocks. We begin by showing that if an MPI program is single path, the problem of discovering communication deadlocks is NP-complete. We then present a novel propositional encoding scheme that captures the existence of communication deadlocks. The encoding is based on modeling executions with partial orders and implemented in a tool called MOPPER . The tool executes an MPI program, collects the trace, builds a formula from the trace using the propositional encoding scheme, and checks its satisfiability. Finally, we present experimental results that quantify the benefit of the approach in comparison to other analyzers and demonstrate that it offers a scalable solution for single-path programs.
Vojtech Forejt, Saurabh Joshi 0001, Daniel Kroening, Ganesh Narayanaswamy, Subodh Sharma 0001
ACM Trans. Program. Lang. Syst.2
2016 Equivalence Checking of a Floating-Point Unit Against a High-Level C Model
Rajdeep Mukherjee, Saurabh Joshi 0001, Andreas Griesmayer, Daniel Kroening, Tom Melham
FM2
2016 The virtues of conflict: analysing modern concurrency
abstract
Modern shared memory multiprocessors permit reordering of memory operations for performance reasons. These reorderings are often a source of subtle bugs in programs written for such architectures. Traditional approaches to verify weak memory programs often rely on interleaving semantics, which is prone to state space explosion, and thus severely limits the scalability of the analysis. In recent times, there has been a renewed interest in modelling dynamic executions of weak memory programs using partial orders. However, such an approach typically requires ad-hoc mechanisms to correctly capture the data and control-flow choices/conflicts present in real-world programs. In this work, we propose a novel, conflict-aware, composable, truly concurrent semantics for programs written using C/C++ for modern weak memory architectures. We exploit our symbolic semantics based on general event structures to build an efficient decision procedure that detects assertion violations in bounded multi-threaded programs. Using a large, representative set of benchmarks, we show that our conflict-aware semantics outperforms the state-of-the-art partial-order based approaches.
Ganesh Narayanaswamy, Saurabh Joshi 0001, Daniel Kroening
PPoPP2
2015 Generalized Totalizer Encoding for Pseudo-Boolean Constraints
Saurabh Joshi 0001, Ruben Martins, Vasco Manquinho
CP1
2015 Property-Driven Fence Insertion Using Reorder Bounded Model Checking
Saurabh Joshi 0001, Daniel Kroening
FM1
2015 Safety Verification and Refutation by k-Invariants and k-Induction
Martin Brain, Saurabh Joshi 0001, Daniel Kroening, Peter Schrammel
SAS2
2014 Incremental Cardinality Constraints for MaxSAT
Ruben Martins, Saurabh Joshi 0001, Vasco Manquinho, Inês Lynce
CP2
2012 Underspecified harnesses and interleaved bugs
abstract
Static assertion checking of open programs requires setting up a precise harness to capture the environment assumptions. For instance, a library may require a file handle to be properly initialized before it is passed into it. A harness is used to set up or specify the appropriate preconditions before invoking methods from the program. In the absence of a precise harness, even the most precise automated static checkers are bound to report numerous false alarms. This often limits the adoption of static assertion checking in the hands of a user.
Saurabh Joshi 0001, Shuvendu K. Lahiri, Akash Lal
POPL1