Class ObjectMatrixBuf<T>
- Type Parameters:
T
- Data type of the objects in the buffer.
- Direct Known Subclasses:
ObjectMatrixBuf_1
- Version:
- 23-Mar-2009
- Author:
- Alan Kaminsky
-
Field Summary
Fields inherited from class edu.rit.mp.ObjectBuf
mySerializedItems
-
Constructor Summary
ConstructorDescriptionObjectMatrixBuf
(T[][] theMatrix, Range theRowRange, Range theColRange) Construct a new object matrix buffer. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Copy items from the given buffer to this buffer.get
(int i) Obtain the given item from this buffer.getReductionBuf
(Op op) Create a buffer for performing parallel reduction using the given binary operation.void
Store the given item in this buffer.Methods inherited from class edu.rit.mp.ObjectBuf
buffer, buffer, buffer, buffer, buffer, buffer, colSliceBuffer, colSliceBuffers, defaultCopy, emptyBuffer, fill, getTemporaryBuf, objectBuffer, objectBuffer, patchBuffer, patchBuffers, receiveItems, reset, rowSliceBuffer, rowSliceBuffers, sendItems, sliceBuffer, sliceBuffer, sliceBuffers, sliceBuffers
-
Constructor Details
-
ObjectMatrixBuf
Construct a new object matrix buffer. It is assumed that the rows and columns oftheMatrix
are allocated and that each row oftheMatrix
has the same number of columns.- Parameters:
theMatrix
- Matrix.theRowRange
- Range of rows to include.theColRange
- Range of columns to include.
-
-
Method Details
-
get
Obtain the given item from this buffer.The
get()
method must not block the calling thread; if it does, all message I/O in MP will be blocked. Obtain the given item from this buffer.The
get()
method must not block the calling thread; if it does, all message I/O in MP will be blocked. -
put
Store the given item in this buffer.The
put()
method must not block the calling thread; if it does, all message I/O in MP will be blocked. -
copy
Copy items from the given buffer to this buffer. The number of items copied is this buffer's length ortheSrc
's length, whichever is smaller. IftheSrc
is this buffer, thecopy()
method does nothing. Copy items from the given buffer to this buffer. The number of items copied is this buffer's length ortheSrc
's length, whichever is smaller. IftheSrc
is this buffer, thecopy()
method does nothing.The default implementation of the
copy()
method calls thedefaultCopy()
method. A subclass can override thecopy()
method to use a more efficient algorithm.The default implementation of the
copy()
method also calls thereset()
method. Copy items from the given buffer to this buffer. The number of items copied is this buffer's length ortheSrc
's length, whichever is smaller. IftheSrc
is this buffer, thecopy()
method does nothing.- Overrides:
copy
in classObjectBuf<T>
- Parameters:
theSrc
- Source of items to copy into this buffer.- Throws:
ClassCastException
- (unchecked exception) Thrown iftheSrc
's item data type is not the same as this buffer's item data type.
-
getReductionBuf
Create a buffer for performing parallel reduction using the given binary operation. The results of the reduction are placed into this buffer.Operations performed on the returned reduction buffer have the same effect as operations performed on this buffer, except whenever a source item S is put into a destination item D in this buffer, D is set to D op S, that is, the reduction of D and S using the given binary operation (rather than just setting D to S). Create a buffer for performing parallel reduction using the given binary operation. The results of the reduction are placed into this buffer.
- Specified by:
getReductionBuf
in classBuf
- Parameters:
op
- Binary operation.- Returns:
- a
Buf
object. - Throws:
ClassCastException
- (unchecked exception) Thrown if this buffer's element data type and the given binary operation's argument data type are not the same.
-