version 3.11-dev
Loading...
Searching...
No Matches
nonblockingsparseexchange.hh File Reference

A dynamic sparse data exchange (DSDE) of byte messages between processes. More...

#include <vector>
#include <cstddef>
#include <cassert>
#include <mpi.h>

Go to the source code of this file.

Description

Implements the nonblocking-consensus (NBX) algorithm of Hoefler et al. (2010), "Scalable Communication Protocols for Dynamic Sparse Data Exchange". Each process knows only the messages it sends; the senders and message sizes are discovered without any global (O(number of processes)) data structure or dense collective, using nonblocking synchronous sends, message probing and a nonblocking barrier.

Namespaces

namespace  Dumux
namespace  Dumux::Detail

Functions

template<class Communication>
std::vector< char > Dumux::Detail::exchangeSparse (const Communication &comm, std::vector< std::vector< char > > &sendBufs, int tag=7373)
 Exchange variable-sized byte messages with a sparse set of peer processes.