pexec(1) Bull pexec(1)
NAME
pexec, pcreate - tools to control placement of processes on CPUs
SYNOPSIS
pexec
-np N
[-cf FILE]
[--mode=s[equential]|c[yclic]|u[ser-defined]]
[--width=w]
[--align]
[--strict|--nostrict]
[--auto-clean|--noauto-clean]
PROGRAM [PROGRAM_ARGS]
pcreate
-np N
[-cf FILE]
[--mode=s[equential]|c[yclic]|u[ser-defined]]
[--width=w]
[--align]
[--strict|--nostrict]
[--auto-clean|--noauto-clean]
DESCRIPTION
pexec and pcreate allocate a area containing N CPUs. The allocating
policy can be sequential, but also cyclic to spread processes in vari-
ous ways among processors. If you want to use some of these advanced
features, you must define the geometry of your machine. The basic view
of processors is a rectangle (w is the width of the rectangle) :
Cpus
______________________
|0 |1 |2 |3 |..
|w |w+1 |w+2 |w+3 |..
|2w |2w+1|2w+2|2w+3|..
|... | | | |
Processes can be assigned using two methods :
- horizontal ranges (sequential mode)
CPUs will be taken in order 0, 1, 2, 3, ..., w, w+1, w+2, ...
- vertical ranges (cyclic mode)
CPUs will be taken in order 0, w, 2w, 3w, ..., 1, w+1, 2w+1, ...
- a user defined method
CPUs will be taken in the order defined by the user
Then, pexec runs PROGRAM in this area. To run programs in areas created
using pcreate, use passign(1)
Programs launched within this environment will be able to run on any
CPU of the area. Within these programs, any call to sched_setaffin-
ity(2) will bind processes on CPUs inside this set of CPUs. So basi-
cally, they should try to bind the first process to CPU 0, the second
-np N Specifies the number of CPUs to allocate.
-cf FILE
read FILE to get the configuration. See pexec.conf(5) for fur-
ther information. If not specified, pexec will read
/etc/pexec.conf
--mode=s[equential]|c[yclic]|u[ser-defined]
selects the process binding policy.
sequential : processes will be binded to a continuous range of
CPUs.
cyclic : processes will be binded to a section of CPUs, accord-
ing to the width value.
Example : if you request 4 cpus in a 16 cpus machine with
width=4, processes will be binded to
processors : n, n+4, n+8 and n+12 (depending on free
resources).
user-defined : processes will be binded in the order defined by
order
--width=w
Defines the geometry of your processors. It has an impact on the
cyclic mode, and also on alignments.
--align
Allocated processors will be in the same physical row of your
machine. This system, which only works in sequential mode, will
try to group as much as possible processes to make them use same
rows of processors.
--[no]strict
The created area will be exclusive. No other area will be able
to share CPUs with this one. If it is impossible, the program
will exit.
--[no]auto-clean
The created area may be automatically destroyed when there is no
remaining process using it. Use this option to set this. By
default, pcreate uses noauto-clean and pexec uses auto-clean.
--order="a b c d .."
The area will contain the first N CPUs of this set (N beeing
given by -np). Warning : these numbers are relative numbers
within not already reserved CPUs.
EXAMPLES
To launch a job on 6 consecutive reserved processors :
pexec -np 6 --mode=s --strict <application>
(processes should be assigned to processors 0 to 5)
pexec -np 4 --align --strict --mode=s <application>
(so, processes should be allocated to processors 8 to 11
instead of 6 to 9)
To create an area containing the first, the fourth and the fifth
available CPU :
pcreate -np 3 --mode=u --order="0 3 6"
SEE ALSO
pexec.conf(5), pdestroy(1), passign(1)
Linux 2003-07-31 pexec(1)
Man(1) output converted with
man2html