Grid and Distributed Computing
Setting the job type of the Job window to Grid utilizes a Mac cluster to accomplish a subset of parallel computing
called distributed computing, commonly called grid computing.
Generally a subset of what clusters are capable of,
distributed computing is where many independent executables run, starting and finishing in any order,
only differing in their input.
SETI@Home is a well-known example.
Other common uses are parameter searches or other analyses of a system by varying one or only a few
settings or inputs.
While the code itself can only use a single processor, multiple processors are used because
the code has multiple possible input settings.
Recognizing this need, we added in a feature to
run a single-processor executable multiple times with different inputs. A very general way to
do that is to vary a single integer from instance to instance of the executable. That
integer is easily remapped into whatever parameter range of interest to the user.
With the Grid job type, the Job window replaces its node pane with
field that specify the range of integers with which the executable is to be run.
In this example, the integers range from 1 to 100.
Setting the Step menu has it skip integers, so a setting of 7 would use 1, 8, 15, 22, and so on until 99.
The integer is passed to the executable in a text file named "input" as well as on the command line.
PCM transfers any files produced by the executables back to the initiating machine.
This feature is intended to make it convenient to explore arbitrary parameter ranges
for codes otherwise not meant for parallel computing.
It makes use of PCM's automatic output retrieval mechanisms.
To address more general cases, we suggest modifying the
distributed computing example scripts available on the Scripting and Automation page.
There, an AppleScript that performs the same functions as the Grid job type fully exposes the logic of the mechanism.
You may modify it as you see fit so you can fully customize this grid/distributed computing behavior.
For more information on grid and distributed computing and how it
differs from other types of parallel computing,
Parallel Zoology page.