Results 1 -
7 of
7
Realtime Signal Processing -- Dataflow, Visual, and Functional Programming
, 1995
"... This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computat ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computation. The dataflow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of dataflow processes, the functional language Haskell is layered above this model, providing powerful features---notably polymorphism, higher-order functions, and algebraic program transformation---absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the "intuitive" appeal of visual interfaces; with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like a block dia...
Architecture Independent Massive Parallelization of Divide-and-Conquer Algorithms
- Mathematics of Program Construction, Lecture Notes in Computer Science 947
, 1995
"... . We present a strategy to develop, in a functional setting, correct, efficient and portable Divide-and-Conquer (DC) programs for massively parallel architectures. Starting from an operational DC program, mapping sequences to sequences, we apply a set of semantics preserving transformation rules, wh ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
. We present a strategy to develop, in a functional setting, correct, efficient and portable Divide-and-Conquer (DC) programs for massively parallel architectures. Starting from an operational DC program, mapping sequences to sequences, we apply a set of semantics preserving transformation rules, which transform the parallel control structure of DC into a sequential control flow, thereby making the implicit data parallelism in a DC scheme explicit. In the next phase of our strategy, the parallel architecture is fully expressed, where `architecture dependent' higher-order functions are introduced. Then -- due to the rising communication complexities on particular architectures -- topology dependent communication patterns are optimized in order to reduce the overall communication costs. The advantages of this approach are manifold and are demonstrated with a set of non-trivial examples. 1 Introduction It is well-known that the main problems in exploiting the power of modern parallel sys...
Parallelization of Divide-and-Conquer in the Bird-Meertens Formalism
, 1995
"... . An SPMD parallel implementation schema for divide-and-conquer specifications is proposed and derived by formal refinement (transformation) of the specification. The specification is in the form of a mutually recursive functional definition. In a first phase, a parallel functional program schema is ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
. An SPMD parallel implementation schema for divide-and-conquer specifications is proposed and derived by formal refinement (transformation) of the specification. The specification is in the form of a mutually recursive functional definition. In a first phase, a parallel functional program schema is constructed which consists of a communication tree and a functional program that is shared by all nodes of the tree. The fact that this phase proceeds by semanticspreserving transformations in the Bird-Meertens formalism of higher-order functions guarantees the correctness of the resulting functional implementation. A second phase yields an imperative distributed message-passing implementation of this schema. The derivation process is illustrated with an example: a twodimensional numerical integration algorithm. 1. Introduction One of the main problems in exploiting modern multiprocessor systems is how to develop correct and efficient programs for them. We address this problem using the ap...
Realtime Signal Processing Data ow, Visual, and Functional Programming
, 1995
"... This thesis presents and justi es a framework for programming real-time signal process-ing systems. The framework extends the existing \block-diagram " programming model� it has three components: a very high-level textual language, a visual language, and the data ow process network model of com ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This thesis presents and justi es a framework for programming real-time signal process-ing systems. The framework extends the existing \block-diagram " programming model� it has three components: a very high-level textual language, a visual language, and the data ow process network model of computation. The data ow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of data ow processes, the functional language Haskell is layered above this model, providing powerful features|notably polymorphism, higher-order func-tions, and algebraic program transformation|absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the \intuitive " appeal of visual interfaces � with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like ablock diagram program. Finally, the functional language is used to further extend data ow process networks, by simulating timed and dynamically-varying networks.
Compiling Functional Programs to Java Byte-code
"... The aim of the G-machine is to deconstruct a functional program, represented as a graph, into a list of linear instructions --- G-Code --- which, when executed, will construct an equivalent graph and reduce it into Weak Head Normal Form. The Java Virtual Machine (JVM) provides a machineindependent e ..."
Abstract
- Add to MetaCart
The aim of the G-machine is to deconstruct a functional program, represented as a graph, into a list of linear instructions --- G-Code --- which, when executed, will construct an equivalent graph and reduce it into Weak Head Normal Form. The Java Virtual Machine (JVM) provides a machineindependent execution environment which executes Java byte-code. This byte-code is essentially a machine code for object-oriented programs. It was designed as the target of a Java compiler, but there is no reason why it cannot be used as the target of other languages. In this report we shall look at compiling functional programs down to the JVM, using the G-machine as a guide. 1 Introduction The aim of the G-machine [8] is to deconstruct a functional program, represented as a graph, into a list of linear instructions --- G-Code --- which, when executed, will construct an equivalent graph and reduce it into Weak Head Normal Form [3]. The source code of the G-Machine is a set of supercombinators [8], with...
Efficient Functional Programming Communication Functions on the AP1000
, 1994
"... One problem of parallel computing is that parallel computers vary greatly in architecture so that a program written to run efficiently on a particular architecture, when porting to a different architecture, would often need to be changed and adapted substantially in order to run with reasonable perf ..."
Abstract
- Add to MetaCart
One problem of parallel computing is that parallel computers vary greatly in architecture so that a program written to run efficiently on a particular architecture, when porting to a different architecture, would often need to be changed and adapted substantially in order to run with reasonable performance on the target architecture. Porting with performance is, hence, labour-intensive and costly. A method of parallel programming using the Bird-Meertens Formalism where programs are formulated as compositions of (mainly) higher order functions on some data type in the data parallel functional style has been proposed as a solution. The library of (mainly) higher-order functions in which all communication and parallelism in a program is embedded could (it is argued) be implemented efficiently on different parallel architectures. This gives the advantage of portability between different architectures with reasonable and predictable performance without change in program source. ...

