previous up next
Go backward to 3 Programming Interface
Go up to Top
Go forward to 5 Implementation
RISC-Linz logo

4 System Configuration

When dist[initialize](...) is called, the Maple kernel starts the Java scheduler dist.Scheduler and establishes a permanent connection to this process. The scheduler reads the file dist.systems which contains a list of entries of the following forms separated by empty lines:


key
starter
scheduler
command
initializer
speed
maxload
minload

The fields have the following interpretation:

key
is the (arbitrary but unique) name for the class of machines described by this entry.
starter
denotes the command to call in order to create a process on the denoted machine (typically rsh).
scheduler
is the command to execute on the remote machine in order to create an instance of the scheduler (typically java dist.Scheduler with some -classpath option).
command
is the command to fork by the scheduler on the remote machine in order to perform the computation (typically maple -q).
speed
is a performance factor (an integer number greater than or equal 1) which is used by the scheduler for load distribution. The higher the number is, the faster this machine is expected to be. The scheduler will assign tasks to faster machines prior to slower machines.
maxload
denotes the maximum number of executable but not yet started tasks that the machine may hold at a time. If the scheduler on the frontend machine knows that the number is below this treshold, it may forward newly created tasks to the machine. If maxload is -1, the scheduler may always forward newly created tasks to the machine (which may result in poor load balancing).

If you don't know better, use 0 in this place.

minload
denotes the minimum number of executable but not yet started tasks that the machine should hold at a time. If the number falls below this treshold, the machine informs the scheduler on the frontend machine about this (and thus asks for new tasks). If minload is 0, the machine informs the scheduler immediately whenever it starts an executable task (which may result in many messages).

If you don't know better, use 0 in this place.

The configuration file must contain an entry whose key is localhost. In this entry only the fields scheduler and command are of relevance; they are used for the creation of additional kernels on the local host.

An alternative form of the starter/scheduler field may be used as well:

starter
may be an integer number. In this case, this number is the port of the denoted machine on which a connection server is listening which will in turn start the desired process (see the next section).
scheduler
is the password that was given to the connection server at its start.

Below you see some sample entries of dist.systems, once with a remote startup command (rsh) once with a port number (9966):


solaris
rsh
java -classpath /usr/local/lib/jdk/lib/classes.zip:/home/info/www/
 software/distmaple dist.Scheduler
maple -q
`dist/isclient` := true: read `/home/info/www/software/distmaple/
 dist.maple`:
1
1
0

solaris2
9966
mypasswd
maple -q
`dist/isclient` := true: read `/home/info/www/software/distmaple/
 dist.maple`:
1
1
0

The second form assumes that on a machine of kind solaris2 a connection server (see the next section) is running, started by e.g.


java dist.Scheduler server 9966 "java dist.Scheduler"
mypasswd

Tip: You can monitor the communication between a remote scheduler and its external application program by calling in the `command` field a wrapper script that copies the standard input respectively standard output of the application program to some files:


#!/bin/sh
tee /tmp/maple.in.$$ | maple -q | tee /tmp/maple.out.$$


Maintainer: Wolfgang Schreiner
Last Modification: July 6, 2001

previous up next