Easy Composition of Symbolic Computation Software: a New Lingua Franca for Symbolic Computation
Total Page:16
File Type:pdf, Size:1020Kb
Easy Composition of Symbolic Computation Software: A New Lingua Franca for Symbolic Computation S. Linton, K. Hammond, A. D. Al Zain, P. Horn A. Konovalov, P. Trinder Universität Kassel University of St Andrews Heriot-Watt University [email protected] {sal,kh,alexk} {ceeatia, trinder} kassel.de @cs.st-and.ac.uk @macs.hw.ac.uk D. Roozemond Technical Universiteit Eindhoven [email protected] ABSTRACT combine multiple instances of the same or different CAS for We present the results of the first four years of the European parallel computations. research project SCIEnce (www.symbolic-computation.org), There are many possible combinations. Examples include: which aims to provide key infrastructure for symbolic com- GAP and Maple in CHEVIE for handling generic character putation research. A primary outcome of the project is that tables [21]; Maple and the PVS theorem prover to obtain we have developed a new way of combining computer algebra more reliable results [1]; GAP and nauty in GRAPE for systems using the Symbolic Computation Software Compos- fast graph automorphisms [40]; and GAP as a service for ability Protocol (SCSCP), in which both protocol messages the ECLiPSe constraint programming system for symmetry- and data are encoded in the OpenMath format. We describe breaking in search [22]. In all these cases, interfacing to a SCSCP middleware and APIs, outline some implementations CAS with the required functionality is far less work than for various Computer Algebra Systems (CAS), and show how re-implementing the functionality in the \home" system. SCSCP-compliant components may be combined to solve sci- Even within a single CAS, users may need to combine lo- entific problems that can not be solved within a single CAS, cal and remote instances for a number of reasons, including: or may be organised into a system for distributed parallel remote system features which are not supported in the lo- computations. cal operating system; a need to access large (and changing) databases; remote access to the latest development version or to the configuration at the home institution; licensing re- Categories and Subject Descriptors strictions permitting only online services, etc. A common I.1 [Symbolic and Algebraic Manipulation]: Miscella- quick solution is cut-and-paste from telnet sessions and web neous browsers. It would, however, be more efficient and more flex- ible to combine local and remote computations in a way such General Terms that remotely obtained results will be plugged immediately into the locally running CAS. Design, Standardization Moreover, individual CPUs have almost stopped increas- ing in power, but are becoming more numerous. A typical Keywords workstation now has 4-8 cores, and this is only a beginning. OpenMath, SCSCP, interface, coordination, parallelism If we want to solve larger problems in future, it will be essen- tial to exploit multiple processors in a way that gives good parallelism for minimal programmer/user effort. 1. INTRODUCTION CAS authors have inevitably started to face these issues, A key requirement in symbolic computation is to efficiently and have addressed them in various ways. For example, a combine computer algebra systems (CAS) to solve problems CAS may write input files for another program and invoke that cannot be addressed by any single system. Addition- it; the other program then will write CAS input to a file ally, there is often a requirement to have CAS as a back-end and exit; the CAS will read it and return a result. This of mathematical databases and web or grid services, or to works, but has fairly serious limitations. A better setup might allow the CAS to interact with other programs while they run and provide a separate interface to each possible external system. The SAGE system [39] is essentially built Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are around this approach. However, achieving this is a major not made or distributed for profit or commercial advantage and that copies programming challenge, and an interface will be broken if bear this notice and the full citation on the first page. To copy otherwise, to the other system changes its I/O format, for example. republish, to post on servers or to redistribute to lists, requires prior specific The EU Framework 6 SCIEnce project \SCIEnce { Sym- permission and/or a fee. bolic Computation Infrastructure in Europe" is a major 5- ISSAC 2010, 25–28 July 2010, Munich, Germany. year project that brings together CAS developers and ex- Copyright 2010 ACM 978-1-4503-0150-3/10/0007 ...$10.00. 339 perts in computational algebra, OpenMath, and parallel com- other, and also as the foundation for more advanced cluster putations. It aims to design a common standard interface and grid infrastructures (see Section 5). The advantage of that may be used for combining computer algebra systems this approach is that any system that implements SCSCP (and any other compatible software). Our vision is an easy, can immediately connect to all other systems that already robust and reliable way for users to create and consume support it. This avoids the need for special cases and min- services implemented in any compatible systems, ranging imizes repeated effort. In addition, SCSCP allows remote from generic services (e.g. evaluation of a string or an Open- objects to be handled by reference so that clients may work Math object) to specialised (e.g. lookup in the database; with objects of a type that do not exist in their own sys- executing certain procedure). We have developed a sim- tem at all (see the example in Section 4.2). For example, to ple lightweight XML-based remote procedure call protocol represent the number of conjugacy classes of a group only called SCSCP (Symbolic Computation Software Compos- knowledge of integers is required, not knowledge of groups. ability Protocol) in which both data and instructions are rep- The SCSCP protocol (currently at version 1.3) is socket- resented as OpenMath objects. SCSCP is now implemented based. It uses port number 26133, as assigned by the Inter- in several computer algebra systems (see Section 2.2 for an net Assigned Numbers Authority (IANA)), and XML-format overview) and has APIs making it easy to add SCSCP inter- messages. faces to more systems. Another important outcome of the project is the development of middleware for parallel com- 3. BUILDING BLOCKS putations, SymGrid-Par, which is capable of orchestrating SCSCP-compliant systems into a heterogeneous system for FOR CAS COMPOSITION distributed parallel computations. In this section, we briefly describe the implementation of We will give an overview of these tools below. First we the SCSCP protocol for two systems: GAP [18] and MuPAD briefly characterise the underpinning OpenMath data encod- [34]. The main aim of this section is to show that SCSCP ing and the SCSCP protocol (Section 2). Then we outline is a standard that may be implemented in different ways by SCSCP interfaces in two different systems, one open source different CAS, taking into account their own design princi- and one commercial, and provide references for existing im- ples. plementations in other systems (Section 3). After that we describe several examples that demonstrate the flexibility of 3.1 GAP the SCSCP approach and some SCSCP specific features and In the GAP system, support for OpenMath and SCSCP benefits (Section 4). We introduce several SCSCP-compliant is implemented in two GAP packages called OpenMath and tools for parallel computations in various environments (Sec- SCSCP, respectively. The OpenMath package [11] is an Open- tion 5), before concluding (Section 6). Math phrasebook for GAP: it converts OpenMath to GAP and vice versa, and provides a framework that users may 2. A COMPUTER ALGEBRA extend with their private content dictionaries. The SCSCP package [30] implements SCSCP, using the GAP OpenMath, LINGUA FRANCA IO [35] and GAPDoc [32] packages. This allows GAP to run as either an SCSCP server or client. The server may be started 2.1 OpenMath interactively from the GAP session or as a GAP daemon. In order to connect different CAS it is necessary to speak When the server accepts a connection from the client, it a common language, i.e., to agree on a common way of mar- starts the \accept-evaluate-return" loop: shaling mathematical semantics. Here, the obvious choice was OpenMath [37], a well-established standard that has • accepts the "procedure_call" message and looks up been used in similar contexts. OpenMath is a very flexible the appropriate GAP function (which should be de- language built from only twelve language elements (integers, clared by the service provider as an SCSCP procedure); doubles, variables, applications etc.). The entire semantics • evaluates the result (or produces a side-effect); is encapsulated in symbols which are defined in Content Dic- tionaries (CDs) and are strictly separate from the language • replies with a "procedure_completed" message or re- itself. So, one finds the \normal" addition under the name turns an error in a "procedure_terminated" message. plus in the CD arith1. A large number of CDs is available at the OpenMath website [37], such as polyd1 for the definition The SCSCP client performs the following basic actions: and manipulation of multivariate polynomials, group4 for • establishes connection with server; cosets and conjugacy classes, etc. OpenMath was designed to be efficiently used by computers, and may be represented • sends the "procedure_call" message to the server; in several different encodings. The XML representation is the most commonly used, but there exist also a binary rep- • waits for its completion or checks it later; resentation and a more human readable representation called • fetches the result from a "procedure_completed" mes- Popcorn [29].