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! ***