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
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