source: tags/1.1/disparm.txt

Last change on this file was 5, checked in by willem, 11 years ago

willem

File size: 2.2 KB
Line 
1disparm acts as a server for text lines. These lines constitute
2in general parameters for a command or a whole commandline.
3
4Using dispar it is possible to arrange that each of many processes,
5in general running concurrently on many nodes gets it's own parameterlist.
6
7The parameterlists are put in a simple database, residing on a shared
8file system, which must be readable and writable on the nodes by the
9user of dispar.
10
11Example:
12
13- Create the parameter database
14  First, create a text file, each line with a parameter set, for example:
15
16  seq 100 > parmfile
17
18  (this results in a simple parameter file, each line containing one of
19  the numbers 1-100)
20
21  Then, create the database to be used by disparm:
22
23  disparm -c -i parmfile
24
25  This creates a parameter database with the name 'parmfile.disparm'.
26  It is a text file, to be managed by subsequent calls to dispar.
27
28- Get the next, not already used, line:
29
30  eval "`dispar -n`"
31
32  This will create the following environment variables:
33
34  DISPAR_VALUE: the line exactly as present in the original parameter file
35  DISPAR_KEY: to be used at a next 'dispar -r' call, see below
36  DISPAR_STATUS: the status of the line in DISPAR, always 0 in
37                 this version of dispar
38  DISPAR_COMMITTED: the number of times this line has been produced
39                    (minimum 1)
40  DISPAR_RC: this value should be checked first: only if the value is 'OK',
41             other values are meaningful
42
43  A shell loop, using dispar to get the next parameters and start a program
44  using these parameters:
45
46    while true ; do
47      dispar -n
48      if ("$DISPAR_RC != "OK") ; then
49        break
50      fi
51      eval "myprogram $DISPAR_VALUE"
52    done
53
54  If many nodes are running this loop, and if the parameterdatabase is on a
55  filesystem shared by the nodes (a common case in clusters), the program
56  'myprogram' will run many times on those nodes. Every run will use another
57  line of the original parameterfile.
58
59  Using the -m flag, you can tell dispar to produce a line more than once.
60  This is useful if you submit a number of jobs, each containing loops as
61  above, and you expect that some jobs will fail because of a time-limit
62  for example.
Note: See TracBrowser for help on using the repository browser.