Skip to content

Comm

Parameters concerning the communication backends.

The communication backend in quatrex has two subcommicator groups: One between energy points and one between matrix blocks.

For both block and stack subcommunicators, the following communication operations can be performed:

  • all_to_all
  • all_gather
  • all_reduce
  • bcast
  • send_recv

The communication backend can be set to either "host_mpi", "device_mpi", or "nccl" for each of these operations.

block_comm_size#

block_comm_size: PositiveInt = 1

The number of ranks over which to disctribute matrix blocks.

SCBA supports spatial domain distribution. The matrix blocks can be distributed over multiple ranks, which can be useful for extremely large systems. The block_comm_size parameter determines the number of ranks over which to distribute the matrix blocks.

If set to 1 (the default), the matrix blocks are not distributed over multiple ranks.

block_all_to_all#

block_all_to_all: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for block all-to-all.

block_all_gather#

block_all_gather: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for block all-gather.

block_all_reduce#

block_all_reduce: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for block all-reduce.

block_bcast#

block_bcast: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for block broadcast.

block_send_recv#

block_send_recv: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for block send-receive.

stack_all_to_all#

stack_all_to_all: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for stack all-to-all.

stack_all_gather#

stack_all_gather: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for stack all-gather.

stack_all_reduce#

stack_all_reduce: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for stack all-reduce.

stack_bcast#

stack_bcast: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for stack broadcast.

stack_send_recv#

stack_send_recv: Literal['host_mpi', 'device_mpi', 'nccl'] | None = None

Communication backend to use for stack send-receive.