1#ifndef __CS_ALL_TO_ALL_H__
2#define __CS_ALL_TO_ALL_H__
55#define CS_ALL_TO_ALL_USE_DEST_ID (1 << 0)
56#define CS_ALL_TO_ALL_ORDER_BY_SRC_RANK (1 << 1)
58#define CS_ALL_TO_ALL_NO_REVERSE (1 << 2)
59#define CS_ALL_TO_ALL_NEED_SRC_RANK (1 << 3)
79typedef struct _cs_all_to_all_t cs_all_to_all_t;
126cs_all_to_all_create(
size_t n_elts,
129 const int dest_rank[],
157cs_all_to_all_create_from_block(
size_t n_elts,
172cs_all_to_all_destroy(cs_all_to_all_t **d);
187cs_all_to_all_transfer_dest_rank(cs_all_to_all_t *d,
204cs_all_to_all_transfer_dest_id(cs_all_to_all_t *d,
223cs_all_to_all_n_elts_dest(cs_all_to_all_t *d);
255cs_all_to_all_copy_array(cs_all_to_all_t *d,
259 const void *src_data,
289cs_all_to_all_copy_index(cs_all_to_all_t *d,
325cs_all_to_all_copy_indexed(cs_all_to_all_t *d,
329 const void *src_data,
359cs_all_to_all_get_src_rank(cs_all_to_all_t *d);
423#if defined(__cplusplus)
454cs_all_to_all_copy_array(cs_all_to_all_t *d,
459 return static_cast<T *
>(cs_all_to_all_copy_array(d,
460 cs_datatype_from_type<T>(),
497cs_all_to_all_copy_array(cs_all_to_all_t *d,
503 cs_all_to_all_copy_array(d,
504 cs_datatype_from_type<T>(),
541cs_all_to_all_copy_indexed(cs_all_to_all_t *d,
547 return static_cast<T *
>(cs_all_to_all_copy_indexed(d,
548 cs_datatype_from_type<T>(),
587cs_all_to_all_copy_indexed(cs_all_to_all_t *d,
594 cs_all_to_all_copy_indexed(d,
595 cs_datatype_from_type<T>(),
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:3557
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:3514
void cs_all_to_all_log_finalize(void)
Log performance information relative to instrumented all-to-all distribution.
Definition cs_all_to_all.cpp:3570
cs_all_to_all_type_t
Definition cs_all_to_all.h:67
@ CS_ALL_TO_ALL_MPI_DEFAULT
Definition cs_all_to_all.h:69
@ CS_ALL_TO_ALL_HYBRID
Definition cs_all_to_all.h:70
@ CS_ALL_TO_ALL_CRYSTAL_ROUTER
Definition cs_all_to_all.h:71
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:3543
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:3528
cs_datatype_t
Definition cs_defs.h:300
#define BEGIN_C_DECLS
Definition cs_defs.h:542
unsigned cs_gnum_t
global mesh entity number
Definition cs_defs.h:327
#define END_C_DECLS
Definition cs_defs.h:543
int cs_lnum_t
local mesh entity id
Definition cs_defs.h:335
@ t
Definition cs_field_pointer.h:94
cs_rank_neighbors_exchange_t
Definition cs_rank_neighbors.h:55
Definition cs_block_dist.h:50