41 virtual void clear()=0;
44 virtual void append(
int,
int)=0;
45 virtual void append(
double,
int)=0;
46 virtual void append(
const char*,
int)=0;
73 virtual void clear()=0;
74 virtual void send()=0;
76 virtual void append(
int)=0;
77 virtual void append(
double)=0;
105 virtual void clear();
108 virtual void append(
int,
int);
109 virtual void append(
double,
int);
110 virtual void append(
const char*,
int);
135 virtual void clear();
139 virtual void append(
double);
140 virtual void append(
const char*);
147 #endif // __MPISGBUF_H
virtual ~CMPISGBufferRoot()
Definition: mpisgbuf.cpp:65
int m_dbl_increment
the "packing size" of int/double
Definition: mpisgbuf.h:67
virtual ~CMPISGBufferLeaf()
Definition: mpisgbuf.cpp:208
virtual void clear()
Definition: mpisgbuf.cpp:72
int * m_position
the current end of the content in each slice
Definition: mpisgbuf.h:99
int m_rank
the rank in this communicator
Definition: mpisgbuf.h:32
virtual void pop_doubles(int, double *, int)=0
virtual void send()
Definition: mpisgbuf.cpp:221
virtual int pop_int(int)=0
char * m_buffer
Definition: mpisgbuf.h:127
virtual void scatter()
Definition: mpisgbuf.cpp:90
int m_dbl_increment
the "packing size" of int/double
Definition: mpisgbuf.h:34
virtual int pop_int()
Definition: mpisgbuf.cpp:272
AMPISGBufferLeaf(MPI_Comm, int)
Definition: mpisgbuf.cpp:181
virtual void pop_doubles(int, double *, int)
Definition: mpisgbuf.cpp:168
virtual ~AMPISGBufferRoot()
Definition: mpisgbuf.h:39
virtual double pop_double()=0
virtual void clear()
Definition: mpisgbuf.cpp:213
virtual void append(int, int)
Definition: mpisgbuf.cpp:103
Abstract base class for MPI send/recv buffer.
Definition: mpibuf.h:33
MPI_Status m_status
Definition: mpisgbuf.h:35
virtual int pop_int(int)
Definition: mpisgbuf.cpp:143
virtual Vec3 pop_vector(int)
Definition: mpisgbuf.cpp:40
char * m_dummy_buffer
dummy buffer sent by root to itself
Definition: mpisgbuf.h:97
virtual void append(int)=0
int m_int_increment
Definition: mpisgbuf.h:34
virtual double pop_double()
Definition: mpisgbuf.cpp:286
int m_buffersize
the size of the buffer per slice
Definition: mpisgbuf.h:98
CMPISGBufferRoot(MPI_Comm, int)
Definition: mpisgbuf.cpp:54
virtual ~AMPISGBufferLeaf()
Definition: mpisgbuf.h:71
int m_position
the current end of the content
Definition: mpisgbuf.h:129
char * m_buffer
Definition: mpisgbuf.h:96
Buffer for MPI scatter/gather, leaf component.
Definition: mpisgbuf.h:124
int m_int_increment
Definition: mpisgbuf.h:67
Abstract base class for scatter/gather buffer, leaf component.
Definition: mpisgbuf.h:63
virtual void gather()
Definition: mpisgbuf.cpp:82
CMPISGBufferLeaf(MPI_Comm, int, int)
Definition: mpisgbuf.cpp:197
virtual void append(int)
Definition: mpisgbuf.cpp:239
const MPI_Status & status()
Definition: mpisgbuf.h:52
int m_root
rank of the root process
Definition: mpisgbuf.h:66
virtual void append(int, int)=0
virtual void pop_doubles(double *, int)
Definition: mpisgbuf.cpp:294
virtual double pop_double(int)
Definition: mpisgbuf.cpp:160
int m_buffersize
the size of the buffer
Definition: mpisgbuf.h:128
Abstract base class for scatter/gather buffer, root component.
Definition: mpisgbuf.h:28
virtual void receive()
Definition: mpisgbuf.cpp:229
MPI_Status m_status
Definition: mpibuf.h:37
virtual std::string pop_string()=0
MPI_Comm m_comm
the MPI communicator used for the scatter/gather operations
Definition: mpisgbuf.h:31
Buffer for MPI scatter/gather, root component.
Definition: mpisgbuf.h:93
const MPI_Status & status()
Definition: mpisgbuf.h:82
AMPISGBufferRoot(MPI_Comm)
Definition: mpisgbuf.cpp:24
virtual std::string pop_string()
Definition: mpisgbuf.cpp:305
virtual double pop_double(int)=0
int m_size
size of the communicator
Definition: mpisgbuf.h:33
virtual void pop_doubles(double *, int)=0