ProcessGrid#

class nvmath.distributed.distribution.ProcessGrid(
*,
shape: Sequence[int] | None = None,
layout: GridLayout | None = None,
process_array=None,
)[source]#

N-dimensional grid of processes used by some distributions like the PBLAS block-cyclic distribution.

Example 2D process grid for 4 processes, with processes arranged in column-major order:

---------
| 0 | 2 |
---------
| 1 | 3 |
---------

Methods

__init__(
*,
shape: Sequence[int] | None = None,
layout: GridLayout | None = None,
process_array=None,
)[source]#

Create a new ProcessGrid object.

Parameters:
  • shape – Shape of the process grid.

  • layout – Layout of the process grid (column-major or row-major). This is optional for 1D grid or when a custom grid is provided.

  • process_array – optional ndarray specifying custom arrangement of processes.

Attributes

layout#

Layout of process grid if row-major or column-major, otherwise None.

process_array#
shape#

Shape of process grid.