Process Efficiency

Process Efficiency considers sources of inefficiency which occur in the process parallelisation. It ignores the threads, by treating the following as useful:

  • Time in OpenMP parallel regions
  • Time in useful computation outside OpenMP.

Hence it measures inefficiency arising from:

  • Imbalance of time in useful computation outside OpenMP + time in OpenMP
  • Process MPI data transfer
  • Process MPI serialisation due to dependencies.

Inefficiency due to thread MPI (i.e. inside OpenMP regions) is ignored, as it is treated as a thread inefficiency.

Process Efficiency sub-metrics are Process Load Balance Efficiency, and Process Communication Efficiency.

\[Process Efficiency = \frac{Avg(OpenMP + Serial Useful)}{TotalRuntime} = Process\_CE + Process\_LBE - 1\]

In order to fully understand the formulas, you may also visit the glossary of the metrics terms.