(git:0e87843)
Loading...
Searching...
No Matches
matrix_communication Module Reference

Exchange numerical matrix payloads and integer metadata between MPI ranks. More...

Data Types

type  matrix_buffer_type

Functions/Subroutines

subroutine, public allocate_matrix_buffers (send_count, recv_count, n_index, buffer_send, buffer_rec, send_blocks, recv_blocks)
 Allocate flat, rank-grouped matrix buffers and their zero-based offsets.
subroutine, public exchange_matrix_buffers (comm, buffer_rec, buffer_send, do_indx, do_msg)
 Synchronously exchange flat matrix buffers with nonempty peers.

Detailed Description

Exchange numerical matrix payloads and integer metadata between MPI ranks.

Function/Subroutine Documentation

◆ allocate_matrix_buffers()

subroutine, public matrix_communication::allocate_matrix_buffers ( integer, dimension(0:), intent(in) send_count,
integer, dimension(0:), intent(in) recv_count,
integer, intent(in) n_index,
type(matrix_buffer_type), intent(out) buffer_send,
type(matrix_buffer_type), intent(out) buffer_rec,
integer, dimension(0:), intent(in), optional send_blocks,
integer, dimension(0:), intent(in), optional recv_blocks )

Allocate flat, rank-grouped matrix buffers and their zero-based offsets.

Parameters
send_countnumerical payload length sent to each rank
recv_countnumerical payload length received from each rank
n_indexnumber of integer coordinates per metadata record
buffer_sendoutput send buffer
buffer_recoutput receive buffer
send_blocksoptional metadata-record counts, distinct from payload counts
recv_blocksoptional received metadata-record counts

Definition at line 43 of file matrix_communication.F.

Here is the caller graph for this function:

◆ exchange_matrix_buffers()

subroutine, public matrix_communication::exchange_matrix_buffers ( class(mp_comm_type), intent(in) comm,
type(matrix_buffer_type), intent(inout) buffer_rec,
type(matrix_buffer_type), intent(inout) buffer_send,
logical, intent(in), optional do_indx,
logical, intent(in), optional do_msg )

Synchronously exchange flat matrix buffers with nonempty peers.

Parameters
commcommunicator covering all sending and receiving ranks
buffer_recpreallocated receive buffer
buffer_sendpopulated send buffer
do_indxwhether to exchange integer metadata (default: true)
do_msgwhether to exchange numerical payloads (default: true)

Definition at line 84 of file matrix_communication.F.

Here is the caller graph for this function: