DistDir
bucket.h
Go to the documentation of this file.
1 
34 #ifndef BUCKET_H
35 #define BUCKET_H
36 
37 #include "mpi.h"
39 
45 struct t_bucket {
47  int stride;
49  int min_size;
53  int size;
57  int max_size;
62  int *idxlist;
65  int *ranks;
70  int *src_recv;
76  int *size_ranks;
82  int *rank_exch;
83 };
84 typedef struct t_bucket t_bucket;
85 
102  t_idxlist *idxlist ,
103  int *idxlist_local,
104  int nbuckets ,
105  MPI_Comm comm );
106 
124  t_bucket *dst_bucket ,
125  int *idxlist_local,
126  int idxlist_size ,
127  int nbuckets ,
128  MPI_Comm comm );
129 
130 #endif
void map_RD_decomp_to_idxlist(t_bucket *src_bucket, t_bucket *dst_bucket, int *idxlist_local, int idxlist_size, int nbuckets, MPI_Comm comm)
Map source and destination information in the RD decomposition to the original decompositions.
void map_idxlist_to_RD_decomp(t_bucket *bucket, t_idxlist *idxlist, int *idxlist_local, int nbuckets, MPI_Comm comm)
Map a provided index list into a RD decomposition.
#define nbuckets
Definition: num_indices_to_send_to_each_bucket_tests.c:42
#define idxlist_size
Definition: num_indices_to_send_to_each_bucket_tests.c:43
The structure contains information about each bucket.
Definition: bucket.h:45
int size_stride
Number of global indices in the bucket for a single stride.
Definition: bucket.h:55
int min_size_stride
Minimum number of global indices across all buckets for a single stride.
Definition: bucket.h:51
int count_recv
Number of MPI processes that the bucket receives data from.
Definition: bucket.h:67
int * ranks
Array of MPI ranks owning the indices in the idxlist array Size is size.
Definition: bucket.h:65
int * msg_size_recv
Array of number of indices that each MPI ranks in src_recv send to the bucket. Size is count_recv.
Definition: bucket.h:73
int * size_ranks
Array of number of indices that the MPI process send to each bucket. Size is the number of MPI proces...
Definition: bucket.h:76
int stride
Bucket stride.
Definition: bucket.h:47
int * idxlist
Array of indices inside the bucket sorted in ascending order of the MPI processes owning them....
Definition: bucket.h:62
int * rank_exch
Array of MPI ranks to send / recv data to / from. This is the result of the distributed directory alg...
Definition: bucket.h:82
int * src_recv
Array of MPI processes sending data to the bucket. Size is count_recv.
Definition: bucket.h:70
int min_size
Minimum number of global indices across all buckets.
Definition: bucket.h:49
int size
Number of global indices in the bucket.
Definition: bucket.h:53
int max_size_stride
Maximum number of global indices across all buckets for a single stride.
Definition: bucket.h:59
int max_size
Maximum number of global indices across all buckets.
Definition: bucket.h:57
The structure contains information about an index list.
Definition: idxlist.h:42