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