Results 1 -
5 of
5
Shape Checking of Array Programs
- In Computing: the Australasian Theory Seminar, Proceedings
, 1997
"... Shape theory provides a framework for the study of data types in which shape and data can be manipulated separately. This paper is concerned with shape checking, i.e. the detection of shape errors, such as array bound errors, without handling the data stored within. It can be seen as a form of parti ..."
Abstract
-
Cited by 22 (5 self)
- Add to MetaCart
Shape theory provides a framework for the study of data types in which shape and data can be manipulated separately. This paper is concerned with shape checking, i.e. the detection of shape errors, such as array bound errors, without handling the data stored within. It can be seen as a form of partial evaluation in which data computations are ignored. We construct a simply-typed lambda-calculus that supports a vector type constructor, whose iteration yields types of arrays. It is expressive enough to construct all of the usual linear algebra operations. All shape errors in a term t can be detected by evaluating its shape #t. Evaluation of #t will terminate if that of t does. Keywords shape analysis, partial evaluation, arrays, higher-order. 1 Introduction Shape theory explores the consequences of manipulating shape and data separately (Jay [14]). Shape refers to the data structure in which the data is stored. For example, the shape of a three-dimensional regular array is a tuple of...
Rewriting skeleton programs: How to evaluate the data-parallel stream-parallel tradeoff
- University of Passau
, 1998
"... Some skeleton based parallel programming models allow the programmer to use both data and stream parallel skeletons within the same program. It is known that particular skeleton nestings can be formally rewritten into different nestings that preserve the functional semantics. Indeed, the kind and ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
Some skeleton based parallel programming models allow the programmer to use both data and stream parallel skeletons within the same program. It is known that particular skeleton nestings can be formally rewritten into different nestings that preserve the functional semantics. Indeed, the kind and possibly the amount of parallelism usefully exploitable may change while rewriting takes place. Here we discuss an original framework allowing the user (and/or the compiling tools) of a skeleton based parallel programming language to evaluate whether or not the transformation of a skeleton program is worthwhile in terms of the nal program performance. We address, in particular, the evaluation of transformations exchanging data parallel and stream parallel skeleton subtrees.
Shaping Object-Oriented Programs
, 1996
"... Object-oriented programming is valued for the clarity and maintainability of its programs. However, this success is mainly confined to smallscale phenomena, such as re-implementation of a single class: large-scale structures are as obscure and fragile as ever. We offer shape theory as a means of rea ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
Object-oriented programming is valued for the clarity and maintainability of its programs. However, this success is mainly confined to smallscale phenomena, such as re-implementation of a single class: large-scale structures are as obscure and fragile as ever. We offer shape theory as a means of reasoning about program structure, and improving objectoriented design. In particular, shape analysis should improve debugging and compilation, and shape polymorphism should support greater re-use of programs, despite large-scale structural changes. Object-orientation (OO) uses classes to structure programs. During execution of a program, instances of class, called objects are manipulated within an object graph, whose edges represent interobject references or dependencies. OO has been very successful in organising programming on a small scale, at the level of one class or object, but reasoning about large programs remains as difficult as ever. For example, small changes to the class structure...
Abstraction and Performance in the Design of Parallel Programs
, 1997
"... ion and Performance in the Design of Parallel Programs Der Fakultat fur Mathematik und Informatik der Universitat Passau vorgelegte Zusammenfassung der Veroffentlichungen zur Erlangung der venia legendi von Dr. Sergei Gorlatch Passau, Juli 1997 Contents 1 Introduction 2 2 Outline of the SA ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
ion and Performance in the Design of Parallel Programs Der Fakultat fur Mathematik und Informatik der Universitat Passau vorgelegte Zusammenfassung der Veroffentlichungen zur Erlangung der venia legendi von Dr. Sergei Gorlatch Passau, Juli 1997 Contents 1 Introduction 2 2 Outline of the SAT Approach 6 2.1 Performance View . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Abstraction View . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Design in SAT: Stages and Transformations . . . . . . . . . . 9 2.4 SAT and Homomorphisms . . . . . . . . . . . . . . . . . . . . 11 3 List Homomorphisms 12 4 Extraction and Adjustment 14 4.1 The CS-Method . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Mechanizing the CS-Method . . . . . . . . . . . . . . . . . . . 17 4.3 Almost-Homomorphisms: the MSS Problem . . . . . . . . . . 19 5 Composition of Homomorphisms 21 5.1 Rules of Composition . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 Derivation by Transformation...
Data Field Computations on a Data Parallel Java Client-Server 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/multithreaded-slaves 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, on-the-fly optimizations, load-balancing strategies and data field implementations. Keywords: distributed computing, data parallel computing, data field, virtual machine, software arch...

