|
These methods are used only by the MPIRoot instance for which mpi_rank == mpi_root
|
MPI_Comm | comm |
| Communicator in which data will be sent and received.
|
|
int | mpi_size |
| Number of nodes in communicator.
|
|
int | mpi_rank |
| Rank of this process within the communicator.
|
|
int | mpi_root |
| Rank of process sending data.
|
|
int | mpi_tag |
| Tag used for all communication.
|
|
bool | auto_request |
| Automatically request the next data chunk.
|
|
MPI_Request | data_request |
| Handle to the asynchronous send/recv of data.
|
|
MPI_Request | ready_request |
| Handle to the asynchronous send/recv of ready flag.
|
|
MPI_Status | status |
| Status of the last call to wait.
|
|
int | ready |
| The ready flag.
|
|
char * | pack_buf |
| Buffer used to store asynchronous send/recv.
|
|
int | pack_buf_size |
| Size of the above buffer.
|
|
int | pack_size |
| Size actually needed.
|
|
int | min_header_size |
| MPI_Pack_size of the header in the buffer.
|
|
int | data_size |
| Size of the data in bytes.
|
|
bool | end_of_data |
| End of data.
|
|
vector< bool > | eod_sent |
| End of data has been sent to this node.
|
|
Reference::To< Input > | input |
| The source from which input data will be read.
|
|
void | set_Input (Input *input) |
| Set the source from which input data will be read.
|
|
void | serve (BitSeries *bitseries=0) |
| Serve the data from Input.
|
|
void | set_resolution (unsigned resolution) |
| Provide access to resolution attribute (required in mpiUnpack)
|
|
virtual void | set_eod (bool _eod) |
| Method that is p.v. in dsp::Input so that dsp::Seekable can set its 'end_of_data' flag. I don't know what MPIRoot should do in it, if anything. HSK 25/10/03.
|
|
void | send_data (BitSeries *data, int dest) |
| Send the next block using MPI_Isend.
|
|
void | load_data (BitSeries *data) |
| Load the next block using MPI_Irecv.
|
|
void | wait (MPI_Request &request, bool receive) |
| Wait for the MPI_Request to complete and check the MPI_Status. More...
|
|
int | next_destination () |
| Returns the rank of the next node ready to receive data.
|
|
void | size_pack_buffer () |
| resize the pack_buf
|
|
void | init () |
| initialize variables
|
|
void | request_ready () |
| request ready-for-data from any node
|
|
void | request_data () |
| request data from the root
|
|
int | receive_data () |
| wait for data to be received and return the data count
|
|
void | load_data () |
| when mpi_rank == mpi_root, load data from input
|
|
void | ensure_root (const char *method) const |
| ensure that this instance is the root and that mpi_size > 1
|
|
void | ensure_receptive (const char *method) const |
| ensure that this instance is not the root and that eof = false
|
|
void | check_error (int mpi_err, const char *call, const char *method) |
| throw an Error exception if mpi_err != MPI_SUCCESS
|
|
void | check_status (MPI_Status &mpi_status, const char *method) |
| verify that MPI_Wait returns as expected after MPI_Irecv
|
|
void | check_block_size (const char *method) |
| verify that the block_size is withing MPI size limits
|
|
Loads BitSeries data using the MPI communications protocol.