Results 1  10
of
11
Programming in Equational Logic: Beyond Strong Sequentiality
, 1993
"... Orthogonal term rewriting systems (also known as regular systems) provide an elegant framework for programming in equational logic. O'Donnell showed that the paralleloutermost strategy, which replaces all outermost redexes in each step, is complete for such systems. Many of the reductions performed ..."
Abstract

Cited by 42 (0 self)
 Add to MetaCart
Orthogonal term rewriting systems (also known as regular systems) provide an elegant framework for programming in equational logic. O'Donnell showed that the paralleloutermost strategy, which replaces all outermost redexes in each step, is complete for such systems. Many of the reductions performed by this strategy could be wasteful in general. A lazy normalization algorithm that completely eliminated these wasteful reductions by reducing only "needed redexes" was later developed by Huet and Levy. However, this algorithm required the input programs to be restricted to the subclass of strongly sequential systems. This is because needed redexes do not exist for all orthogonal programs, and even when they do, they may not be computable. It is therefore quite natural to ask whether it is possible to devise a complete normalization algorithm for the entire class that minimizes (rather than eliminate) the wasteful reductions. In this paper we propose a solution to this problem using the concept of a necessary set of redexes. In such a set, at least one of the redexes must be reduced to normalize a term. We devise an algorithm to compute a necessary set for any term not in normal form and show that a strategy that repeatedly reduces all redexes in such a set is complete for orthogonal programs. We also show that our algorithm is "optimal" among all normalization algorithms that are based on lefthand sides alone. This means that our algorithm is lazy (like HuetLevy's) on strongly sequential parts of a program and "relaxes laziness minimally" to handle the other parts and thus does not sacrifice generality for the sake of efficiency.
Fast Parallel Implementation of Lazy Languages  The EQUALS Experience
 Journal of Functional Programming
, 1992
"... This paper describes equals, a fast parallel implementation of a lazy functional language on a commercially available sharedmemory parallel machine, the Sequent Symmetry. In contrast to previous implementations, we detect parallelism automatically using strictness analysis. Another important differ ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
This paper describes equals, a fast parallel implementation of a lazy functional language on a commercially available sharedmemory parallel machine, the Sequent Symmetry. In contrast to previous implementations, we detect parallelism automatically using strictness analysis. Another important difference between equals and previous implementations is the use of reference counting for memory management, instead of garbage collection. Our implementation shows that reference counting leads to very good scalability, low memory requirements and improved locality. We compare our results with other sequential (SML/NJ) and parallel (h; Gimachine and GAML) implementations of functional languages.
The Impact of Laziness on Parallelism and the Limits of Strictness Analysis
 PROCEEDINGS HIGH PERFORMANCE FUNCTIONAL COMPUTING
, 1995
"... The major question examined by this paper is whether sufficient finegrain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propa ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
The major question examined by this paper is whether sufficient finegrain parallelism can be obtained from programs written in a lazy functional language. To answer this question, we have implemented a prototype compiler based on a novel approach to strictness analysis (called abstract demand propagation) and we have compared this implementation strategy (optimized lazy) with other implementations, viz., pure lazy and lenient. Although the optimized lazy implementation improves significantly the efficiency of the resulting programs over the pure lazy approach, it was found that little parallelism can effectively be identified. This remains true even when a new notion of laziness  speculative laziness  is introduced, notion well suited to parallel machines as it based on a parallel notion of headstrictness instead of the traditional sequential one. Our experiments also showed that when a program's result is known to be finite, then strictness analysis can generate almost as mu...
On the power of abstract interpretation
 Computer Languages
, 1992
"... Abstract Increasingly sophisticated applications of static analysis make it important to precisely characterize the power of static analysis techniques. Sekar et al. recently studied the power of strictness analysis techniques and showed that strictness analysis is perfect up to variations in consta ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
Abstract Increasingly sophisticated applications of static analysis make it important to precisely characterize the power of static analysis techniques. Sekar et al. recently studied the power of strictness analysis techniques and showed that strictness analysis is perfect up to variations in constants. We generalize this approach to abstract interpretation in general by defining a notion of similarity semantics. This semantics associates to a program a collection of interpretations all of which are obtained by blurring the distinctions that a particular static analysis ignores. We define completeness with respect to similarity semantics and obtain two completeness results. For firstorder languages, abstract interpretation is complete with respect to a standard similarity semantics provided the base abstract domain is linearly ordered. For typed higherorder languages, it is complete with respect a logical similarity semantics again under the condition of linearly ordered base abstract domain. 1
How Much Nonstrictness do Lenient Programs Require?
 In Conf. on Func. Prog. Languages and Computer Architecture
, 1995
"... Lenient languages, such as Id90, have been touted as among the best functional languages for massively parallel machines [AHN88]. Lenient evaluation combines nonstrict semantics with eager evaluation [Tra91]. Nonstrictness gives these languages more expressive power than strict semantics, while ea ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Lenient languages, such as Id90, have been touted as among the best functional languages for massively parallel machines [AHN88]. Lenient evaluation combines nonstrict semantics with eager evaluation [Tra91]. Nonstrictness gives these languages more expressive power than strict semantics, while eager evaluation ensures the highest degree of parallelism. Unfortunately, nonstrictness incurs a large overhead, as it requires dynamic scheduling and synchronization. As a result, many powerful program analysis techniques have been developed to statically determine when nonstrictness is not required [CPJ85, Tra91, Sch94]. This paper studies a large set of lenient programs and quantifies the degree of nonstrictness they require. We identify several forms of nonstrictness, including functional, conditional, and data structure nonstrictness. Surprisingly, most Id90 programs require neither functional nor conditional nonstrictness. Many benchmark programs, however, make use of a limited fo...
A High Performance Runtime System for Parallel Evaluation of Lazy Languages
 In Parallel and Symbolic Computation. World Scientific, River Edge, N.J
