Parallel Computation - Core Functions

ChildProcess
ChildProcess()
ChildProcess("computer.ac.wales")

This starts a GAP session as a child process and returns a stream to the child process. If no argument is given then the child process is created on the local machine; otherwise the argument should be the address of a remote computer for which ssh has been configured to require no password from the user.

(To configure ssh so that the user can login without a password prompt from "thishost" to "remotehost" either consult "man ssh" or
- open a shell on thishost
- cd .ssh
- ls
-> if id_dsa, id_rsa etc exists, skip the next two steps!
- ssh-keygen -t rsa
- ssh-keygen -t dsa
- scp *.pub user@remotehost:~/
- ssh remotehost -l user
- cat id_rsa.pub >> .ssh/authorized_keys
- cat id_dsa.pub >> .ssh/authorized_keys
- rm id_rsa.pub id_dsa.pub
- exit
You should now be able to connect from "thishost" to "remotehost" without a password prompt.)
ChildClose
ChildClose(s)

This closes the stream s to a child GAP process.
ChildCommand
ChildCommand("cmd;",s)

This runs a GAP command "cmd;" on the child process accessed by the stream s. Here "cmd;" is a string representing the command.
NextAvailableChild
NextAvailableChild(L)

Inputs a list L of child processes and returns a child in L which is ready for computation (as soon as such a child is available).
IsAvailableChild
IsAvailableChild(s)

Inputs a child process s and returns true if s is currently available for computations, and false otherwise.

ChildPut
ChildPut(A,"B",s)

This copies a GAP object A on the parent process to an object B on the child process s. (The copying relies on the function PrintObj(A); )
ChildGet
ChildGet("A",s)

This functions copies a GAP object A on the child process s and returns it on the parent process. (The copying relies on the function PrintObj(A); )
HAPPrintTo
HAPPrintTo("file",R)

Inputs a name "file" of a new text file and a HAP object R. It writes the object R to "file". Currently this is only implemented for R equal to a resolution.
HAPRead
HAPRead("file",R)

Inputs a name "file" containing a HAP object R and returns the object. Currently this is only implemented for R equal to a resolution.

Parallel Computation - Extra Functions

ChildFunction
ChildFunction("function(arg);",s)

This runs the GAP function "function(arg);" on a child process accessed by the stream s. The output from "func;" can be accessed via the stream.
ChildRead
ChildRead(s)

This returns, as a string, the output of the last application of ChildFunction("function(arg);",s).
ChildReadEval
ChildReadEval(s)

This returns, as an evaluated string, the output of the last application of ChildFunction("function(arg);",s).
ParallelList
ParallelList(I,fn,L)

Inputs a list I, a function fn such that fn(x) is defined for all x in I, and a list of children L. It uses the children in L to compute List(I,x->fn(x)). (Obviously the function fn must be defined on all child processes in L.)