Go up to Top Go 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
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.