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

Roman Manevich

dblp:24/120 · DBLP profile ↗
← Back
20ranked-venue papers
7as first author
0since 2021 · last 2020
—ORCID · none

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

Software engineering, systems software and programming languages · 18 · 7 first-authorTheory of computation · 2 · 1 first-authorArtificial intelligence and machine learning · 1Systems, architecture and hardware · 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
8 papers
Program analysis · 32% Concurrent programming · 22% Program verification · 22%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Parallel and multicore computing · 78% High-performance computing · 22%
Databases, data mining, and information retrieval
1 paper
Transaction processing and concurrency control · 50% Web and social media mining · 50%
Theoretical computer science
2 papers
Graph algorithms and graph theory · 100%

Topics — the 19 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › static analysis › pointer analysis
shape analysis
0.532016
From Shape Analysis to Termination Analysis in Linear Time · CAV (1) 2016
A shape analysis for optimizing parallel graph programs · POPL 2011
Thread Quantification for Concurrent Shape Analysis · CAV 2008
Parallel and multicore computing
parallel programming models
0.322012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
The tao of parallelism in algorithms · PLDI 2011
Program verification
termination analysis
0.212016
From Shape Analysis to Termination Analysis in Linear Time · CAV (1) 2016
Compilers and program optimization
program transformation
0.212015
Synthesizing parallel graph programs via automated planning · PLDI 2015
Web and social media mining › event detection
conflict detection
0.112012
JANUS: exploiting parallelism via hindsight · PLDI 2012
Transaction processing and concurrency control › concurrency control
optimistic concurrency control
0.112012
JANUS: exploiting parallelism via hindsight · PLDI 2012
Concurrent programming › concurrency control
optimistic concurrency control
0.112012
JANUS: exploiting parallelism via hindsight · PLDI 2012
Program synthesis and code generation › concurrent program synthesis
parallel program synthesis
0.112012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
Concurrent programming
synchronization
0.112012
JANUS: exploiting parallelism via hindsight · PLDI 2012
High-performance computing › performance optimization
auto-tuning
0.112012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
Parallel and multicore computing
parallel graph algorithms
0.112011
A shape analysis for optimizing parallel graph programs · POPL 2011
Parallel and multicore computing
speculative parallelization
0.112011
A shape analysis for optimizing parallel graph programs · POPL 2011
Program analysis
static analysis
0.122016
From Shape Analysis to Termination Analysis in Linear Time · CAV (1) 2016
PSE: explaining program failures via postmortem static analysis · SIGSOFT FSE 2004
Program verification › concurrent program verification
parameterized verification
0.112010
Parameterized verification of transactional memories · PLDI 2010
Concurrent programming
transactional memory
0.112010
Parameterized verification of transactional memories · PLDI 2010
Debugging and program repair
fault localization
0.012004
PSE: explaining program failures via postmortem static analysis · SIGSOFT FSE 2004
Graph algorithms and graph theory
graph algorithms
0.012012
Elixir: a system for synthesizing concurrent graph programs · OOPSLA 2012
Machine learning › Graph learning
graph algorithms
0.012011
The tao of parallelism in algorithms · PLDI 2011
Program verification
model checking
0.012010
Parameterized verification of transactional memories · PLDI 2010

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

