36 typedef void (*
sort_fn) (
int *, int, int);
153 const int *bucket_idxlist ,
176 const int *n_idx_each_bucket ,
177 int n_procs_sending_to_bucket,
178 int bucket_max_size ,
201 const int *n_idx_each_bucket ,
203 int n_procs_sending_to_bucket,
204 int bucket_max_size ,
227 const int *n_idx_each_bucket ,
228 const int *bucket_msg_size_senders ,
230 int n_procs_sending_to_bucket,
231 int bucket_max_size ,
256 const int *original_idxlist_sorted ,
257 const int *n_idx_each_bucket ,
258 const int *bucket_msg_size_senders ,
260 int n_procs_sending_to_bucket,
261 int bucket_max_size ,
void(* sort_with_idx2_fn)(int *, int *, int *, int, int)
Definition: backend.h:38
void(* sort_with_idx_fn)(int *, int *, int, int)
Definition: backend.h:37
void(* sort_fn)(int *, int, int)
Definition: backend.h:36
sort_fn get_sort_function()
Return sorting function.
void assign_idxlist_elements_to_buckets2(int *bucket_idxlist, const int *idxlist, int bucket_min_size, int idxlist_size, int nbuckets, int bucket_stride)
Assign each element of a given index list to a bucket.
void assign_idxlist_elements_to_buckets(int *bucket_idxlist, const int *idxlist, int bucket_min_size, int idxlist_size, int nbuckets)
Assign each element of a given index list to a bucket.
sort_with_idx_fn get_sort_with_idx_function()
Return sorting function with associated indices.
void bucket_idxlist_procs(int *bucket_ranks, const int *n_idx_each_bucket, const int *bucket_msg_size_senders, const int *senders_to_bucket, int n_procs_sending_to_bucket, int bucket_max_size, int idxlist_size, MPI_Comm comm)
Each bucket receives an array of size n_procs_sending_to_bucket with the MPI processes owning the ind...
void bucket_idxlist_elements(int *bucket_indices, const int *original_idxlist_sorted, const int *n_idx_each_bucket, const int *bucket_msg_size_senders, const int *senders_to_bucket, int n_procs_sending_to_bucket, int bucket_max_size, int idxlist_size, MPI_Comm comm)
Each bucket receives an array of size n_procs_sending_to_bucket with the indices of the original deco...
sort_with_idx2_fn get_sort_with_idx2_function()
Return sorting function with two associated indices.
void num_indices_to_bucket_from_each_rank(int *bucket_msg_size_senders, const int *n_idx_each_bucket, const int *senders_to_bucket, int n_procs_sending_to_bucket, int bucket_max_size, int idxlist_size, MPI_Comm comm)
Each bucket receives an array of size n_procs_sending_to_bucket with the number of indices that each ...
void num_indices_to_send_to_each_bucket(int *n_idx_each_bucket, const int *bucket_idxlist, int idxlist_size, int nbuckets)
Each process compute the number of indices to send to each bucket.
void senders_to_bucket(int *senders_to_bucket, const int *n_idx_each_bucket, int n_procs_sending_to_bucket, int bucket_max_size, int idxlist_size, MPI_Comm comm, sort_fn sort)
Each bucket receives an array of size n_procs_sending_to_bucket with the rank ID which send indices t...
int num_procs_send_to_each_bucket(const int *bucket_idxlist, int nbuckets, int idxlist_size, MPI_Comm comm)
Return the number of processes that send information to this bucket.
#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