Go up to TopGo forward to CASA |

This paper describes an ongoing effort on developing a distributed system for solving problems in algebraic geometry with applications in computer aided geometric design and solid modeling. The starting point of our work is the software library CASA (computer algebra software for constructive algebraic geometry) which has been developed by various researchers at RISC-Linz since 1990 [1]. The library is written in the language of the computer algebra system Maple [2] and currently consists of about 800 functions of which about 80 are visible to the user.

In order to parallelize a number of CASA functions, we have developed a system called "Distributed Maple" that allows to implement parallel algorithms in Maple and that can be easily installed in any networked environment [3]. The core of this system is an external scheduler program that is in charge of coordinating the activities of multiple Maple kernels running on various machines connected via a local or wide area network. The system has evolved from our own experience in the development of parallel computer algebra environments [4][5] and from the experience of other researchers in adapting Maple to the use on multiprocessors and computer networks [6][7][8][9][10].

In contrast to some other approaches, our goal is to provide an
environment where parallel programming is possible *within* Maple such
that the mathematical programmer does not have to leave the familiar
environment of the computer algebra system. Furthermore, the underlying
technological basis should be "time-safe" and accessible to a wide audience
such that the resulting code can be easily exchanged and used for the
foreseeable future.

We have tackled this goal by developing a simple but easily configurable communication and scheduling program that starts and connects external computation kernels on various machines. This program is written in Java and can be executed on any machine running some implementation of the Java Virtual Machine. We have written a small Maple package that implements an interface to the scheduler and provides a high-level parallel programming model for Maple. Both the scheduler (compiled Java classes) and the Maple interface (Maple source code) are available at

http://www.risc.uni-linz.ac.at/software/distmaple.

In the following sections, we illustrate the application context of our work by showing the CASA solution to a particular problem, describe the interface and implementation of Distributed Maple, and demonstrate the use of the system by parallelizing a part of the CASA solution. We conclude the paper by outlining our further work on the development of a parallel variant of CASA.

Maintained by: Wolfgang Schreiner

Last Modification: April 22, 1999