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

(updated 30-Aug-2019)


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

1.) Setup TCP/IP Networking and 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 SBCL package onto your systems. This is available
    as a package on many flavours of Linux & BSD. It can also be
    downloaded from the sbcl.org website.
    
    From the Linux/BSD shell prompt, type "which sbcl". If sbcl 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 SBCL is installed, run it "sbcl" and make sure you see
    the SBCL banner. To exit sbcl type: (exit)

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_sb_1_2.tar" while your home
    directory is the current working directory. Set permissions
    for lisp & dat files also.
    Assuming that "sgp_sb_1_2.tar" is in your home directory:
    a.) type: cd
    b.) type: tar -xvf sgp_sb_1_2.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 SBCL 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). "example4.lisp"
    is a multi-thread example that runs portable tasks on 2
    Grid Computers concurrently. "example5.lisp" and "example6.lisp"
    are programs that calculate the value of PI, allowing the
    comparison of single thread (Local Computer) and multi thread
    (4 Grid Computers concurrently) examples respectively.

2.) Remember, if a programming task performs I/O (e.g. 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! ***
