90 {
"irecv_isend_packed",
117 static const char fmt[]
118 =
"error: unexpected exchanger function (%p)!\n";
119 char buf[
sizeof (fmt) + 9];
120 sprintf(buf, fmt, (
void *)exchanger_new);
121 Xt_abort(Xt_default_comm, buf,
"xt_config.c", __LINE__);
132 static const char fmt[]
133 =
"error: user-requested exchanger code (%d) does not exist!\n";
134 char buf[
sizeof (fmt) + 9];
135 sprintf(buf, fmt, method);
136 Xt_abort(Xt_default_comm, buf,
"xt_config.c", __LINE__);
142 const char *config_env = getenv(
"XT_CONFIG_DEFAULT_EXCHANGE_METHOD");
145 if (exchanger_id != -1)
add versions of standard API functions not returning on error
Xt_exchanger_new exchanger_new
void xt_config_defaults_init(void)
static const struct @3 exchanger_table[]
int xt_exchanger_id_by_name(const char *name)
void xt_config_delete(Xt_config config)
void xt_config_set_exchange_method(Xt_config config, int method)
Xt_config xt_config_new(void)
int xt_config_get_exchange_method(Xt_config config)
struct Xt_config_ xt_default_config
opaque configuration object for settings where the default needs to be overridden
@ xt_exchanger_irecv_isend
@ xt_exchanger_irecv_send
@ xt_exchanger_irecv_isend_packed
@ xt_exchanger_neigh_alltoall
@ xt_exchanger_mix_isend_irecv
implementation of configuration object
Xt_exchanger(* Xt_exchanger_new)(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Xt_exchanger xt_exchanger_irecv_isend_new(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Xt_exchanger xt_exchanger_irecv_isend_packed_new(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Xt_exchanger xt_exchanger_irecv_send_new(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Xt_exchanger xt_exchanger_mix_isend_irecv_new(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
Xt_exchanger xt_exchanger_neigh_alltoall_new(int nsend, int nrecv, const struct Xt_redist_msg *send_msgs, const struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)