dpumanager(8)
machine, it must wait until it reaches the head of the queue before it is loaded
into memory, and then it has exclusive access until it terminates.
To get on the queue, it is necessary to make an
ioctl(2)
call, DPUIOACCESS, to
the ACU driver. This is normally done transparently by program startup routines
in the DECmpp Sx-provided libraries. This
ioctl(2)
call does not return until
the program is granted access.
When access to the DPU is granted, the job manager assigns one or more
partitions of PE memory. The amount assigned is normally determined by fields
in the object file header, which are set using the
mplimit(1)
command. The
memory allocation cannot be dynamically increased, so it is important that the
job request an adequate quantity. The default is determined by the -pmem option.
The job manager attempts to assure that an appropriate version of DPU
microcode (and opcode map) is loaded for each job. When started, it loads
the default microcode version from
$MP_PATH/etc/mp*ucode.wo
. At the beginning
of each job it reloads the microcode if the wrong version is known to be loaded or
if the machine does not respond as expected.
The job manager is also responsible for loading and starting up the ACU
kernel program. The ACU kernel is reloaded whenever microcode is reloaded
or whenever the kernel does not appear to be operating correctly.
Jobs may have a time limit set. A system maximum time limit is set
by the -maxtime command line option, by the privileged
ioctl(2)
call,
DPUIOSYSTIMELIMIT, or using the command
mptimelimit(8)
. The default
is no time limit. When a time limit is exceeded, the job manager sends the
offending process a SIGXCPU signal, which normally causes mppehook/mppeback
and the user process to exit.
The job manager accounting file (
/usr/adm/dpuacct
) contains an entry for the
beginning and end of every job. This binary file is read by
mpstat(1)
.
The job manager maintains a shared memory segment containing the job queue
structures. This may be examined using the
mpq(1)
command.
The job manager also maintains a DPU configuration file (
/usr/tmp/.dpuconfig
).
This is used by
mpi(1)
and
mpd(8)
to determine the configuration of DPU systems
on the local network.
The terminate (15) signal causes the job manager to send a hangup signal to all
the jobs and then exit. The hangup (1) signal tells it to send a hangup signal to
all the jobs but not exit. The quit (3) signal tells it to send a hangup signal just
to the current active job.
Environment
The job manager uses the environment variable $MP_PATH to find the
default microcode image (
$MP_PATH/etc/mp*ucode.wo
) and the ACU kernel
(
$MP_PATH/etc/acuk
).
Options
-jobs
n
Use this option to specify the maximum number of jobs in memory and the
number of memory partitions. The valid range is 1 to 16. The default is 1,
which disables job swapping. A value of 4 is recommended when job swapping is
desired.
B–66 Data Parallel Unit Reference Pages