51#define CS_ALL_TO_ALL_USE_DEST_ID (1 << 0)
52#define CS_ALL_TO_ALL_ORDER_BY_SRC_RANK (1 << 1)
54#define CS_ALL_TO_ALL_NO_REVERSE (1 << 2)
55#define CS_ALL_TO_ALL_NEED_SRC_RANK (1 << 3)
127 const int dest_rank[],
257 const void *src_data,
327 const void *src_data,
454 cs_datatype_from_type<T>(),
498 cs_datatype_from_type<T>(),
542 cs_datatype_from_type<T>(),
589 cs_datatype_from_type<T>(),
void * cs_all_to_all_copy_array(cs_all_to_all_t *d, cs_datatype_t datatype, int stride, bool reverse, const void *src_data, void *dest_data)
Communicate array data using all-to-all distributor.
Definition: cs_all_to_all.cpp:2786
void * cs_all_to_all_copy_indexed(cs_all_to_all_t *d, cs_datatype_t datatype, bool reverse, const cs_lnum_t *src_index, const void *src_data, const cs_lnum_t *dest_index, void *dest_data)
Communicate local index using all-to-all distributor.
Definition: cs_all_to_all.cpp:3159
void cs_all_to_all_set_type(cs_all_to_all_type_t t)
Set current type of all-to-all distributor algorithm choice.
Definition: cs_all_to_all.cpp:3546
void cs_all_to_all_destroy(cs_all_to_all_t **d)
Destroy an all-to-all distributor.
Definition: cs_all_to_all.cpp:2509
cs_lnum_t cs_all_to_all_n_elts_dest(cs_all_to_all_t *d)
Get number of elements associated with all-to-all distributor.
Definition: cs_all_to_all.cpp:2622
struct _cs_all_to_all_t cs_all_to_all_t
Definition: cs_all_to_all.h:77
cs_all_to_all_type_t cs_all_to_all_get_type(void)
Get current type of all-to-all distributor algorithm choice.
Definition: cs_all_to_all.cpp:3503
void cs_all_to_all_log_finalize(void)
Log performance information relative to instrumented all-to-all distribution.
Definition: cs_all_to_all.cpp:3559
cs_lnum_t * cs_all_to_all_copy_index(cs_all_to_all_t *d, bool reverse, const cs_lnum_t *src_index, cs_lnum_t *dest_index)
Communicate local index using all-to-all distributor.
Definition: cs_all_to_all.cpp:3058
cs_all_to_all_type_t
Definition: cs_all_to_all.h:64
@ CS_ALL_TO_ALL_MPI_DEFAULT
Definition: cs_all_to_all.h:66
@ CS_ALL_TO_ALL_HYBRID
Definition: cs_all_to_all.h:68
@ CS_ALL_TO_ALL_CRYSTAL_ROUTER
Definition: cs_all_to_all.h:69
int * cs_all_to_all_get_src_rank(cs_all_to_all_t *d)
Get array of source element ranks associated with an all-to-all distributor.
Definition: cs_all_to_all.cpp:3432
cs_all_to_all_t * cs_all_to_all_create_from_block(size_t n_elts, int flags, const cs_gnum_t *src_gnum, cs_block_dist_info_t bi, MPI_Comm comm)
Create an all-to-all distributor for elements whose destination rank is determined from global number...
Definition: cs_all_to_all.cpp:2434
void cs_all_to_all_set_hybrid_parameters(cs_rank_neighbors_exchange_t rne_type)
Set current type of all-to-all distributor algorithm choice.
Definition: cs_all_to_all.cpp:3532
void cs_all_to_all_get_hybrid_parameters(cs_rank_neighbors_exchange_t *rne_type)
Get current type of hybrid all-to-all distributor parameters.
Definition: cs_all_to_all.cpp:3517
void cs_all_to_all_transfer_dest_id(cs_all_to_all_t *d, cs_lnum_t **dest_id)
Transfer ownership of destination ids to an all-to-all distributor.
Definition: cs_all_to_all.cpp:2589
cs_all_to_all_t * cs_all_to_all_create(size_t n_elts, int flags, const cs_lnum_t *dest_id, const int dest_rank[], MPI_Comm comm)
Create an all-to-all distributor based on destination rank.
Definition: cs_all_to_all.cpp:2376
void cs_all_to_all_transfer_dest_rank(cs_all_to_all_t *d, int **dest_rank)
Transfer ownership of destination rank to an all-to-all distributor.
Definition: cs_all_to_all.cpp:2558
cs_datatype_t
Definition: cs_defs.h:290
unsigned cs_gnum_t
global mesh entity number
Definition: cs_defs.h:317
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
@ t
Definition: cs_field_pointer.h:91
cs_rank_neighbors_exchange_t
Definition: cs_rank_neighbors.h:51
Definition: cs_block_dist.h:46