Results 1 -
5 of
5
A Para-Functional Programming Interface for a Parallel Computer Algebra Package
- Journal of Symbolic Computation
, 1994
"... : We describe the design and implementation of pD, a parallel variant of a small functional language that serves as a programming interface for the parallel computer algebra package PACLIB. pD provides several facilities to express parallel algorithms in a flexible way on different levels of abstrac ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
: We describe the design and implementation of pD, a parallel variant of a small functional language that serves as a programming interface for the parallel computer algebra package PACLIB. pD provides several facilities to express parallel algorithms in a flexible way on different levels of abstraction. The compiler translates a pD module into statically typed parallel C code with explicit task creation and synchronization constructs. This target code can be linked with the PACLIB kernel, the multi-processor runtime system of the computer algebra library SACLIB. The parallelization of several computer algebra algorithms on a shared memory multi-processor demonstrates the elegance and efficiency of this approach. Keywords: Para-Functional Programming, Computer Algebra, Compilation. 1 Introduction We present in this paper a small functional language D and its para-functional variant pD that is used as a parallel programming interface for the computer algebra package PACLIB. Parallelism...
Application of a Para-Functional Language to Problems in Computer Algebra
- In HPFC'95 | High Performance Functional Computing
, 1995
"... We describe how a para-functional programming language is applied to implementing parallel computer algebra algorithms on a shared memory multiprocessor. The language we use is pD, a small functional language that we have developed as a high-level programming interface for the parallel computer alge ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
We describe how a para-functional programming language is applied to implementing parallel computer algebra algorithms on a shared memory multiprocessor. The language we use is pD, a small functional language that we have developed as a high-level programming interface for the parallel computer algebra package PACLIB. pD provides several facilities to express parallel algorithms in a flexible way on different levels of abstraction. The compiler translates a pD program into parallel C code with explicit task creation and synchronization constructs. The implemented para-functional programs perform as efficient as manually coded parallel C programs. 1 Introduction While most computer algebra algorithms [3] are based on the concept of pure functions, real-world computer algebra programs are for performance reasons usually written in a low-level imperative style (typically in C). Consequently, there is little resemblance between the notation in which the mathematical theory is formulated a...
Solving Systems of Linear Equations Functionally: a Case Study in Parallelisation
, 1995
"... This paper describes the development of a parallel, functional algorithm for a real-world computer algebra problem: solving a system of linear equations. The program was developed using our GranSim simulator for parallel Haskell, which is based on the Glasgow Haskell Compiler. We provide concrete si ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper describes the development of a parallel, functional algorithm for a real-world computer algebra problem: solving a system of linear equations. The program was developed using our GranSim simulator for parallel Haskell, which is based on the Glasgow Haskell Compiler. We provide concrete simulation results for a variety of machine architectures characterised by differences in communications latency. These demonstrate absolute speedups over the sequential algorithm of 20.12 for 32 processors on a tightly-coupled distributed-memory machine, similar to our GRIP multiprocessor. Comparisons are also given with the same program executed on the physical GRIP machine, and with a previously produced imperative version. While the functional program exploits parallelism better (and so is more scalable), absolute performance is (sadly) still better for the imperative program. 1 Introduction In the imperative world, novel algorithms are often embedded into special purpose solutions for s...
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...
HPGP: High-Performance Generic Programming for Computational Mathematics by Compile-Time Instantiation of Higher Order Functors
, 1997
"... A functor is a parameterized program module i.e. a function that takes modules as arguments and returns a module as its result. A higher-order functor deals in the same way with modules whose components are functors themselves. We propose to develop a generic compilation system for the construction ..."
Abstract
- Add to MetaCart
A functor is a parameterized program module i.e. a function that takes modules as arguments and returns a module as its result. A higher-order functor deals in the same way with modules whose components are functors themselves. We propose to develop a generic compilation system for the construction of high-performance mathematical software libraries for scientific and technical application domains. This system has the following features: 1. It is based on a powerful higher-order functor language. 2. It is an open library that can be retargeted to any core language. 3. It is able to resolve functor instantiation at compile-time. The functor language is expressive enough to build all types and type constructors without referring to the core language (thus maximizing flexibility) and to express all interactions between modules by parameterization (thus maximizing reusability). By compile-time instantiation, genericity does not cause any execution overhead; by automatically sharing instant...

