previous up next
Go up to 5 Implementation
Go forward to 5.2 Connection Servers
RISC-Linz logo

5.1 Session Startup

When the Maple kernel connected to the user interface calls dist[initialize], it forks an dist.Scheduler process on the local machine, typically by a call of


java dist.Scheduler local /tmp/maple.in.pid /tmp/maple.out.pid

where the file paths denoted by the command arguments refer to some files or named pipes (an argument '-' would denote the standard input respectively standard output stream of the process).

The scheduler process thus runs in mode "local" and reads the configuration file dist.systems in which all system-specific information about each class of machine is stored. The scheduler receives from the Maple kernel the sequence of machines to be connected to the session. It spawns a process on the corresponding machine respectively contacts a server on that machine for spawning the process (see the next subsection). Subsequently the local scheduler waits for a connection request of the remote instance.

The remote process is an instance of dist.Scheduler running in mode "remote", typically created by a call of


java dist.Scheduler remote machine port

where machine is the domain name of the host on which the local scheduler is waiting on machine port port for a connection request of the remote instance.

Furthermore, during session startup, each remote process is informed about each other. If a remote process needs to communicate with another such process, a "peer" connection between remote processes is dynamically established.

After a connection between local and remote scheduler has been established, the local instance forwards to the remote instance the command string that the remote instance uses to fork the external application process, typically


maple -q -v

It also sends the string that is used to initialize the process, typically


`dist/isclient` := true: read `path/dist.maple`:

This invokes a server loop on the Maple kernel that is ready to receive task descriptions from the scheduler process, execute the denoted tasks, and return the results of these tasks. In the context of Maple, tasks are Maple expressions to be evaluated; they can be transmitted in any external format that Maple can convert to its internal form (currently either readable Maple syntax or Maple's .m file format may be used).


Maintainer: Wolfgang Schreiner
Last Modification: July 6, 2001

previous up next