Results 1  10
of
17
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 highlevel 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 highlevel 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 higherorder 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 divideandconquer paradigm, which has a high potential for an efficient parallelization. We describe the most important phases of the compiler: desugaring, elimination of higherorder 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...
Concrete Data Structures and Functional Parallel Programming
, 1997
"... We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed struc ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures called arrays. We find that arrays' symmetric replicated structures, suggested by the dataparallel SPMD paradigm, are incompatible with sum types. We then outline a functional language with explicitlydistributed (monomorphic) concrete types, including higherorder, sum and recursive ones. In this language, programs can be as large as the network and can observe communication events in other programs. Such flexibility is missing from current dataparallel languages and amounts to a fusion with their socalled annotations, directives or metalanguages. 1 Explicit communications and functional programming Faced with the mismatch between parallel programming languages and the requirements o...
Data Fields
 In Proc. Workshop on Generic Programming, Marstrand
, 1998
"... This position paper describes the data field model, a general model for indexed data structures. The aim of this model is to capture the essence of the style of programming where computing on data structures is expressed by operations directly on the structures rather than operations on the individu ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
This position paper describes the data field model, a general model for indexed data structures. The aim of this model is to capture the essence of the style of programming where computing on data structures is expressed by operations directly on the structures rather than operations on the individual elements. Array and and data parallel languages support this programming style, and functional languages often provide second order operations on lists and other data structures for the same purpose. The data field model is designed to be abstract enough to encompass a wide range of explicitly or implicitly indexed structures. Thus, algorithms which are expressed in terms of data fields and general operations on them will be independent of the choice of structure from this range  i.e., generic w.r.t. this choice. This means that the data field approach has some in common with polytypic programming and the theory of shapes.
Patternmatching and rewriting rules for group indexed data structures
 ACM SIGPLAN NOTICES
, 2002
"... In this report, we present a new framework for the definition of various datastructures (including trees and arrays) together with a generic language of filters enabling a rulebased programming style of functions. This framework is implemented in an experimental language called MGS. The underlying ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
In this report, we present a new framework for the definition of various datastructures (including trees and arrays) together with a generic language of filters enabling a rulebased programming style of functions. This framework is implemented in an experimental language called MGS. The underlying notions funding our framework have a topological nature and make possible to extend the casebased definition of functions found in modern functional languages beyond algebraic datastructures.
The HDC compiler project
 Proc. Eighth Int. Workshop on Compilers for Parallel Computers (CPC 2000
, 2000
"... We present a compiler for the functional language, 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 higherorder functions which represent p ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
We present a compiler for the functional language, 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 higherorder functions which represent program schemata that can be specialized by providing customizing functions as parameters. With, we focus on the divideandconquer paradigm, which has a high potential for an efficient parallelization. 1.
Data Field Computations on a Data Parallel Java ClientServer Distributed Architecture
, 1998
"... We describe FieldBroker, a software architecture, dedicated to data parallel computations on fields over Z n . Fields are a natural extension of the parallel array data structure. From the application point of view, field operations are processed by a field server, leading to a client/server archi ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We describe FieldBroker, a software architecture, dedicated to data parallel computations on fields over Z n . Fields are a natural extension of the parallel array data structure. From the application point of view, field operations are processed by a field server, leading to a client/server architecture. Requests are translated successively in three languages corresponding to a tower of three virtual machines processing respectively mappings on Z n , sets of arrays and flat vectors in core memory. The server is itself designed as a master/multithreadedslaves program. The aim of FieldBroker is to mutually incorporate approaches found in distributed computing, functional programming and the data parallel paradigm. It provides a testbed for experiments with language constructs, evaluation mechanisms, onthefly optimizations, loadbalancing strategies and data field implementations. Keywords: distributed computing, data parallel computing, data field, virtual machine, software arch...
Data Field Haskell
, 1999
"... . Data fields provide a flexible and highly general model for indexed collections of data. Data Field Haskell is a Haskell dialect that provides an instance of data fields. It can be used for very generic collectionoriented programming, with a special emphasis on multidimensional structures. We ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
. Data fields provide a flexible and highly general model for indexed collections of data. Data Field Haskell is a Haskell dialect that provides an instance of data fields. It can be used for very generic collectionoriented programming, with a special emphasis on multidimensional structures. We give a brief description of the data field model and its underlying theory. We then describe Data Field Haskell, and an implementation. 1 Introduction Indexed data structures are important in many computing applications. The canonical indexed data structure is the array, but other indexed structures like hash tables and explicitly parallel entities are also common. In many applications the indexing capability provides an important part of the model: when solving partial differential equations, for instance, the index is often closely related to a physical coordinate, and explicitly parallel algorithms often use processor ID's as indices. Since the time of APL [5] it has been recognised ...
Development of Parallel Algorithms in Data Field Haskell
 Proc. EuroPar 2000, volume 1900 of Lecture Notes in Comput. Sci
, 2000
"... . Data fields provide a flexible and highly general model for indexed collections of data. Data Field Haskell is a dialect of the functional language Haskell which provides an instance of data fields. We describe Data Field Haskell and exemplify how it can be used in the early phase of parallel ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. Data fields provide a flexible and highly general model for indexed collections of data. Data Field Haskell is a dialect of the functional language Haskell which provides an instance of data fields. We describe Data Field Haskell and exemplify how it can be used in the early phase of parallel program design. 1 Introduction Many computing applications require indexed data structures. The canonical indexed data structure is the array. However, for sparse, distributed applications, other, more dynamic indexed data structures are needed. It is desirable to develop such algorithms on a high level first, in order to get them right, since the low level data representations can be intricate. Data Field Haskell provides an instance of data fields  a data type for general indexed structures. This Haskell dialect can be used for rapid prototyping of parallel computational algorithms which may involve sparse structures. Various versions of the data field model have been described elsew...
Development and Verification of Parallel Algorithms in the Data Field Model
 Proc. 2nd Int. Workshop on Constructive Methods for Parallel Programming
, 2000
"... . Data fields are partial functions provided with explicit domain information. They provide a very general, formal model for collections of data. Algorithms computing data collections can be described in this formalism at various levels of abstraction: in particular, explicit data distributions a ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
. Data fields are partial functions provided with explicit domain information. They provide a very general, formal model for collections of data. Algorithms computing data collections can be described in this formalism at various levels of abstraction: in particular, explicit data distributions are easy to model. Parallel versions of algorithms can then be formally verified against algorithm specifications in the model. Functions computing data fields can be directly programmed in the language Data Field Haskell. In this paper we give a brief introduction to the data field model. We then describe Data Field Haskell and make a small case study of how an algorithm and a parallel version of it both can be specified in the language. We then verify the correctness of the parallel version in the data field model. 1 Introduction Many computing applications require indexed data structures. In many applications the indexing capability provides an important part of the model. On the ...