shape analysis · 0.5automated planning · 0.4schedule specification · 0.4inference techniques · 0.4auto-tuning · 0.4dependence graph analysis · 0.4conflict detection · 0.3termination analysis · 0.2symmetry reduction · 0.1satisfiability modulo theories · 0.1invisible invariants · 0.1
YearPublicationVenuePosition
2020 Harnessing Static Analysis to Help Learn Pseudo-Inverses of String Manipulating Procedures for Automatic Test Generation
Oren Ish-Shalom, Shachar Itzhaky, Roman Manevich, Noam Rinetzky
VMCAI3
2019 Learning the Scope of Applicability for Task Planning Knowledge in Experience-Based Planning Domains
abstract
Experience-based planning domains (EBPDs) have been proposed to improve problem solving by learning from experience. They rely on acquiring and using task knowledge, i.e., activity schemata, for generating solutions to problem instances in a class of tasks. Using Three-Valued Logic Analysis (TVLA), we extend our previous work to generate a set of conditions that determine the scope of applicability of an activity schema. The inferred scope is an abstract representation of a potentially unbounded set of problems, in the form of a 3-valued logical structure, which is used to test the applicability of the respective activity schema for solving different task problems. We validate this work on two classical planning domains and a simulated PR2 in Gazebo.
Vahid Mokhtari, Roman Manevich, Luís Seabra Lopes, Armando J. Pinho
IROS2
2018 Abstract Interpretation of Stateful Networks
Kalev Alpernas, Roman Manevich, Aurojit Panda, Shmuel Sagiv, Scott Shenker, Sharon Shoham, Yaron Velner
SAS2
2017 Programming reflexes (Extended abstract)
abstract
Formal verification serves as the theoretical basis for the engineering task of correctness and performance (quality) assurance. State of the art model checking, automatic specification refinement and theorem proving are employed to tackle the often undecidable (as imposed by the halting problem) task of complete verification. In this paper we formalize, prove and demonstrate a new unobtrusive way to test a system during runtime. Invocation of actions and examination of reaction of the system and components of the system are examined in run time in an holistic abstract manner, namely, the current state (e.g., state snapshot) the executable (e.g., program) and the environmental current condition (e.g., operating system, hypervisor) are examined by invoking actions and examining the reactions without influencing the actual execution semantics.
Shlomi Dolev, Roman Manevich, Amit Rokach
NCA2
2016 From Shape Analysis to Termination Analysis in Linear Time
Roman Manevich, Boris Dogadov, Noam Rinetzky
CAV (1)1
2015 Synthesizing parallel graph programs via automated planning
abstract
We describe a system that uses automated planning to synthesize correct and efficient parallel graph programs from high-level algorithmic specifications. Automated planning allows us to use constraints to declaratively encode program transformations such as scheduling, implementation selection, and insertion of synchronization. Each plan emitted by the planner satisfies all constraints simultaneously, and corresponds to a composition of these transformations. In this way, we obtain an integrated compilation approach for a very challenging problem domain. We have used this system to synthesize parallel programs for four graph problems: triangle counting, maximal independent set computation, preflow-push maxflow, and connected components. Experiments on a variety of inputs show that the synthesized implementations perform competitively with hand-written, highly-tuned code.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali
PLDI2
2012 Elixir: a system for synthesizing concurrent graph programs
abstract
Algorithms in new application areas like machine learning and network analysis use "irregular" data structures such as graphs, trees and sets. Writing efficient parallel code in these problem domains is very challenging because it requires the programmer to make many choices: a given problem can usually be solved by several algorithms, each algorithm may have many implementations, and the best choice of algorithm and implementation can depend not only on the characteristics of the parallel platform but also on properties of the input data such as the structure of the graph. One solution is to permit the application programmer to experiment with different algorithms and implementations without writing every variant from scratch. Auto-tuning to find the best variant is a more ambitious solution. These solutions require a system for automatically producing efficient parallel implementations from high-level specifications. Elixir, the system described in this paper, is the first step towards this ambitious goal. Application programmers write specifications that consist of an operator, which describes the computations to be performed, and a schedule for performing these computations. Elixir uses sophisticated inference techniques to produce efficient parallel code from such specifications.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali
OOPSLA2
2012 JANUS: exploiting parallelism via hindsight
abstract
This paper addresses the problem of reducing unnecessary conflicts in optimistic synchronization. Optimistic synchronization must ensure that any two concurrently executing transactions that commit are properly synchronized. Conflict detection is an approximate check for this condition. For efficiency, the traditional approach to conflict detection conservatively checks that the memory locations mutually accessed by two concurrent transactions are accessed only for reading.
Omer Tripp, Roman Manevich, John Field, Shmuel Sagiv
PLDI2
2011 The tao of parallelism in algorithms
abstract
For more than thirty years, the parallel programming community has used the dependence graph as the main abstraction for reasoning about and exploiting parallelism in "regular" algorithms that use dense arrays, such as finite-differences and FFTs. In this paper, we argue that the dependence graph is not a suitable abstraction for algorithms in new application areas like machine learning and network analysis in which the key data structures are "irregular" data structures like graphs, trees, and sets.
Keshav Pingali, Donald Nguyen, Milind Kulkarni 0001, Martin Burtscher, Muhammad Amber Hassaan, Rashid Kaleem, Tsung-Hsien Lee, Andrew Lenharth, Roman Manevich, Mario Méndez-Lojo, Dimitrios Prountzos
PLDI9
2011 A shape analysis for optimizing parallel graph programs
abstract
Computations on unstructured graphs are challenging to parallelize because dependences in the underlying algorithms are usually complex functions of runtime data values, thwarting static parallelization. One promising general-purpose parallelization strategy for these algorithms is optimistic parallelization.
Dimitrios Prountzos, Roman Manevich, Keshav Pingali, Kathryn S. McKinley
POPL2
2010 Parameterized verification of transactional memories
abstract
We describe an automatic verification method to check whether transactional memories ensure strict serializability a key property assumed of the transactional interface. Our main contribution is a technique for effectively verifying parameterized systems. The technique merges ideas from parameterized hardware and protocol verification--verification by invisible invariants and symmetry reduction--with ideas from software verification--template-based invariant generation and satisfiability checking for quantified formulæ (modulo theories). The combination enables us to precisely model and analyze unbounded systems while taming state explosion.
Michael Emmi, Rupak Majumdar, Roman Manevich
PLDI3
2009 Abstract Transformers for Thread Correlation Analysis
Michal Segalov, Tal Lev-Ami, Roman Manevich, G. Ramalingam, Shmuel Sagiv
APLAS3
2008 Thread Quantification for Concurrent Shape Analysis
Josh Berdine, Tal Lev-Ami, Roman Manevich, G. Ramalingam, Shmuel Sagiv
CAV3
2008 Heap Decomposition for Concurrent Shape Analysis
Roman Manevich, Tal Lev-Ami, Shmuel Sagiv, G. Ramalingam, Josh Berdine
SAS1
2007 Shape Analysis by Graph Decomposition
Roman Manevich, Josh Berdine, Byron Cook, G. Ramalingam, Shmuel Sagiv
TACAS1
2006 Combining Shape Analyses by Intersecting Abstractions
Gilad Arnold, Roman Manevich, Shmuel Sagiv, Ran Shaham
VMCAI2
2005 Predicate Abstraction and Canonical Abstraction for Singly-Linked Lists
Roman Manevich, Eran Yahav, G. Ramalingam, Shmuel Sagiv
VMCAI1
2004 Partially Disjunctive Heap Abstraction
Roman Manevich, Shmuel Sagiv, G. Ramalingam, John Field
SAS1
2004 PSE: explaining program failures via postmortem static analysis
abstract
In this paper, we describe PSE (Postmortem Symbolic Evaluation), a static analysis algorithm that can be used by programmers to diagnose software failures. The algorithm requires minimal information about a failure, namely its kind (e.g. NULL dereference), and its location in the program's source code. It produces a set of execution traces along which the program can be driven to the given failure.
Roman Manevich, Manu Sridharan, Stephen Adams 0001, Manuvir Das, Zhe Yang 0001
SIGSOFT FSE1
2002 Compactly Representing First-Order Structures for Static Analysis
Roman Manevich, G. Ramalingam, John Field, Deepak Goyal, Shmuel Sagiv
SAS1