swh:1:snp:d527c2dcda8b26caa447eb529c1ecd02b85e66c9
Raw File
Tip revision: 28348cbb7443cecb94f0380eacf8e9c4fd3b247e authored by Alexandre Denis on 11 July 2022, 16:08:29 UTC
nmad: some more error-checking on remote queues
Tip revision: 28348cb
README.md
#
README for PIOMan
=================

This document describes pioman installation and configuration.

for any question, mailto: Alexandre.Denis@inria.fr

for information on what pioman is, see http://pm2.gforge.inria.fr/pioman/

Requirements
------------
  - autoconf (v 2.50 or later)
  - pkg-config
  - hwloc (optional)
  - Puk

Installation
------------

PIOMan may be used standalone or used through NewMadeleine.

- Standalone install follows usual autotools procedure:

      ./autogen.sh
      mkdir build ; cd build
      ../configure [your options here]
      make
      make install

  *Note*: pioman purposely cannot be configured in its source directory

- Through other PM2 modules: please see installation instructions for NewMadeleine
  http://pm2.gforge.inria.fr/newmadeleine/doc/
  In this case, pioman is not visible to the end-user.


Documentation
-------------

- To locally generate doxygen documentation:

      % cd $prefix/build/pioman
      % make docs

- It is also available online at http://pm2.gforge.inria.fr/pioman/doc/

- Reference API documentation: \ref pioman

- For advanced users, fine tuning is performed through environment variables:

  + PIOM_VERBOSE: set to 1 to display information messages in pioman init.
    default is: no display in quiet mode (padico-launch -q or mpirun), display else
  + PIOM_ENABLE_PROGRESSION: whether to enable asynchronous progression.
    default is 1.
  + PIOM_BUSY_WAIT_USEC: time to busy wait before passive wait, on explicit wait, in usec.
    default is 10; 0 disables busy-waiting; -1 does only busy waiting
  + PIOM_BUSY_WAIT_GRANULARITY: number of iterations between time check in busy, to amortize
    cost of clock_gettime. default is 100.
  + PIOM_IDLE_GRANULARITY: time between polling in idle threads, in usec.
    default is 5.
  + PIOM_IDLE_LEVEL: topology level where to bind idle threads.
    default is: socket.
  + PIOM_IDLE_DISTRIB: distribution for idle threads among topo entities of
    given level (all, odd, even, first). default is: all
  + PIOM_TIMER_PERIOD: period of timer-based polling, in usec.
    default is: 4000
  + PIOM_SPARE_LWP: number of spare LWP to export blocking calls.
    defaulty is 0.
  + PIOM_DEDICATED: polling threads will be binded. Default is 0.
  + PIOM_DEDICATED_DISTRIB: gives a way of distributing polling threads within the topology
    object (all, odd, even, first, last). Default is last.
  + PIOM_DEDICATED_LEVEL: type of topology object to bind polling threads on (machine, node,
    socket, core, pu). Default is socket.
  + PIOM_DEDICATED_WAIT: pioman waits for an external program to give a topology level and a
    list of logical indexes within this level via
    int piom_ltask_set_bound_thread_indexes(int level, int *indexes, int size).
    PIOM_DEDICATED_DISTRIB and PIOM_DEDICATED_LEVEL are ignored when this variable is set to 1.
  + PIOM_DEDICATED_NOBIND: start dedicated threads, but don't bind them; for testing/debug only.
back to top