stk::CommAll Class Reference

List of all members.

Detailed Description

Definition at line 137 of file ParallelComm.hpp.

Public Member Functions

ParallelMachine parallel () const
unsigned parallel_size () const
unsigned parallel_rank () const
CommBuffersend_buffer (unsigned) const
 Obtain the message buffer for a given processor.
CommBufferrecv_buffer (unsigned) const
 Obtain the message buffer for a given processor.
 CommAll ()
 Construct for undefined communication.
bool allocate_buffers (ParallelMachine, const unsigned num_msg_bounds, const unsigned *const send_size, const unsigned *const recv_size, const bool local_flag=false)
 Allocate send and receive buffers based upon input sizes.
 CommAll (ParallelMachine)
 Construct for a to-be-sized communication.
bool allocate_buffers (const unsigned num_msg_bounds, const bool symmetric=false, const bool local_flag=false)
 Allocate asymmetric communication based upon sizing from the surrogate send buffer packing.
void communicate ()
 Communicate send buffers to receive buffers.
void swap_send_recv ()
 Swap send and receive buffers leading to reversed communication.
void reset_buffers ()
 Reset, but do not reallocate, message buffers for reprocessing.
 ~CommAll ()


Constructor & Destructor Documentation

stk::CommAll::CommAll (  ) 

Construct for undefined communication.

No buffers are allocated.

Definition at line 339 of file ParallelComm.cpp.

stk::CommAll::CommAll ( ParallelMachine   )  [explicit]

Construct for a to-be-sized communication.

Allocate surrogate send buffers to enable no-op packing for the purpose of send sizing. Surrogate send scenario: 1) Surrogate send buffers are "packed" for sizing where packing sizes are recorded but no data is copied. 2) 'allocate_buffers(symmetric,flag)' is called to allocate buffers. The symmetric flag guarantees that the send sizes matches the receive sizes. 3) Send buffers are identically packed; however, this packing copies data into the send buffers.

Definition at line 348 of file ParallelComm.cpp.


Member Function Documentation

bool stk::CommAll::allocate_buffers ( ParallelMachine  ,
const unsigned  num_msg_bounds,
const unsigned *const   send_size,
const unsigned *const   recv_size,
const bool  local_flag = false 
)

Allocate send and receive buffers based upon input sizes.

If recv_size == NULL then the receive size is determined by communicating the send sizes. Symmetry is given by passing the same data for both send and receive sizes. Return global parallel OR of local flags.

Definition at line 417 of file ParallelComm.cpp.

bool stk::CommAll::allocate_buffers ( const unsigned  num_msg_bounds,
const bool  symmetric = false,
const bool  local_flag = false 
)

Allocate asymmetric communication based upon sizing from the surrogate send buffer packing.

If symmetric then the receive sizes are guaranteed to be identical to the send sizes. Return global parallel OR of local flags.

Definition at line 365 of file ParallelComm.cpp.

void stk::CommAll::reset_buffers (  ) 

Reset, but do not reallocate, message buffers for reprocessing.

Sets 'size() == 0' and 'remaining() == capacity()'.

Definition at line 385 of file ParallelComm.cpp.


The documentation for this class was generated from the following files:
Generated on Tue Jul 13 09:27:33 2010 for Sierra Toolkit by  doxygen 1.4.7