Results 1 - 10
of
11
A Cost Analysis for a Higher-order Parallel Programming Model
, 1996
"... Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate low-level details without sacrificing performance. This thesis investiga ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
Programming parallel computers remains a difficult task. An ideal programming environment should enable the user to concentrate on the problem solving activity at a convenient level of abstraction, while managing the intricate low-level details without sacrificing performance. This thesis investigates a model of parallel programming based on the BirdMeertens Formalism (BMF). This is a set of higher-order functions, many of which are implicitly parallel. Programs are expressed in terms of functions borrowed from BMF. A parallel implementation is defined for each of these functions for a particular topology, and the associated execution costs are derived. The topologies which have been considered include the hypercube, 2-D torus, tree and the linear array. An analyser estimates the costs associated with different implementations of a given program and selects a cost-effective one for a given topology. All the analysis is performed at compile-time which has the advantage of reducing run-...
Prototyping a parallel vision system in Standard ML
, 1993
"... The construction of a parallel vision system from Standard ML prototypes is presented. The system recognises 3D objects from 2D scenes through edge detection, grouping of edges into straight lines and line junction based model matching. Functional prototyping for parallelism is illustrated through t ..."
Abstract
-
Cited by 16 (7 self)
- Add to MetaCart
The construction of a parallel vision system from Standard ML prototypes is presented. The system recognises 3D objects from 2D scenes through edge detection, grouping of edges into straight lines and line junction based model matching. Functional prototyping for parallelism is illustrated through the development of the straight line detection component. The assemblage of the whole system from prototyped components is then considered and its performance is discussed. 1 Introduction 1.1 Overview We have been investigating the use of functional prototyping in the development of parallel systems. In this paper we discuss the construction of a simple but complete parallel vision system which will recognise 3D objects from 2D intensity images. The system was prototyped in a pure functional subset of Standard ML and implemented in Occam2 on a Meiko Computing Surface. An important objective of this work is to give us experience in building a large scale project from discrete modules. In par...
A Compiler for HDC
- Fakultt fr Mathematik und Informatik
, 1999
"... We present a compiler for the functional language HDC, which aims at the generation of efficient code from high-level programs. HDC, which is syntactically a subset of the widely used language Haskell, facilitates the clean integration of skeletons with a predefined efficient parallel implementation ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We present a compiler for the functional language HDC, which aims at the generation of efficient code from high-level programs. HDC, which is syntactically a subset of the widely used language Haskell, facilitates the clean integration of skeletons with a predefined efficient parallel implementation into a functional program. Skeletons are higher-order functions which represent program schemata that can be specialized by providing customizing functions as parameters. The only restriction on customizing functions is their type. Skeletons can be composed of skeletons again. With HDC, we focus on the divide-and-conquer paradigm, which has a high potential for an efficient parallelization. We describe the most important phases of the compiler: desugaring, elimination of higher-order functions, generation of an optimized directed acyclic graph and code generation, with a focus on the integration of skeletons. The effect of the transformations on the target code is demonstrated on the examp...
A Parallel Functional Language Compiler for Message-Passing Multicomputers
, 1998
"... The research presented in this thesis is about the design and implementation of Naira, a parallel, parallelising compiler for a rich, purely functional programming language. The source language of the compiler is a subset of Haskell 1.2. The front end of Naira is written entirely in the Haskell subs ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
The research presented in this thesis is about the design and implementation of Naira, a parallel, parallelising compiler for a rich, purely functional programming language. The source language of the compiler is a subset of Haskell 1.2. The front end of Naira is written entirely in the Haskell subset being compiled. Naira has been successfully parallelised and it is the largest successfully parallelised Haskell program having achieved good absolute speedups on a network of SUN workstations. Having the same basic structure as other production compilers of functional languages, Naira's parallelisation technology should carry forward to other functional language compilers. The back end of Naira is written in C and generates parallel code in the C language which is envisioned to be run on distributed-memory machines. The code generator is based on a novel compilation scheme specified using a restricted form of Milner's ß-calculus which achieves asynchronous communication. We present the f...
Parallel Functional Island Model Genetic Algorithms through Nested Algorithmic Skeletons
- In Proceedings of 12th International Workshop on the Implementation of Functional Languages
, 2000
"... Island model genetic algorithms (GAs) are based on independent GAs which evolve separately, and intermittently exchange genetic material. Such models may be expressed as nested higher-order functions and realised as the corresponding nested algorithmic skeletons. Here we consider the use of an islan ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Island model genetic algorithms (GAs) are based on independent GAs which evolve separately, and intermittently exchange genetic material. Such models may be expressed as nested higher-order functions and realised as the corresponding nested algorithmic skeletons. Here we consider the use of an island model GA for the Traveling Salesperson Problem(TSP) in the evaluation of our parallelising compiler for Standard ML. We also discuss how an island model GA may be used to solve the over-determined linear equations used in the compiler to predict parallel behaviour from sequential prototyping, and show that it is a very poor technique compared with Singular Value Decomposition.
A Scheme For Nesting Algorithmic Skeletons
- Department of Computer Science, University College London
, 1998
"... . A scheme for arbitrary nesting of algorithmic skeletons is explained which is based on the idea of groups in MPI. Two skeletons were developed which run in a nested mode: a binary divide and conquer and a process farm for a parallel implementation of fold and map HOFs respectively. An Example show ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
. A scheme for arbitrary nesting of algorithmic skeletons is explained which is based on the idea of groups in MPI. Two skeletons were developed which run in a nested mode: a binary divide and conquer and a process farm for a parallel implementation of fold and map HOFs respectively. An Example showing various cases for nesting the two skeletons is presented. The experiment was conducted on the Fujitsu AP1000 parallel machine. 1 Introduction It is well known that parallelism adds an additional level of difficulty to software development. Following Cole's characterisation[1], algorithmic skeletons have been recognised widely as a valuable basis for parallel software construction. A skeleton abstracts a control structure which may be instantiated subsequently with specific functions to carry out specific tasks. Therefore, the encapsulation of parallel algorithms into skeletons is a promising approach to high-level specification of parallel algorithms. Normally, functional programming la...
Engineering a Parallel Compiler for Standard ML
- In Proceedings of the 10th International Workshop on Implementations of Functional Language
, 1998
"... . We present the design and partial implementation of an automated parallelising compiler for Standard ML using algorithmic skeletons. Source programs are parsed and elaborated using the ML Kit compiler and a small set of higher order functions are automatically detected and replaced with parallel e ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
. We present the design and partial implementation of an automated parallelising compiler for Standard ML using algorithmic skeletons. Source programs are parsed and elaborated using the ML Kit compiler and a small set of higher order functions are automatically detected and replaced with parallel equivalents. Without the presence of performance predictions, the compiler simply instantiates all instances of the known HOFs with parallel equivalents. The resulting SML program is then output as Objective Caml and compiled with the parallel skeleton harnesses giving an executable which runs on networks of workstations. The parallel harnesses are implemented in C with MPI providing the communications subsystem. A substantial parallel exemplar is presented, an implementation of the Canny edge tracking algorithm from computer vision which is parallelised by implementing the map skeleton over a set of subimages. 1 Introduction We are investigating the development of a fully automatic parallel...
Parallel Standard ML with Skeletons
- More or Less Explicit Parallelism in Concurrent Clean. Workshop on Parallel Functional Programming in association with IFL’98
, 1998
"... Abstract. We present an overview of our system for automatically extracting parallelism from Standard ML programs using algorithmic skeletons. This system identifies a small number of higher-order functions as sites of parallelism and the compiler uses profiling and transformation techniques to expl ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. We present an overview of our system for automatically extracting parallelism from Standard ML programs using algorithmic skeletons. This system identifies a small number of higher-order functions as sites of parallelism and the compiler uses profiling and transformation techniques to exploit these. Key words. automated parallelization, higher-order functions, algorithmic skeletons. 1. Introduction. The
A Method for Developing Parallel Vision Algorithms with an Example of Edge Tracking
, 1996
"... We present a general approach to parallel algorithm development based on protyping and benchmarking in a functional language. Preferred solutions are then translated to an imperative language to run on a MIMD architecture. The methodology is well-suited to vision algorithms, since these show a high ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We present a general approach to parallel algorithm development based on protyping and benchmarking in a functional language. Preferred solutions are then translated to an imperative language to run on a MIMD architecture. The methodology is well-suited to vision algorithms, since these show a high degree of data or algorithmic complexity at several levels, and are necessarily dependent on parallel processing for rapid computation. The approach is demonstrated fully on a relatively difficult parallel task, tracking boundaries in an intensity image, showing how the functional prototype provides accurate predictions of the final parallel code. Prototyping is in Standard ML for parallel implementation in occam2 on a transputer array. Keywords: functional prototyping, parallel vision, distributed memory, edge tracking Telephone: 0131-451-3422 (Michaelson) -3423 (Wallace) Fax: 0131-451-3431 email: norman,greg,andy@cee.hw.ac.uk Correspondence: Dr. Andrew Wallace at above address 1 Over...

