Results 1 
6 of
6
Towards an Implementation of a Computer Algebra System in a Functional Language
 In Intelligent Computer Mathematics, AISC
, 2008
"... Abstract. This paper discusses the pros and cons of using a functional language for implementing a computer algebra system. The contributions of the paper are twofold. Firstly, we discuss some language–centered design aspects of a computer algebra system — the “language unity” concept. Secondly, we ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. This paper discusses the pros and cons of using a functional language for implementing a computer algebra system. The contributions of the paper are twofold. Firstly, we discuss some language–centered design aspects of a computer algebra system — the “language unity” concept. Secondly, we provide an implementation of a fast polynomial multiplication algorithm, which is one of the core elements of a computer algebra system. The goal of the paper is to test the feasibility of an implementation of (some elements of) a computer algebra system in a modern functional language.
Orchestrating Production Computer Algebra Components into Portable Parallel Programs
"... Abstract. This paper demonstrates that it is possible to obtain good, scalable parallel performance by coordinating multiple instances of unaltered sequential computational algebra systems in order to deliver a single parallel system. The paper presents the first substantial parallel performance res ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. This paper demonstrates that it is possible to obtain good, scalable parallel performance by coordinating multiple instances of unaltered sequential computational algebra systems in order to deliver a single parallel system. The paper presents the first substantial parallel performance results for SymGridPar, a system that orchestrates computational algebra components into a highperformance parallel application. We show that SymGridPar is capable of exploiting different parallel/multicore architectures without any change to the computational algebra component. Ultimately, our intention is to extend our system so that it is capable of orchestrating heterogeneous computations across a highperformance computational Grid. For now, we illustrate our approach with a single, unmodified production computational algebra system, GAP, running on two common commodity architectures — a homogeneous cluster and an eightcore system. Computational algebra applications are large, specialised, and symbolic, rather than the more commonly studied numerical applications. They also exhibit high levels of irregularity, and multiple levels of irregularity. We demonstrate that for three small but representative algebraic computations, good parallel speedup is possible relative to a sequential GAP system running on a single processor/core. We compare the performance of the orchestrated system with that of parGAP, an established parallel implementation of GAP, demonstrating
Chapter 1 SemiExplicit Parallel Programming in a Purely Functional Style: GpH
"... Declarative programming languages can play an important role in the process of designing and implementing parallel systems. They bridge the gap between a highlevel specification, with proven properties of the overall system, and the execution of the system on real hardware. Efficiently exploiting p ..."
Abstract
 Add to MetaCart
Declarative programming languages can play an important role in the process of designing and implementing parallel systems. They bridge the gap between a highlevel specification, with proven properties of the overall system, and the execution of the system on real hardware. Efficiently exploiting parallelism on a wide range of architectures is a challenging task and should in our view be handled by a sophisticated runtime environment. Based on this design philosophy we have developed and formalised Glasgow parallel Haskell (GpH), and implemented it as a conservative extension of the Glasgow Haskell Compiler. The highlevel nature of declarative languages eases the task of mapping an algebraic specification down to executable code. In fact, the operational components of the specification can already be considered an implementation, with the associated properties acting as assertions in the program. Based on a formal model of the declarative language, the validity of these properties can be established by manual proof, which works on a level of detail similar to the specification language itself. Many operational aspects, usually complicating
{sal,kh,alexk}
"... We present the results of the first four years of the European research project SCIEnce (www.symboliccomputation.org), which aims to provide key infrastructure for symbolic computation research. A primary outcome of the project is that we have developed a new way of combining computer algebra syste ..."
Abstract
 Add to MetaCart
We present the results of the first four years of the European research project SCIEnce (www.symboliccomputation.org), which aims to provide key infrastructure for symbolic computation research. A primary outcome of the project is that we have developed a new way of combining computer algebra systems using the Symbolic Computation Software Composability Protocol (SCSCP), in which both protocol messages and data are encoded in the OpenMath format. We describe SCSCP middleware and APIs, outline some implementations for various Computer Algebra Systems (CAS), and show how SCSCPcompliant components may be combined to solve scientific problems that can not be solved within a single CAS, or may be organised into a system for distributed parallel computations.
2008 International Symposium on Parallel and Distributed Processing with Applications Parallelism without Pain: Orchestrating Computational Algebra Components into a HighPerformance Parallel System
"... This paper describes a very highlevel approach that aims to orchestrate sequential components written using highlevel domainspecific programming into highperformance parallel applications. By achieving this goal, we hope to make parallel programming more accessible to experts in mathematics, engi ..."
Abstract
 Add to MetaCart
This paper describes a very highlevel approach that aims to orchestrate sequential components written using highlevel domainspecific programming into highperformance parallel applications. By achieving this goal, we hope to make parallel programming more accessible to experts in mathematics, engineering and other domains. A key feature of our approach is that parallelism is achieved without any modification to the underlying sequential computational algebra systems, or to the userlevel components: rather, all orchestration is performed at an outer level, with sequential components linked through a standard communication protocol, the Symbolic Computing Software Composability Protocol, SCSCP. Despite the generality of our approach, our results show that we are able to achieve very good, and even, in some cases, superlinear, speedups on clusters of commodity workstations: up to a factor of 33.4 on a 28processor cluster. We are, moreover, able to parallelise a wider variety of problem, and achieve higher performance than typical specialist parallel computational algebra implementations. 1