Results 1 
8 of
8
A Provably TimeEfficient Parallel Implementation of Full Speculation
 In Proceedings of the 23rd ACM Symposium on Principles of Programming Languages
, 1996
"... Speculative evaluation, including leniency and futures, is often used to produce high degrees of parallelism. Existing speculative implementations, however, may serialize computation because of their implementation of queues of suspended threads. We give a provably efficient parallel implementation ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
(Show Context)
Speculative evaluation, including leniency and futures, is often used to produce high degrees of parallelism. Existing speculative implementations, however, may serialize computation because of their implementation of queues of suspended threads. We give a provably efficient parallel implementation of a speculative functional language on various machine models. The implementation includes proper parallelization of the necessary queuing operations on suspended threads. Our target machine models are a butterfly network, hypercube, and PRAM. To prove the efficiency of our implementation, we provide a cost model using a profiling semantics and relate the cost model to implementations on the parallel machine models. 1 Introduction Futures, lenient languages, and several implementations of graph reduction for lazy languages all use speculative evaluation (callbyspeculation [15]) to expose parallelism. The basic idea of speculative evaluation, in this context, is that the evaluation of a...
A Parallel Complexity Model for Functional Languages
 IN: PROC. ACM CONF. ON FUNCTIONAL PROGRAMMING LANGUAGES AND COMPUTER ARCHITECTURE
, 1994
"... A complexity model based on the calculus with an appropriate operational semantics in presented and related to various parallel machine models, including the PRAM and hypercube models. The model is used to study parallel algorithms in the context of "sequential" functional languages, and ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
A complexity model based on the calculus with an appropriate operational semantics in presented and related to various parallel machine models, including the PRAM and hypercube models. The model is used to study parallel algorithms in the context of "sequential" functional languages, and to relate these results to algorithms designed directly for parallel machine models. For example, the paper shows that equally good upper bounds can be achieved for merging two sorted sequences in the pure calculus with some arithmetic constants as in the EREW PRAM, when they are both mapped onto a more realistic machine such as a hypercube or butterfly network. In particular for n keys and p processors, they both result in an O(n=p + log 2 p) time algorithm. These results argue that it is possible to get good parallelism in functional languages without adding explicitly parallel constructs. In fact, the lack of random access seems to be a bigger problem than the lack of parallelism. This research...
Programming Language Expressiveness and Circuit Complexity
 in: Internat. Conf. on the Mathematical Foundations of Programming Semantics
, 1996
"... This paper is a continuation of the work begun in [5] on establishing relative intensional expressiveness results for programming languages. Language L 1 is intensionally more expressive than L 2 , if L 1 can compute all the functions L 2 can, with at least the same asymptotic complexity. The questi ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
This paper is a continuation of the work begun in [5] on establishing relative intensional expressiveness results for programming languages. Language L 1 is intensionally more expressive than L 2 , if L 1 can compute all the functions L 2 can, with at least the same asymptotic complexity. The question we address is: Does nondeterministic parallelism add intensional expressiveness? We compare deterministic and nondeterministic extensions of PCF, a simple functional programming language. We develop further the circuit semantics from our earlier work, and establish a connection between parallel PCF programs and boolean circuits. Using results from circuit complexity, and assuming hardware which can detect undefined inputs, we show that nondeterministic parallelism is indeed intensionally more expressive. More precisely, we show that nondeterministic parallelism can lead to exponentially faster programs, and also programs that do exponentially less work. 1 Introduction We conduct an inves...
unknown title
"... Semanticsbased parallel cost models and their use in provably efficient implementations ..."
Abstract
 Add to MetaCart
(Show Context)
Semanticsbased parallel cost models and their use in provably efficient implementations
Operational Semantics Models of Complexity (thesis proposal)
, 1994
"... Definitions of complexity are traditionally given relative to a relatively lowlevel, machineoriented model of computation. As programming languages become more complex, the relation between a program and its machine model time, space, etc., complexities becomes less clear. An alternative is to prov ..."
Abstract
 Add to MetaCart
(Show Context)
Definitions of complexity are traditionally given relative to a relatively lowlevel, machineoriented model of computation. As programming languages become more complex, the relation between a program and its machine model time, space, etc., complexities becomes less clear. An alternative is to provide a languageoriented definition of complexity in terms of costs that make sense for that language and its semantics. The languagelevel complexity can then be related to the machinelevel complexity. The programmer can use the more intuitive languagelevel definition and then use this relation, which is proved separately, to obtain machineoriented complexities when needed. 1 Introduction Definitions of complexity must be given relative to a model of computation. Traditionally, these models have been machine models, such as the Random Access Machine (RAM) and Turing Machine for serial computation, and the Parallel RAM (PRAM), circuits, and models based on specific communication networks ...
Circuit Semantics and Intensional Expressivity
, 1996
"... We introduce a new denotational semantics for functional programming languages and use it to reason about intensional aspects of programs. Circuit semantics associates a gate with each basic construct of the language, and takes the meaning of a program to be a circuit. The dimensions of the circuit ..."
Abstract
 Add to MetaCart
(Show Context)
We introduce a new denotational semantics for functional programming languages and use it to reason about intensional aspects of programs. Circuit semantics associates a gate with each basic construct of the language, and takes the meaning of a program to be a circuit. The dimensions of the circuit enable reasoning about running time and work required for execution. We use circuit semantics to obtain relative intensional expressiveness results between various deterministic and nondeterministic parallel extensions of PCF. 1 Introduction We are interested in establishing relative intensional expressiveness results for programming languages. Most work in the past has focused on extensional expressiveness: Language L 1 is extensionally more expressive than L 2 if L 1 can compute all the functions computable in L 2 . We say that language L 1 is intensionally more expressive than L 2 , if L 1 can compute all the functions computable in L 2 , with at least the same asymptotic complexity. T...
An Intensional Investigation of Parallelism
, 1994
"... Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism ..."
Abstract
 Add to MetaCart
Denotational semantics is usually extensional in that it deals only with input/output properties of programs by making the meaning of a program a function. Intensional semantics maps a program into an algorithm, thus enabling one to reason about complexity, order of evaluation, degree of parallelism, efficiencyimproving program transformations, etc. I propose to develop intensional models for a number of parallel programming languages. The semantics will be implemented, resulting in a programming language of parallel algorithms, called CDSP. Applications of CDSP will be developed to determine its suitability for actual use. The thesis will hopefully make both theoretical and practical contributions: as a foundational study of parallelism by looking at the expressive power of various constructs, and with the design, implementation, and applications of an intensional parallel programming language. 1 Introduction Denotational semantics has now been around for about 25 years, which makes...