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:
cc W-o 0-c R
rm W
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)