Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 Preface

1 Preface

The GAP package SCSCP implements the Symbolic Computation Software Composability protocol [FHKLLRb]. This protocol specifies an OpenMath-based remote procedure call framework, in which all messages (procedure calls and returns of results of successful computation or error messages) are encoded in OpenMath using content dictionaries scscp1 and scscp2 ([FHKLLRa], [FHKLR]). Using the SCSCP package, GAP can communicate locally or remotely with any other OpenMath-enabled SCSCP-compliant application which may be not only another computer algebra system but also another instance of the GAP system or even, for example, an external Java or C/C++ application via libraries http://java.symcomp.org/ or http://www.imcce.fr/Equipes/ASD/trip/scscp/ providing an SCSCP API. Such communication will go into seamless manner for the GAP user, since all conversions from GAP to OpenMath and vice versa will be performed in the background. See the SCIEnce project homepage http://www.symbolic-computing.org/ for the details about computer algebra systems and other sotware supporting SCSCP

The SCSCP package for GAP has two main components:

There are several ways to start GAP SCSCP server:

During startup the server installs all procedures that it will provide and loads their lookup mechanisms, and then begins to listen to the specified port. The recommended port number is 26133 which has been assigned to SCSCP by the Internet Assigned Numbers Authority (IANA) in November 2007, see http://www.iana.org/assignments/port-numbers.

When the server accepts a connection from client, it starts the "accept-evaluate-return" loop:

The server works in a "multi-user" mode. When one client is connected, the server is busy for other clients. As soon as the computation is finished and the client is disconnected, the server is waiting for the next connection, and normally it never stops until it will be terminated by the service provider. The server maintain a queue of five incoming connections (this parameter can be easily modified), and on each iteration evaluates the next request from the queue.

There is an SCSCP server accessible at scscp.gap-system.org, port 26133. It is running under development versions of the GAP system and a selection of currently distributed packages. The reader is encouraged to try to use examples from the manual to access this service, replacing "localhost" by its address, where appropriate. Please report to Alexander Konovalov if you will discover any bugs or if the server seems not available.

The SCSCP client:

On the top of this functionality we built a set of instructions for simple parallel computations framework using the SCSCP protocol, which allows to send several procedure calls in parallel and then collect all results or pick up the first available result, and implements the master-worker skeleton. These tools are presented in the Chapter 8.

The package also implements a new kind of GAP input-output streams, namely input-output TCP streams (see Chapter 3), based on the functionality for TCP/IP protocol usage provided by the GAP package IO. Such streams may constitute an independent interest for adapting streams-using GAP code to use streams across the network.

Finally, the manual describes how the communication by SCSCP goes between several instances of the GAP system, but the same behaviour is expected from any SCSCP-compliant application: the set of supported OpenMath symbols clearly will be different, but the rules of communication are precisely specified in the SCSCP specification [FHKLLRb]. See the homepage of the SCIEnce project http://www.symbolic-computing.org/ for the information about SCSCP-compliant computer algebra systems and other tools developed in the project.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Bib Ind

generated by GAPDoc2HTML