ECP-VELOC Components
User documentation for all components
kvtree_mpi.h
Go to the documentation of this file.
1 #ifndef KVTREE_MPI_H
2 #define KVTREE_MPI_H
3 
4 #include "mpi.h"
5 #include "kvtree.h"
6 
7 /* enable C++ codes to include this header directly */
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
18 int kvtree_send(const kvtree* hash, int rank, MPI_Comm comm);
19 
21 int kvtree_recv(kvtree* hash, int rank, MPI_Comm comm);
22 
24 int kvtree_sendrecv(
25  const kvtree* hash_send, int rank_send,
26  kvtree* hash_recv, int rank_recv,
27  MPI_Comm comm
28 );
29 
31 int kvtree_bcast(kvtree* hash, int root, MPI_Comm comm);
32 
36  kvtree* send_hash,
37  int rank,
38  const kvtree* msg
39 );
40 
57 int kvtree_exchange(const kvtree* hash_send, kvtree* hash_recv, MPI_Comm comm);
58 
59 typedef enum {
63 
67  const kvtree* hash_send,
68  kvtree* hash_recv,
69  MPI_Comm comm,
70  kvtree_exchange_enum direction
71 );
72 
76  const char* prefix,
77  kvtree* data,
78  MPI_Comm comm
79 );
80 
84  const char* prefix,
85  kvtree* data,
86  MPI_Comm comm
87 );
88 
89 /* enable C++ codes to include this header directly */
90 #ifdef __cplusplus
91 } /* extern "C" */
92 #endif
93 
94 #endif
KVTREE_EXCHANGE_RIGHT
@ KVTREE_EXCHANGE_RIGHT
Definition: kvtree_mpi.h:60
kvtree_exchange_enum
kvtree_exchange_enum
Definition: kvtree_mpi.h:59
kvtree_exchange_direction
int kvtree_exchange_direction(const kvtree *hash_send, kvtree *hash_recv, MPI_Comm comm, kvtree_exchange_enum direction)
kvtree_recv
int kvtree_recv(kvtree *hash, int rank, MPI_Comm comm)
kvtree_bcast
int kvtree_bcast(kvtree *hash, int root, MPI_Comm comm)
kvtree_read_scatter
int kvtree_read_scatter(const char *prefix, kvtree *data, MPI_Comm comm)
kvtree.h
This file defines the data structure for a hash, which is an unordered list of elements,...
kvtree_exchange
int kvtree_exchange(const kvtree *hash_send, kvtree *hash_recv, MPI_Comm comm)
kvtree_write_gather
int kvtree_write_gather(const char *prefix, kvtree *data, MPI_Comm comm)
kvtree_sendrecv
int kvtree_sendrecv(const kvtree *hash_send, int rank_send, kvtree *hash_recv, int rank_recv, MPI_Comm comm)
KVTREE_EXCHANGE_LEFT
@ KVTREE_EXCHANGE_LEFT
Definition: kvtree_mpi.h:61
kvtree_elem_struct::hash
struct kvtree_struct * hash
Definition: kvtree.h:94
kvtree_exchange_sendq
int kvtree_exchange_sendq(kvtree *send_hash, int rank, const kvtree *msg)
kvtree_send
int kvtree_send(const kvtree *hash, int rank, MPI_Comm comm)