B.24. MPI Benchmark Usage

This appendix presents the displays from the MPI benchmarks.

B.24.1. alltoall

alltoall -- MPI alltoall.

  Method
  ------------
  alltoall     -- MPI_alltoall
  alltoallv    -- MPI_alltoall with local copy
  isend        -- MPI_isend / MPI_recv
  isend_x      -- MPI_isend / MPI_recv with local copy
  persistent   -- MPI 'persistant' communication
  persistent_x -- MPI 'persistant' communication with local copy

    -1: rows -> rows, alltoall
    -2: rows -> cols, alltoall

   -11: rows -> rows, isend
   -12: rows -> cols, isend

   -21: rows -> rows, isend_x
   -22: rows -> cols, isend_x

   -31: rows -> rows, persistent
   -32: rows -> cols, persistent

   -41: rows -> rows, persistent_x (copy, single row, phase=1)
   -42: rows -> cols, persistent_x (copy, single row, phase=1)

  -101: rows -> rows, alltoall
  -102: rows -> cols, alltoall

  -111: rows -> rows, isend
  -112: rows -> cols, isend

  -121: rows -> rows, isend_x
  -122: rows -> cols, isend_x

  -131: rows -> rows, persistent
  -132: rows -> cols, persistent

--- FIXED ROWS from here down ---

  -141: rows -> rows, persistent_x (nocopy, single row, phase=2)
  -142: rows -> cols, persistent_x (nocopy, single row, phase=2)
  -143: rows -> rows, persistent_x (nocopy, single row, phase=2) (np)
  -144: rows -> cols, persistent_x (nocopy, single row, phase=2) (np)

  -151: rows -> rows, persistent_x (nocopy, single row, phase=1)
  -152: rows -> cols, persistent_x (nocopy, single row, phase=1)
  -153: rows -> rows, persistent_x (nocopy, single row, phase=1) (np)
  -154: rows -> cols, persistent_x (nocopy, single row, phase=1) (np)

  -161: rows -> rows, persistent_x (nocopy, single row, phase=0)
  -162: rows -> cols, persistent_x (nocopy, single row, phase=0)
  -163: rows -> rows, persistent_x (nocopy, single row, phase=0) (np)
  -164: rows -> cols, persistent_x (nocopy, single row, phase=0) (np)

  -201: rows -> rows, persistent_x (copy, single row, phase=2)
  -202: rows -> cols, persistent_x (copy, single row, phase=2)

  -171: rows -> rows, alltoallv (nocopy)
  -172: rows -> cols, alltoallv (nocopy)
  -173: rows -> rows, alltoallv (nocopy) (np)
  -174: rows -> cols, alltoallv (nocopy) (np)

  -181: rows -> rows, alltoallv (copy)
  -182: rows -> cols, alltoallv (copy)
  -183: rows -> rows, alltoallv (copy) (np)
  -184: rows -> cols, alltoallv (copy) (np)

  Parameter:
               default
               ----------------
    -1..-99
      -param    1  Number of columns per row
      -stop    11  Stop at 2^11
    -100..
      -param   48  Number of rows
      -stop    15  Stop at 2^15

B.24.2. copy

copy -- MPI point-to-point messaging (aka "copy").
                   vector  struct
                   ------  ------
  -10: isend           no      no
  -11: isend        early      no
  -12: isend        early   early
  -13: isend        early    late
  -14: isend         late      no
  -15: isend         late    late
  -20: persistent      no      no
  -21: persistent   early      no
  -22: persistent   early   early