Hash MPI transfer functions.
More...
Go to the source code of this file.
|
int | kvtree_send (const kvtree *hash, int rank, MPI_Comm comm) |
|
int | kvtree_recv (kvtree *hash, int rank, MPI_Comm comm) |
|
int | kvtree_sendrecv (const kvtree *hash_send, int rank_send, kvtree *hash_recv, int rank_recv, MPI_Comm comm) |
|
int | kvtree_bcast (kvtree *hash, int root, MPI_Comm comm) |
|
int | kvtree_exchange_sendq (kvtree *send_hash, int rank, const kvtree *msg) |
|
int | kvtree_exchange (const kvtree *hash_send, kvtree *hash_recv, MPI_Comm comm) |
|
int | kvtree_exchange_direction (const kvtree *hash_send, kvtree *hash_recv, MPI_Comm comm, kvtree_exchange_enum direction) |
|
int | kvtree_write_gather (const char *prefix, kvtree *data, MPI_Comm comm) |
|
int | kvtree_read_scatter (const char *prefix, kvtree *data, MPI_Comm comm) |
|
◆ kvtree_exchange_enum
Enumerator |
---|
KVTREE_EXCHANGE_RIGHT | |
KVTREE_EXCHANGE_LEFT | |
Definition at line 59 of file kvtree_mpi.h.
◆ kvtree_bcast()
int kvtree_bcast |
( |
kvtree * |
hash, |
|
|
int |
root, |
|
|
MPI_Comm |
comm |
|
) |
| |
broadcasts a hash from a root and unpacks it into specified hash on all other tasks
◆ kvtree_exchange()
int kvtree_exchange |
( |
const kvtree * |
hash_send, |
|
|
kvtree * |
hash_recv, |
|
|
MPI_Comm |
comm |
|
) |
| |
execute a (sparse) global exchange, similar to an alltoallv operation
hash_send specifies destinations as:
<rank_X>
<hash_to_send_to_rank_X>
<rank_Y>
<hash_to_send_to_rank_Y>
hash_recv returns hashes sent from remote ranks as:
<rank_A>
<hash_received_from_rank_A>
<rank_B>
<hash_received_from_rank_B>
◆ kvtree_exchange_direction()
int kvtree_exchange_direction |
( |
const kvtree * |
hash_send, |
|
|
kvtree * |
hash_recv, |
|
|
MPI_Comm |
comm, |
|
|
kvtree_exchange_enum |
direction |
|
) |
| |
like kvtree_exchange, but with a direction specified for Bruck's algorithm
◆ kvtree_exchange_sendq()
int kvtree_exchange_sendq |
( |
kvtree * |
send_hash, |
|
|
int |
rank, |
|
|
const kvtree * |
msg |
|
) |
| |
insert message destined for rank into send kvtree, merges msg with any existing data destined for the same rank
- Parameters
-
[out] | send_hash | [OUT] kvtree to attach message to |
[in] | rank | [IN] destination rank |
[in] | msg | [IN] data to be send to rank |
◆ kvtree_read_scatter()
int kvtree_read_scatter |
( |
const char * |
prefix, |
|
|
kvtree * |
data, |
|
|
MPI_Comm |
comm |
|
) |
| |
read from a series of files specified by the path and filename prefix, and scatter data to each process in comm
- Parameters
-
[in] | prefix | [IN] - path/filename prefix to prepend to filenames |
[out] | data | [OUT] - output data |
[in] | comm | [IN] - communicator of participating processes |
◆ kvtree_recv()
int kvtree_recv |
( |
kvtree * |
hash, |
|
|
int |
rank, |
|
|
MPI_Comm |
comm |
|
) |
| |
receives a hash from the specified rank and unpacks it into specified hash
◆ kvtree_send()
int kvtree_send |
( |
const kvtree * |
hash, |
|
|
int |
rank, |
|
|
MPI_Comm |
comm |
|
) |
| |
packs and send the given hash to the specified rank
◆ kvtree_sendrecv()
int kvtree_sendrecv |
( |
const kvtree * |
hash_send, |
|
|
int |
rank_send, |
|
|
kvtree * |
hash_recv, |
|
|
int |
rank_recv, |
|
|
MPI_Comm |
comm |
|
) |
| |
send and receive a hash in the same step
◆ kvtree_write_gather()
int kvtree_write_gather |
( |
const char * |
prefix, |
|
|
kvtree * |
data, |
|
|
MPI_Comm |
comm |
|
) |
| |
gather data from each process in comm, and write to a series of files specified by the path and filename prefix
- Parameters
-
[in] | prefix | [IN] - path/filename prefix to prepend to filenames |
[in] | data | [IN] - input data |
[in] | comm | [IN] - communicator of participating processes |