    Simple Grid Protocol 1.04 - Copyright (c) Brendan Kosowski 2004, 2005, 2015

(updated 24-May-2015)


TO INSTALL THE SOFTWARE
-----------------------
This must be performed on all systems on the grid.

1.) Setup TCP/IP Networking. Using a pen & paper, make a list of
    systems & IP addresses. Example:

          Tracking Server : 192.168.1.1
            Computer No.1 : 192.168.1.2
            Computer No.2 : 192.168.1.3
            Computer No.3 : 192.168.1.4

2.) Install the CLISP package onto your systems. This is available
    as a package on many flavours of Linux & BSD. Some I know of:
    a.) Fedora Linux comes with a CLISP RPM-Package.
    b.) Slackware Linux comes with a CLISP Package.
    c.) OpenBSD has a CLISP Package download.
    d.) FreeBSD has a CLISP Package download.
    e.) NetBSD has a CLISP Package download.
    If CLISP does not come as a package with your system, you can
    download the source code from http://www.clisp.org & build
    CLISP for your system. They also have links to CLISP Packages
    on their web site (including a generic Linux RPM-Package &
    some links to BSD Packages).

    From the Linux/BSD shell prompt, type "which clisp". If clisp is
    not located in /usr/local/bin you will need a symbolic link.
    Read REDHAT_LINUX_ISSUES for an example of how to setup the
    symbolic link.

    When CLISP is installed, run it "clisp" and make sure you see
    the CLISP banner. In recent versions of CLISP, WARNING messages
    above the banner are common. These WARNING messages also appear
    on the data stream coming from the Tracking Server & CPU Resource
    Servers but Simple Grid Protocol 1.02 and above are now immune to
    these WARNING messages. To exit clisp type: (bye)

3.) Login as "root" & add a user named "grid" to the system with
    the home directory "/home/grid". Also set the permissions for
    the home directory "chmod 755 /home/grid".

4.) Login as "grid" & untar the file "sgp_1_04.tar" while your home
    directory is the current working directory. Set permissions
    for lisp & dat files also.
    Assuming that "sgp_1_04.tar" is in your home directory:
    a.) type: cd
    b.) type: tar -xvf sgp_1_04.tar
    c.) type: chmod 755 *.lisp
    d.) type: chmod 644 *.dat

5.) Login as "grid" and edit the following .dat files:
    NOTE: The values entered into the .dat files should be on the
    first line and the line should contain no spaces or return.
    a.) "my_ip.dat" contains your IP address, eg: 192.168.1.2
    b.) "track_ip.dat" contains the Tracking Server IP
        address, eg: 192.168.1.1
    c.) "cpu_freq.dat" contains your CPU frequency in MHz. On a
        1.7GHz CPU system, the file would contain: 1700
    d.) "token.dat" contains the Security Token which is a string
        of letters and numbers. All systems on the grid must have
        the same security token, eg: dj88xv2s91


TO SETUP THE TRACKING SERVER (aka CONTROL NODE)
-----------------------------------------------
This must be performed on the system that will be used as the grid
Tracking Server. Only do this on one system.

1.) Login as "root".
2.) type: cp /home/grid/track.lisp /usr/sbin
3.) type: chmod 555 /usr/sbin/track.lisp
4.) Using your favourite text editor, add the following line to
    the "/etc/services" file:
    sgpts   17667/tcp
5.) Using your favourite text editor, add the following line to
    the "/etc/inetd.conf" file:
    sgpts stream tcp nowait grid /usr/sbin/track.lisp track.lisp

    NOTE: If your system uses xinetd instead of inetd then this
    step will be different. Read REDHAT_LINUX_ISSUES.

6.) type: reboot


TO SETUP THE CPU RESOURCE SERVERS (aka CYCLE SHARING NODE)
----------------------------------------------------------
This must be performed on all systems on the grid that will share
their CPU resources. NOTE: it is possible for the Tracking Server
system to also be setup as a CPU Resource Server.

1.) Login as "root".
2.) type: cp /home/grid/cpurs.lisp /usr/sbin
3.) type: chmod 555 /usr/sbin/cpurs.lisp
4.) Using your favourite text editor, add the following line to
    the "/etc/services" file:
    sgpcs   17666/tcp
5.) Using your favourite text editor, add the following line to
    the "/etc/inetd.conf" file:
    sgpcs stream tcp nowait nobody /usr/sbin/cpurs.lisp cpurs.lisp

    NOTE: If your system uses xinetd instead of inetd then this
    step will be different. Read REDHAT_LINUX_ISSUES.

6.) type: reboot


RUN THE NOTIFY DAEMON
---------------------
This must be performed on all systems on the grid that will share
their CPU resources (each time the systems are turned on or
rebooted).

1.) Login as "grid".
2.) On Linux Systems Type: ./notify.lisp &
    On BSD Systems Type: ./notify_bsd.lisp &

    NOTE: If you see a WARNING message, just ignore this & hit ENTER
          & you should return to the shell prompt.


*** Your Grid is now ready to use ***


START WRITING GRID FRIENDLY SOFTWARE
------------------------------------
1.) The file "porta.lisp" contains the function (porta) that is
    used to make CLISP programming tasks portable so that they
    can run on any system on the grid (that has the CPU Resource
    Server installed and the Notify Daemon running). The files
    "example1.lisp", "example2.lisp" & "example3.lisp" give
    examples of how to use the function (porta).

2.) Remember, if a programming task performs I/O (eg. displays
    info or inputs data from a mouse/keyboard) it must not be
    made portable because I/O tasks require your local machine.

    
*** Have Fun! ***
