disparm acts as a server for text lines. These lines constitute in general parameters for a command or a whole commandline. Using dispar it is possible to arrange that each of many processes, in general running concurrently on many nodes gets it's own parameterlist. The parameterlists are put in a simple database, residing on a shared file system, which must be readable and writable on the nodes by the user of dispar. Example: - Create the parameter database First, create a text file, each line with a parameter set, for example: seq 100 > parmfile (this results in a simple parameter file, each line containing one of the numbers 1-100) Then, create the database to be used by disparm: disparm -c -i parmfile This creates a parameter database with the name 'parmfile.disparm'. It is a text file, to be managed by subsequent calls to dispar. - Get the next, not already used, line: eval "`dispar -n`" This will create the following environment variables: DISPAR_VALUE: the line exactly as present in the original parameter file DISPAR_KEY: to be used at a next 'dispar -r' call, see below DISPAR_STATUS: the status of the line in DISPAR, always 0 in this version of dispar DISPAR_COMMITTED: the number of times this line has been produced (minimum 1) DISPAR_RC: this value should be checked first: only if the value is 'OK', other values are meaningful A shell loop, using dispar to get the next parameters and start a program using these parameters: while true ; do dispar -n if ("$DISPAR_RC != "OK") ; then break fi eval "myprogram $DISPAR_VALUE" done If many nodes are running this loop, and if the parameterdatabase is on a filesystem shared by the nodes (a common case in clusters), the program 'myprogram' will run many times on those nodes. Every run will use another line of the original parameterfile. Using the -m flag, you can tell dispar to produce a line more than once. This is useful if you submit a number of jobs, each containing loops as above, and you expect that some jobs will fail because of a time-limit for example.