, 1994
"... : is a system for parallel evaluation of lazy functional programs implemented on a Sequent Symmetry. The distinguishing features of over previous implementations are propagation of Normal Form demand and memory reclamation via reference counting. In an earlier paper, the validity of these ideas was ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
: is a system for parallel evaluation of lazy functional programs implemented on a Sequent Symmetry. The distinguishing features of over previous implementations are propagation of Normal Form demand and memory reclamation via reference counting. In an earlier paper, the validity of these ideas was established based on a preliminary implementation. Our experience, based on extensive experimentation with this implementation, led to the design and implementation of a new highperformance runtime system for described in this paper. We discuss the rationale behind the various design choices and provide quantitative evidence for the validity of these choices. Keywords: Lazy Functional Languages, Implementation, Parallelism, Performance Evaluation 1 Introduction Functional languages offer a conceptually simple approach to programming parallel computers. Detection and exploitation of parallelism in functional programs is simpler than in imperative programs, due to referential transparency. T...
Fast Strictness Analysis Based on Demand Propagation
 ACM Transactions on Programming Languages and Systems
, 1995
"... Interpretation versus Demand Propagation Wadler [1987] uses abstract interpretation over a fourpoint domain for reasoning about strictness on lists. The four points correspond to undefined list (represented by value 0), infinite lists and lists with some tail undefined (value 1), lists with at lea ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Interpretation versus Demand Propagation Wadler [1987] uses abstract interpretation over a fourpoint domain for reasoning about strictness on lists. The four points correspond to undefined list (represented by value 0), infinite lists and lists with some tail undefined (value 1), lists with at least one head undefined (value 2), and all lists (value 3). Burn's work [Burn 1987] on evaluation transformers also uses abstract interpretation on the abovementioned domain for strictness analysis. He defines four evaluators that correspond to the four points mentioned above in the sense that the ith evaluator will fail to produce an answer when given a list with the abstract value i \Gamma 1.
PROUD  Parallel Resources On Users' Desks
"... Contents Contents 1 Table of Contents 2 2 Executive Summary 4 3 Infrastructure Description 7 4 Resource Allocation 9 5 Budget 14 5.1 Management structure : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21 6 Research 22 6.1 Introduction : : : : : : : : : : : : : : : : : : : : : : ..."
Abstract
 Add to MetaCart
Contents Contents 1 Table of Contents 2 2 Executive Summary 4 3 Infrastructure Description 7 4 Resource Allocation 9 5 Budget 14 5.1 Management structure : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21 6 Research 22 6.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22 6.2 Parallel XSBProlog  Warren : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 6.3 Parallel ContractionBased Theorem Proving  Hsiang, Bachmair : : : : : : : : : : 26 6.4 Parallel SYNCHEM  Gelernter : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 6.5 EQUALS: A Parallel Equational Language  Ramakrishnan : : : : : : : : : : : : : 31 6.5.1 Overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 6.5.2 Planned Enhancements : : : : : : : : : : : : : : : : : : : : : :
A New Framework for Strictness Analysis Using Demand Propagation
"... This paper presents a novel approach to strictness analysis called abstract demand propagation, approach developed for the implementation of lazy functional programming languages on parallel machines. Although some work on strictness analysis using demand propagation has been done before, the presen ..."
Abstract
 Add to MetaCart
This paper presents a novel approach to strictness analysis called abstract demand propagation, approach developed for the implementation of lazy functional programming languages on parallel machines. Although some work on strictness analysis using demand propagation has been done before, the present work is original in that it gives a precise interpretation of the notions of demands and demand propagation using an exact nonstandard denotational semantics. The intuition behind this semantics is that it represents a form of inverse computation, i.e., it determines the least amount of information needed to produce at least some required (demanded) result. Viewing demand propagation as a form of inverse computation allows to establish the soundness of our nonstandard semantics by formally relating it with the standard semantics. In order to define a compiletime analysis based on demand propagation, safety and termination must be ensured. This is done by defining an abstract interpreta...
EQUALS  The Next Generation
"... Equals is a system for parallel evaluation of lazy functional programs implemented on a Sequent Symmetry. A preliminary implementation of equals [4] was used to establish the validity of Normal Form (NF) demand propagation and memory reclamation via reference counting. However, that implementation d ..."
Abstract
 Add to MetaCart
Equals is a system for parallel evaluation of lazy functional programs implemented on a Sequent Symmetry. A preliminary implementation of equals [4] was used to establish the validity of Normal Form (NF) demand propagation and memory reclamation via reference counting. However, that implementation did not exploit vertical parallelism, where the arguments to a function can be evaluated in parallel with the function itself. The overheads of vertical parallelism can be as high as the overheads in systems that do not propagate NF demand. Hence careful integration of vertical parallelism with horizontal parallelism (parallelism among the arguments to a function) is needed to fully benefit from NFdemand propagation. In this paper we describe schemes to harness vertical parallelism within the context of the current equals system. We identify the aspects of the runtime system (task management) that affect the overall efficiency of the combined system. We also provide preliminary performance figures indicating the effectiveness of the selected schemes.