edu.rit.mp.buf
Class FloatMatrixBuf

java.lang.Object
  extended by edu.rit.mp.Buf
      extended by edu.rit.mp.FloatBuf
          extended by edu.rit.mp.buf.FloatMatrixBuf
Direct Known Subclasses:
FloatMatrixBuf_1

public class FloatMatrixBuf
extends FloatBuf

Class FloatMatrixBuf provides a buffer for a matrix of float items sent or received using the Message Protocol (MP). The matrix row and column strides may be 1 or greater than 1. While an instance of class FloatMatrixBuf may be constructed directly, normally you will use a factory method in class FloatBuf. See that class for further information.


Field Summary
 
Fields inherited from class edu.rit.mp.Buf
myLength
 
Constructor Summary
FloatMatrixBuf(float[][] theMatrix, Range theRowRange, Range theColRange)
          Construct a new float matrix buffer.
 
Method Summary
 void copy(Buf theSrc)
          Copy items from the given buffer to this buffer.
 float get(int i)
          Obtain the given item from this buffer.
 Buf getReductionBuf(Op op)
          Create a buffer for performing parallel reduction using the given binary operation.
 void put(int i, float item)
          Store the given item in this buffer.
protected  int receiveItems(int i, int num, ByteBuffer buffer)
          Receive as many items as possible from the given byte buffer to this buffer.
protected  int sendItems(int i, ByteBuffer buffer)
          Send as many items as possible from this buffer to the given byte buffer.
 
Methods inherited from class edu.rit.mp.FloatBuf
buffer, buffer, buffer, buffer, buffer, buffer, colSliceBuffer, colSliceBuffers, defaultCopy, emptyBuffer, fill, getTemporaryBuf, patchBuffer, patchBuffers, rowSliceBuffer, rowSliceBuffers, sliceBuffer, sliceBuffer, sliceBuffers, sliceBuffers
 
Methods inherited from class edu.rit.mp.Buf
length
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FloatMatrixBuf

public FloatMatrixBuf(float[][] theMatrix,
                      Range theRowRange,
                      Range theColRange)
Construct a new float matrix buffer. It is assumed that the rows and columns of theMatrix are allocated and that each row of theMatrix has the same number of columns.

Parameters:
theMatrix - Matrix.
theRowRange - Range of rows to include.
theColRange - Range of columns to include.
Method Detail

get

public float get(int i)
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.

Specified by:
get in class FloatBuf
Parameters:
i - Item index in the range 0 .. length()-1.
Returns:
Item at index i.

put

public void put(int i,
                float item)
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.

Specified by:
put in class FloatBuf
Parameters:
i - Item index in the range 0 .. length()-1.
item - Item to be stored at index i.

copy

public void copy(Buf theSrc)
Copy items from the given buffer to this buffer. The number of items copied is this buffer's length or theSrc's length, whichever is smaller. If theSrc is this buffer, the copy() method does nothing.

Overrides:
copy in class FloatBuf
Parameters:
theSrc - Source of items to copy into this buffer.
Throws:
ClassCastException - (unchecked exception) Thrown if theSrc's item data type is not the same as this buffer's item data type.

getReductionBuf

public Buf getReductionBuf(Op op)
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 class Buf
Parameters:
op - Binary operation.
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.

sendItems

protected int sendItems(int i,
                        ByteBuffer buffer)
Send as many items as possible from this buffer to the given byte buffer.

The sendItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

Specified by:
sendItems in class Buf
Parameters:
i - Index of first item to send, in the range 0 .. length-1.
buffer - Byte buffer.
Returns:
Number of items sent.

receiveItems

protected int receiveItems(int i,
                           int num,
                           ByteBuffer buffer)
Receive as many items as possible from the given byte buffer to this buffer.

The receiveItems() method must not block the calling thread; if it does, all message I/O in MP will be blocked.

Specified by:
receiveItems in class Buf
Parameters:
i - Index of first item to receive, in the range 0 .. length-1.
num - Maximum number of items to receive.
buffer - Byte buffer.
Returns:
Number of items received.


Copyright © 2005-2012 by Alan Kaminsky. All rights reserved. Send comments to ark­@­cs.rit.edu.