Results 1 -
4 of
4
Algorithm + Strategy = Parallelism
- JOURNAL OF FUNCTIONAL PROGRAMMING
, 1998
"... The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies, lazy higher-order functions that control the parallel evaluation of ..."
Abstract
-
Cited by 51 (18 self)
- Add to MetaCart
The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies, lazy higher-order functions that control the parallel evaluation of non-strict functional languages. Using evaluation strategies, it is possible to achieve a clean separation between algorithmic and behavioural code. The result is enhanced clarity and shorter parallel programs. Evaluation strategies are a very general concept: this paper shows how they can be used to model a wide range of commonly used programming paradigms, including divideand -conquer, pipeline parallelism, producer/consumer parallelism, and data-oriented parallelism. Because they are based on unrestricted higher-order functions, they can also capture irregular parallel structures. Evaluation strategies are not just of theoretical interest: they have evolved out of our experience in parallelising several large-scale applications, where they have proved invaluable in helping to manage the complexities of parallel behaviour. These applications are described in detail here. The largest application we have studied to date, Lolita, is a 60,000 line natural language parser. Initial results show that for these applications we can achieve acceptable parallel performance, while incurring minimal overhead for using evaluation strategies.
A Transformational Framework for Skeletal Programs: Overview and Case Study
- Parallel and Distributed Processing. IPPS/SPDP’99 Workshops Proceedings. Lecture Notes in Computer Science 1586
, 1999
"... A structured approach to parallel programming allows to construct applications by composing skeletons, i.e., recurring patterns of task- and data-parallelism. First academic and commercial experience with skeleton-based systems has demonstrated both the benefits of the approach and the lack of a spe ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
A structured approach to parallel programming allows to construct applications by composing skeletons, i.e., recurring patterns of task- and data-parallelism. First academic and commercial experience with skeleton-based systems has demonstrated both the benefits of the approach and the lack of a special methodology for algorithm design and performance prediction. In the paper, we take a first step toward such a methodology, by developing a general transformational framework named FAN, and integrating it with an existing skeleton-based programming system, P3L. The framework includes a new functional abstract notation for expressing parallel algorithms, a set of semantics-preserving transformation rules, and analytical estimates of the rules' impact on the program performance. The use of FAN is demonstrated on a case study: we design a parallel algorithm for the maximum segment sum problem, translate the algorithm in P3L, and experiment with the target C+MPI code on a Fujitsu AP1000 parallel machine.
CONCERT - A Software Architecture for Coordinating Education Sessions in Distributed Environments
, 1997
"... This paper sketches an environment for distributed education that supports the lecturer in preparing and performing a computer-supported session over the network ("virtual classroom"). This task is particularly challenging because it requires the coordination of concurrent activities operating i ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper sketches an environment for distributed education that supports the lecturer in preparing and performing a computer-supported session over the network ("virtual classroom"). This task is particularly challenging because it requires the coordination of concurrent activities operating in real-time on objects of different types located in a distributed network environment. We describe the CONCERT software architecture that can be implemented with realistic efforts in the mid-term future and allows non-expert users to perform such a task. Since technology is rapidly evolving, we focus on the design of an abstract architecture under which various technologies can be integrated and on top of which different programming interfaces can be built. This architecture can be implemented in form of an application framework i.e. of an object-oriented software library into which application/system-specific components can be plugged. Our investigation is accompanied by a detail...
A Run-time System for SCOOP
- Journal of Object Technology
, 2002
"... this paper we describe our initial implementation of SCOOP using the GNU Eiffel compiler. We focus on the run-time system, showing how SCOOP's synchronization mechanisms depend on the solution of a dynamic mutual exclusion problem; we give a solution using a thread and lock manager. We present a num ..."
Abstract
- Add to MetaCart
this paper we describe our initial implementation of SCOOP using the GNU Eiffel compiler. We focus on the run-time system, showing how SCOOP's synchronization mechanisms depend on the solution of a dynamic mutual exclusion problem; we give a solution using a thread and lock manager. We present a number of benchmarks, and discuss which features remain to be completed

