85 #define VMPI_STREAM_MAX_ASYNC 10
All Calls are blocking ones.
#define VMPI_STREAM_MAX_ASYNC
Maximum number of asynchronous cells.
char ** r_tmp_buffers
Temporary buffer for input.
struct _VMPI_Stream * in
Input streams.
int VMPI_Stream_test_write(VMPI_Stream *st)
Is this stream ready for writing ?
struct _VMPI_Stream * out
Output streams.
int out_count
Number of outputs.
int VMPI_Stream_open_map(VMPI_Stream *st, VMPI_Map *map, char *mode)
Open a stream according to a mapping.
int VMPI_Stream_test_read(VMPI_Stream *st)
Is this stream ready for read ?
Send or receive from a random one.
int current_out
Current output stream.
int w_req_count
Number of output requests.
int * r_current_buff
Current buffer.
MALP_Spinlock lock
Spinlock.
Internal declaration of a stream endpoint.
static int VMPI_Stream_read_count(VMPI_Stream *st)
Get the number of input streams.
VMPI_Stream_load_balance
Defines the load ballancing modes available to MPI_Streams.
int in_count
Number of inputs.
VMPI_Stream_mode
Defines MPI_Stream mode.
int local_tag
Local unique tag.
volatile unsigned int MALP_Spinlock
The type of spinlocks in MALP.
VMPI_Stream_load_balance lb
Load balancing policy.
static int VMPI_Stream_write_count(VMPI_Stream *st)
Get the number of output streams.
int VMPI_Stream_init(VMPI_Stream *st, size_t block_size, VMPI_Stream_load_balance lb)
Initializes a stream should be called before any *open call.
If no data are available or endpoint not ready call might return VMPI_EAGAIN.
VMPI_Stream_blocking
Defines call mode.
MPI_Request * r_req
Input requests.
int VMPI_Stream_close(VMPI_Stream *st)
Closes a stream and sends EOF to remote endpoints.
Send or receive from each turn by turn.
int VMPI_Stream_join(VMPI_Stream *dest, VMPI_Stream *src)
Join two streams in the same set.
int state
Been closed or not.
int VMPI_Stream_open(VMPI_Stream *st, int dest, char *mode)
Open a stream to dest rank, dest should do the symmetrical call.
int r_req_count
Number of input requests.
int VMPI_Stream_read(VMPI_Stream *st, char *buff, unsigned int block_count, VMPI_Stream_blocking block)
Read data from a VMPI_Stream.
int current_in
Current input stream.
MPI_Status * r_stat
Input statuses.
int VMPI_Stream_write(VMPI_Stream *st, char *buff, unsigned int block_count)
Write data to a VMPI_Stream.
int remote_tag
Remote unique tag.
Always send or receive from the same.
size_t block_size
Size of a data block.