|
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.