Multiplexing

Issue

Using a Linaro Forge tool exhausts the available free memory on a node, for example while launching a session, analyzing the profiling results with Linaro MAP or Linaro Performance Reports, or when setting a breakpoint with Linaro DDT.

Solution

FORGE_MULTIPLEXER_RATIO can be used to trade increased time overhead when using a Linaro Forge tool for reduced memory overhead. Some operations that will be affected by this time overhead are the following.

FORGE_MULTIPLEXER_RATIO accepts a range of values depending on how much memory overhead needs reducing. The value takes the form N:M. This is the ratio of Linaro Forge worker processes (N) to user processes (M). Examples are as follows.

  • FORGE_MULTIPLEXER_RATIO=1:2 results in one Linaro Forge worker process per two ranks.

    This will provide the most memory reduction for the least increase in time overhead.

  • FORGE_MULTIPLEXER_RATIO=1:3 results in one Linaro Forge worker process per three ranks.

    This will further reduce memory overhead for a further increase in time overhead.

Additionally, FORGE_MULTIPLEXER_RATIO=0 results in one Linaro Forge worker process for all ranks. This provides the most memory reduction with the largest increase in time overhead.

When using Linaro MAP or Linaro Performance Reports, FORGE_MULTIPLEXER_RATIO will have no impact on the application run-time itself, regardless of the value given.

Notes and Limitations

FORGE_MULTIPLEXER_RATIO can only be used with Open MPI 4+ (excluding Open MPI (Compatibility)), Intel MPI (MPMD variant), MPICH 4, Cray MPICH under SLURM (MPMD), Cray PALS, or Flux. Additionally, the following features are not supported.