Draft: Attempt at fuller exchanger interface

This branch contains my attempt to enable the following with the exchangers: Directly using per-rank basic MPI datatypes (and count) with the buffers (and an added displacement), such that

  • the packing exchangers can be modified to use the basic exchangers instead of hard-coded point-to-point message passing routines,
  • make the exchangers usable in cases where the MPI datatypes of the built-in redists simply have too high overhead.
  • extend exchangers to use MPI_Ibsend, MPI_Issend, MPI_Bsend, or MPI_Ssend, where applicable.
  • also, since this turned out to be significant for large transfers, the simpler datatype engine previously only available at compile time can now be activated (environment variable XT_CONFIG_MPI_DDT_CACHE_LIMIT, values -2 and below, as well as xt_config_set_ddt_cache_limit for customized redist constructor calls).
Edited by Thomas Jahns

Merge request reports

Loading