NAME¶
mdm.screen - run a command under mdm-master
SYNOPSIS¶
mdm.screen [
-c iospec] [
-n slaves]
command
DESCRIPTION¶
mdm.screen runs
command under
mdm-master so that
mdm-run commands in
command can run in parallel.
This program is a part of the Middleman System (mdm).
OPTIONS¶
The
mdm.screen command has two optional options.
- -c iospec
- The iospec file (see below).
- -n slaves
- The number of mdm-slave process to start (default
6).
THE IOSPEC FILE¶
mdm-master uses the
iospec file to decide whether two commands
interfere with each other, and it only runs two commands at the same time if
they do not interfere.
Each line of the
iospec file specifies the I/O behavior of a program,
unless the line starts with a '#' character, in which case the line is treated
as comments and ignored. The format is as follows:
program spec spec ...
program names the program whose behavior you are specifying. For each
spec element, the first character indicates
usage, and the
remaining characters indicate
resource.
A
resource that starts with a '-' character represents the argument of
the corresponding program option. A
resource that is an empty string
represents a program argument. A
resource that is not empty and does
not start with a '-' character represents the
resource string itself.
A
usage is typically an upper-case character. If two commands access the
same resource with different
usage,
mdm-master will not run
these two commands at the same time. Furthermore, if a command access a
resource with ´W´
usage,
mdm-master will not run it
with any command that access the same resource in any way (including 'W').
There is a special case: if
usage is '0' and
resource starts
with a '-' character, it means that the
resource program option does
not take any arguments.
All programs has an implicit
spec 'Rglobal', so if you mark a program as
'Wglobal', it will not run while any other command is running.
Here is an example to help clarify matters. Suppose we have the following iospec
file:
Then these two commands
can run at the same time:
cc -o pa pa.o lib.o
cc -o pb pb.o lib.o
These two commands
cannot run at the same time:
cc -o pa.o -c pa.c
cc -o pa pa.o lib.o
And these two commands also
cannot run at the same time:
cc -o pa pa.o lib.o
rm pa
EXIT STATUS¶
The exit status of
mdm.screen is 0.
EXAMPLE¶
Here is what you do to decompress all files with .gz extension in the current
directory tree.
mdm.screen find . -iname '*.gz' -exec mdm-run
gunzip {} \;
Since we run
find under
mdm.screen and invoking
gunzip
under
mdm-run, we specify that we wish to run the
gunzip
commands in parallel.
SEE ALSO¶
mdm-run(1),
mdm-sync(1),
ncpus(1)