• Home
  • IBM
  • Computer Science, T.J. Watson Center
  • Vijay A. Saraswat
Vijay A. Saraswat

Vijay A. Saraswat
IBM · Computer Science, T.J. Watson Center

PhD

About

171
Publications
16,798
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
8,598
Citations
Additional affiliations
August 2002 - August 2003
Pennsylvania State University
Position
  • Professor
January 2015 - present
IBM
Position
  • Distinguished RSM
November 1987 - September 1996
Palo Alto Research Center
Position
  • Member, Research Staff

Publications

Publications (171)
Article
Cloud computing has made the resources needed to execute large-scale in-memory distributed computations widely available. Specialized programming models, e.g., MapReduce, have emerged to offer transparent fault tolerance and fault recovery for specific computational patterns, but they sacrifice generality. In contrast, the Resilient X10 programming...
Article
Full-text available
This article describes a neural semantic parser that maps natural language utterances onto logical forms that can be executed against a task-specific environment, such as a knowledge base or a database, to produce a response. The parser generates tree-structured logical forms with a transition-based approach, combining a generic tree-generation alg...
Preprint
Full-text available
This paper describes a neural semantic parser that maps natural language utterances onto logical forms which can be executed against a task-specific environment, such as a knowledge base or a database, to produce a response. The parser generates tree-structured logical forms with a transition-based approach which combines a generic tree-generation...
Technical Report
Full-text available
Cloud computing has made the resources needed to execute large-scale in-memory distributed computations widely available. Specialized programming models, e.g., MapReduce, have emerged to offer transparent fault tolerance and fault recovery for specific computational patterns, but they sacrifice generality. In contrast, the Resilient X10 programming...
Article
We introduce a neural semantic parser which is interpretable and scalable. Our model converts natural language utterances to intermediate, domain-general natural language representations in the form of predicate-argument structures, which are induced with a transition system and subsequently mapped to target domains. The semantic parser is trained...
Technical Report
Full-text available
This report summarizes runtime system challenges for exascale computing, that follow from the fundamental challenges for exascale systems that have been well studied in past reports, e.g., [6, 33, 34, 32, 24]. Some of the key exascale challenges that pertain to runtime systems include parallelism, energy efficiency, memory hierarchies, data movemen...
Article
Full-text available
Sentiment analysis assigns a positive, negative or neutral polarity to an item or entity, extracting and aggregating individual opinions from their textual expressions by means of natural language processing tools. In this paper we observe that current sentiment analysis techniques are satisfactory in case there is a single entity under considerati...
Article
Full-text available
Businesses that receive events in the form of messages and react to them quickly can take advantage of opportunities and avoid risks as they occur. Since quick reactions are important, event processing middleware is a core technology in many businesses. However, the need to act quickly must be balanced against the need to act profitably, and the be...
Article
Full-text available
It is well established that in many scenarios there is no single solver that will provide optimal performance across a wide range of problem instances. Taking advantage of this observation, research into algorithm selection is designed to help identify the best approach for each problem at hand. This segregation is usually based on carefully constr...
Conference Paper
Full-text available
The Global Matrix Library (GML) is a distributed matrix library in the X10 language. GML is designed to simplify the development of scalable linear algebra applications. By hiding the communication and parallelism details, GML programs are written in a sequential style that is easy to use and understand by non expert programmers. Resilience is beco...
Article
Full-text available
CP-nets represent the dominant existing framework for expressing qualitative conditional preferences between alternatives, and are used in a variety of areas including constraint solving. Over the last fifteen years, a significant literature has developed exploring semantics, algorithms, implementation and use of CP-nets. This paper introduces a co...
Conference Paper
Full-text available
Hospitals/Residents with Ties (HRT) forms a class of problems with many applications, some of which are of considerable size. Solving these problems has been shown to be NP-hard. In previous work, we developed a local search algorithm which displays very high performance in solving Stable Matching with Ties and Incomplete lists (SMTI) problems. In...
Conference Paper
Full-text available
Stable matching problems have several practical applications. If preference lists are truncated and contain ties, finding a stable matching with maximal size is computationally difficult. We address this problem using a local search technique, based on Adaptive Search and present experimental evidence that this approach is much more efficient than...
Conference Paper
Full-text available
X10 is a high-performance, high-productivity programming language aimed at large-scale distributed and shared-memory parallel applications. It is based on the Asynchronous Partitioned Global Address Space (APGAS) programming model, supporting the same fine-grained concurrency mechanisms within and across shared-memory nodes. We demonstrate that X10...
Patent
Full-text available
A method for increasing performance of an operation on a distributed memory machine is provided. Asynchronous parallel steps in the operation are transformed into synchronous parallel steps. The synchronous parallel steps of the operation are rearranged to generate an altered operation that schedules memory accesses for increasing locality of refer...
Article
Full-text available
Abstract cc programming is a general framework for constructing a wide variety of domain-specific languages. In this paper we show how such languages can be easily constructed using cc, and why cc is particularly suitable for the construction of such languages. 1 Introduction Increasingly, the widely available cheap and powerful computers of today...
Conference Paper
Full-text available
We propose a new approach for parallelizing search for combinatorial optimization that is based on a recursive application of approximate Decision Diagrams. This generic scheme can, in principle, be applied to any combinatorial optimization problem for which a decision diagram representation is available. We consider the maximum independent set pro...
Patent
Full-text available
Interactive iterative program parallelization based on dynamic feedback program parallelization, in one aspect, may identify a ranked list of one or more candidate pieces of code each with one or more source refactorings that can be applied to parallelize the code, apply at least one of the one or more refactorings to create a revised code, and det...
Conference Paper
Scale-out programs run on multiple processes in a cluster. In scale-out systems, processes can fail. Computations using traditional libraries such as MPI fail when any component process fails. The advent of Map Reduce, Resilient Data Sets and MillWheel has shown dramatic improvements in productivity are possible when a high-level programming framew...
Article
Full-text available
Scale-out programs run on multiple processes in a cluster. In scale-out systems, processes can fail. Computations using traditional libraries such as MPI fail when any component process fails. The advent of Map Reduce, Resilient Data Sets and MillWheel has shown dramatic improvements in productivity are possible when a high-level programming framew...
Article
Full-text available
We present GLB, a programming model and an associated implementation that can handle a wide range of irregular parallel programming problems running over large-scale distributed systems. GLB is applicable both to problems that are easily load-balanced via static scheduling and to problems that are hard to statically load balance. GLB hides the intr...
Conference Paper
Full-text available
We present a formal small-step structural operational semantics for a large fragment of X10, unifying past work. The fragment covers multiple places, mutable objects on the heap, sequencing, \code{try/catch}, \code{async}, \code{finish}, and \code{at} constructs. This model accurately captures the behavior of a large class of concurrent, multi-plac...
Article
Full-text available
One of many approaches to better take advantage of parallelism, which has now become mainstream, is the introduction of parallel programming languages. However, parallelism is by nature non-deterministic, and not all parallel bugs can be avoided by language design. This paper proposes a method for guaranteeing absence of data races in the polyhedra...
Article
Full-text available
Modern computer systems are awash in a sea of asynchronous events. There is an increasing need for a declarative language that can permit business users to specify complex event-processing rules. Such rules should be able to correlate different event streams, detect absence of events (negative information), permit aggregations over sliding windows,...
Conference Paper
The ability to smoothly interoperate with other programming languages is an essential feature to reduce the barriers to adoption for new languages such as X10. Compiler-supported interoperability between Managed X10 and Java was initially previewed in X10 version 2.2.2 and is now fully supported in X10 version 2.3. In this paper we describe and mot...
Conference Paper
Full-text available
This paper addresses the static analysis of an important class of X10 programs, namely those with finish/async parallelism, and affine loops and array reference structure as in the polyhedral model. For such programs our analysis can certify whenever a program is deterministic or flags races. Our key contributions are (i) adaptation of array datafl...
Conference Paper
Modern object-oriented languages such as X10 require a rich framework for types capable of expressing both value-dependency and genericity, and supporting pluggable, domain-specific extensions. In earlier work, we presented a framework for constrained types in object-oriented languages, parametrized by an underlying constraint system. Types are vie...
Article
Full-text available
Main Memory Map Reduce (M3R) is a new implementation of the Hadoop Map Reduce (HMR) API targeted at online analytics on high mean-time-to-failure clusters. It does not support resilience, and supports only those workloads which can fit into cluster memory. In return, it can run HMR jobs unchanged -- including jobs produced by compilers for higher-l...
Conference Paper
We propose a framework for SAT researchers to conveniently try out new ideas in the context of parallel SAT solving without the burden of dealing with all the underlying system issues that arise when implementing a massively parallel algorithm. The framework is based on the parallel execution language X10, and allows the parallel solver to easily r...
Conference Paper
Full-text available
X10 is an object oriented programming language with a sophisticated type system (constraints, class invariants, non-erased generics, closures) and concurrency constructs (asynchronous activities, multiple places). Object initialization is a cross-cutting concern that interacts with all of these features in delicate ways that may cause type, runtime...
Article
Full-text available
Constraint logic programming languages such a s C H I P P 2 6 ,5] h a ve demonstrated the practicality o f d e c l a r -ative languages supporting consistency techniques and nondeterminism. Nevertheless they suuer from the black-box eeect: the programmer must work with a monolithic, unmodiiable, inextensible constraint-solver. This problem can be o...
Conference Paper
On shared-memory systems, Cilk-style work-stealing has been used to effectively parallelize irregular task-graph based applications such as Unbalanced Tree Search (UTS). There are two main difficulties in extending this approach to distributed memory. In the shared memory approach, thieves (nodes without work) constantly attempt to asynchronously s...
Article
To reliably write high performance code in any programming language, an application programmer must have some understanding of the performance characteristics of the language's core constructs. We call this understanding a performance model for the language. Some aspects of a performance model are fundamental to the programming language and are exp...
Article
GPU architectures have emerged as a viable way of considerably improving performance for appropriate applications. Program fragments (kernels) appropriate for GPU execution can be implemented in CUDA or OpenCL and glued into an application via an API. While there is plenty of evidence of performance improvements using this approach, there are many...
Conference Paper
Full-text available
Due to the memory intensive workload and the erratic access pattern, irregular graph algorithms are notoriously hard to implement and optimize for high performance on distributed-memory systems. Although the PGAS paradigm proposed recently improves ease of programming, no high performance PGAS implementation of large-scale graph analysis is known....
Conference Paper
This workshop explores the impact and opportunities of parallel computing on application programmers.
Conference Paper
The concurrency era has exploded on us. Multicore systems are now everywhere in our laptops, desktops, graphic cards, video game consoles. Symmetric multi-processors and clusters dominate the server and high performance computing market and are the foundation for cloud computing. There is an urgent need to ensure that newly trained Computer Science...
Article
High-performance Linpack (HPL) benchmark is used to evaluate the performance of super computers. It implements blocked, right-looking Gaussian elimination with row partial pivoting. Block cyclic distribution is used in the parallel variant. In this paper, we implement the HPL in X10. X10 is a high level high-performance programming language based o...
Article
Full-text available
Irregular graph algorithms for distributed-memory systems are hard to implement and optimize. Recent developments in PGAS languages make the implementation of irregular algorithms easier. In this paper we present our study of PRAM-based parallel connected components algorithm implemented in UPC for distributed-memory systems, and discuss optimizati...
Conference Paper
Full-text available
Load balancing is a technique which allows efficient parallelization of irregular workloads, and a key component of many applications and parallelizing runtimes. Work-stealing is a popular technique for implementing load balancing, where each parallel thread maintains its own work set of items and occasionally steals items from the sets of other th...
Conference Paper
Full-text available
The X10 programming language is organized around the notion of places (an encapsulation of data and activities operating on the data), partitioned global address space (PGAS), and asynchronous computation and communication. This paper introduces an expressive subset of X10, Flat X10, designed to permit efficient execution across multiple single-thr...
Article
Full-text available
Achieving anything near peak performance on modern high-performance hardware, whether organized as a multi-core, GPU, Cell, vector or hybrid architecture, is a daunting task. Copious re-search into fully-automated parallelizing compilation (Burke and Cytron 1986; Hall et al. 1991; Lam et al. 1991; Wolf and Lam 1991) is largely viewed as a decidedly...
Conference Paper
Full-text available
X10 is a modern object-oriented language designed for productivity and performance in concurrent and distributed systems. In this setting, dependent types offer significant opportunities for detecting design errors statically, documenting design decisions, eliminating costly run-time checks (e.g., for array bounds, null values), and improving the q...
Conference Paper
Full-text available
Solving large, irregular graph problems efficiently is challenging. Current software systems and commodity multiprocessors do not support fine-grained, irregular parallelism well. We present XWS, the X10 Work Stealing framework, an open-source runtime for the parallel programming language X10 and a library to be used directly by application writers...
Conference Paper
In languages with distributed heap data structures, the type system typically conveys only coarse locality information: whether a reference is local or possibly remote. Often, of interest to the optimizing compiler or the user is a more fine-grain information, such as whether two remote references point to objects in the same partition of the distr...
Conference Paper
A central problem in extending the von Neumann architecture to petaflop computers with a shared memory and millions of hardware threads is defining the memory model [1, 2, 3]. Such a model must specify the behavior of concurrent (conditional) reads and writes to the same memory locations. We present a simple, general framework for the specification...
Conference Paper
Two major trends are converging to reshape the landscape of concurrent object-oriented programming languages. First, trends in modern architectures (multi-core, accelerators, high performance clusters such as Blue Gene) are making concurrency and distribution inescapable for large classes of OO programmers. Second, experience with first-generation...
Conference Paper
Two major trends are converging to reshape the landscape of concurrent object-oriented programming languages. First, trends in modern architectures (multi-core, accelerators, high performance clusters such as Blue Gene) are making concurrency and distribution inescapable for large classes of OO programmers. Second, experience with first-generation...
Conference Paper
Full-text available
Performance of stencil computations can be significantly improved through smart implementations that improve memory locality, computation reuse, or parallelize the computation. Unfortunately, efficient implementations are hard to obtain because they often involve non-traditional transformations, which means that they cannot be produced by optimizin...
Conference Paper
Full-text available
A memory model for a concurrent imperative programming language specifies which writes to shared variables may be seen by reads performed by other threads. We present a simple mathematical framework for relaxed memory models for programming languages. To instantiate this framework for a specific language, the designer must choose the notion of atom...
Article
Full-text available
Data locality and memory safety are important goals for high-performance programming languages targeting multi-core systems with non-uniform memory. The data locality aspect is important for distributed algorithms running on high-performance systems where remote data access can both be costly and require the language sys-tem to generate different a...
Conference Paper
Full-text available
Sketching is a software synthesis approach where the programmer develops a partial implementation - a sketch - and a separate specification of the desired functionality. The synthesizer then completes the sketch to behave like the specification. The correctness of the synthesized implementation is guaranteed by the compiler, which allows, among oth...
Conference Paper
Full-text available
We present an expressiveness study of linearity and persistence of processes. We choose the pi-calculus, one of the main representatives of process calculi, as a framework to conduct our study. We consider four fragments of the pi-calculus. Each one singles out a natural source of linearity/ persistence also present in other frameworks such as Conc...
Conference Paper
We study a relationship between logic and computation via concurrent constraint programming. In previous papers it has been shown that concurrent constraint programs can be modeled by closure operators. In the present paper we show that the programming interpretation via closure operators is intimately related to the logic of the constraints. More...
Article
Full-text available
Arrays over regions of points were introduced in ZPL in the late 1990s and later adopted in Titanium and X10 as a means of simpli-fying the programming of high-performance software. A region is a set of points, rather than an interval or a product of intervals, and enables the programmer to write a loop that iterates over a region. While conve-nien...
Conference Paper
Full-text available
We present the natural confluence of higher-order hereditary Harrop formulas (HH formulas) as developed concretely in Prolog, Constraint Logic Programming (CLP, (JL87)), and Concurrent Constraint Programming (CCP, (Sar93)) as a fragment of (intuitionistic, higher-order) logic. The combination is motivated by the need for a simple executable, logica...
Article
Full-text available
It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during the last two decades. As a result, future systems are rapidly moving from uniprocessor to multiprocessor configurations, so as to use pa...
Conference Paper
We present the concurrency and distribution primitives of X10, a modern, statically typed, class-based object-oriented (OO) programming language, designed for high productivity programming of scalable applications on high-end machines. The basic move in the X10 programming model is to reify locality through a notion of place, which hosts multiple d...
Conference Paper
Full-text available
This paper focuses on policy languages for (role-based) access control [14, 32], especially in their modern incarnations in the form of trust-management systems [9] and usage control [30, 31]. Any (declarative) approach to access control and trust management has to address the following issues: Explicit denial, inheritance, and overriding, and Hist...
Conference Paper
Full-text available
It is now well established that the device scaling predicted by Moore's Law is no longer a viable option for increasing the clock frequency of future uniprocessor systems at the rate that had been sustained during the last two decades. As a result, future systems are rapidly moving from uniprocessor to multiprocessor configurations, so as to use pa...
Article
Full-text available
We are developing a secure programming language, M, that can be used for programming networked spaces: dynamically extensible, multi-person, networked, persistent, distributed virtual worlds (such as MUDs and MOOs)[Sar98]. Rather than design M from scratch, we are reusing as much of Java technology as possible to ensure that the resulting language...
Conference Paper
Full-text available
This paper describes jcc, an integration of the timed default concurrent constraint programming framework [16] (Timed Default cc) into Java [7]. jcc is intended for use in education and research, for the programming of embedded reactive systems, for parallel/distributed simulation and modelling (particularly for space, robotics and systems biology...
Article
Full-text available
nce in the above example, the sequence (X = 1; true) 2 P [[if (X = 1) else (Y = 2)]]. However (X = 1) 62 P [[if (X = 1) else (Y = 2)]] X , because the sequence (true) 2 P [[if (X = 1) else (Y = 2)]], and true 9XX = 1, but true 6 X = 1. Thus (X = 1; true) 62 P [[if (X = 1) else (Y = 2)]] X , and so P [[new X in if (X = 1) else (Y = 2)]] = P [[next Y...
Article
Concurrent Constraint Programming (CCP) is a powerful computation model for concurrency obtained by internalizing the notion of computation via deduction over (first-order) systems of partial information (constraints). In [SRP91] a semantics for indeterminate CCP was given via sets of bounded trace operators; this was shown to be fully abstract wit...
Article
This paper describes the design, implementation, and applications of the constraint logic language cc(FD). cc(FD) is a declarative nondeterministic constraint logic language over finite domains based on the cc framework [33], an extension of the CLP scheme [21]. Its constraint solver includes (non-linear) arithmetic constraints over natural numbers...
Conference Paper
Full-text available
Protection systems have provided the formal basis for the study of security and access mechanisms in computer systems for many years and, more recently, in the context of trust management. The main objective in the design and analysis of such systems is to express policies that prescribe how objects interact and share information with each other, a...
Article
Protection systems have provided the formal basis for study of security and access mechanisms in computer systems for many years and, more recently, in the context of trust management. The main objective in the design and analysis of such systems is to express policies that prescribe how objects interact and share information with each other, and v...
Article
Full-text available
A language is type-safe if the only operations that can be performed on data in the language are those sanctioned by the type of the data. Java is not type-safe, though it was intended to be. A Java object may read and modify fields (and invoke methods) private to another object. It may read and modify internal Java Virtual Machine (JVM) data-struc...
Article
In the conventional approach to simulating, controlling, and diagnosing a real-world physical system, engineers typically analyze the interactions of the system’s components and processes, and then develop new and dedicated code for that system. Instead, building on principles from model-based reasoning and constraint programming research, we propo...
Article
Full-text available
Terminological knowledge representation formalisms in the tradition of kl-one enable one to define the relevant concepts of a problem domain and their interaction in a structured and well-formed way. In recent years, a wealth of literature has appeared on this topic, e.g. [Baj93]. Sound and complete inference algorithms for terminological logics ha...
Conference Paper
Full-text available
Concurrent constraint programming is a simple but powerful frame-work for computation based on four basic computational ideas: concurrency (multiple agents are simultaneously active), communication (they interact via the monotonic accumulation of constraints on shared variables), coordination (the presence or absence of information can guard evolut...
Chapter
This introduction to and overview of the "glue" approach is the first book to bring together the research of the major contributors to the field. A new, deductive approach to the syntax-semantics interface integrates two mature and successful lines of research: logical deduction for semantic composition and the Lexical Functional Grammar (LFG) appr...
Chapter
This introduction to and overview of the "glue" approach is the first book to bring together the research of the major contributors to the field. A new, deductive approach to the syntax-semantics interface integrates two mature and successful lines of research: logical deduction for semantic composition and the Lexical Functional Grammar (LFG) appr...
Chapter
This introduction to and overview of the "glue" approach is the first book to bring together the research of the major contributors to the field. A new, deductive approach to the syntax-semantics interface integrates two mature and successful lines of research: logical deduction for semantic composition and the Lexical Functional Grammar (LFG) appr...
Chapter
This introduction to and overview of the "glue" approach is the first book to bring together the research of the major contributors to the field. A new, deductive approach to the syntax-semantics interface integrates two mature and successful lines of research: logical deduction for semantic composition and the Lexical Functional Grammar (LFG) appr...