Introduction to Grid Computing with Simple Grid Protocol Simple Grid Protocol 1.02 - Copyright (c) Brendan Kosowski 2004, 2005 OVERVIEW -------- The Simple Grid Protocol is designed to allow users on a TCP/IP network or the Internet to run programs on their computer which utilize the unused CPU resources of other computers on a network or the Internet. These programs are made up of both local tasks & portable tasks. The portable tasks will be executed on the computer on the grid that has the most available CPU resources at the time. The local tasks are executed on the user's local machine and are tasks that cannot be executed on another computer on the grid because local I/O operations must be performed. Grid Components 1.) The Tracking Server (1 system). 2.) The Computers (remaining systems) which run the CPU Resource Server and Notify Daemon. 3.) Grid Friendly Software (run on the computers) SERVERS, DAEMONS & SOFTWARE --------------------------- Tracking Server 1.) The tracking server keeps track of the ACR (Available CPU Resources) of all the computers on the grid. Here is the formula for ACR: ACR = CPU_Frequency(MHz) x CPU_Idle(%) / 100 2.) The tracking server maintains a record of each computers IP Address, ACR & the Time the record was submitted to the tracking server. 3.) The tracking server purges all records more than 40 seconds old. CPU Resource Server 1.) This is the server that allows a computers CPU resources to be used by other computers on the grid. The CPU Resource Server allows other computers on the grid to pass it portable tasks, executes the portable tasks and returns the result of the execution back to the computer that passed it the portable task. 2.) The CPU Resource Server allows a single line of lisp language code (in the form of a single lisp form or object) to be evaluated and the result is returned. Notify Daemon 1.) This background program notifies the Tracking Server of your computers IP address and ACR. This happens approximately every 30 seconds. 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.) The function (porta) will obtain a list of computers on the grid from the Tracking Server and attempt to run the portable task on the computer with the highest ACR, if unsuccessful the computer with the next highest ACR, and so forth. As of Simple Grid Protocol 1.02, if the local machine has the highest ACR, the portable task will be run directly instead of being sent via the network to be run on the grid. 3.) 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! ***