com.multicorebsp.core
Class BSP_INT_ARRAY

java.lang.Object
  extended by com.multicorebsp.core.BSP_GLOBAL_COMM<T[],S>
      extended by com.multicorebsp.core.BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
          extended by com.multicorebsp.core.BSP_INT_ARRAY

public class BSP_INT_ARRAY
extends BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>

This class represents a global double[] type.

Apart from the general vector-like read / write methods, bulk-synchronous message passing (BSMP) and direct remote memory access (DRMA) methods are available.

This class is to be used within the parallel part of an instance of a BSP_PROGRAM.

Since:
23th of July 2009
See Also:
BSP_REGISTER, BSP_DOUBLE_ARRAY, BSP_PROGRAM

Field Summary
protected  com.multicorebsp.core.BSP_GLOBAL<com.multicorebsp.core.BSP_INT_ARRAY.Wrapper> global
          Reference to global instance.
protected  int pid
          Processor ID corresponding to this array instance.
 
Constructor Summary
BSP_INT_ARRAY(BSP_PROGRAM thread, int length)
          Helper constructor.
BSP_INT_ARRAY(BSP_PROGRAM thread, int[] init)
          Base constructor.
BSP_INT_ARRAY(BSP_PROGRAM thread, int length, int default_value)
          Helper constructor Creates an array and then calls the base constructor.
 
Method Summary
 void bsp_direct_get(BSP_INT_ARRAY source, int pid)
          Direct get instruction.
 void bsp_direct_get(BSP_INT_ARRAY source, int pid, int length)
          DRMA Direct get instruction.
 void bsp_direct_get(BSP_INT_ARRAY source, int pid, int source_offset, int dest_offset, int length)
          DRMA Direct get instruction.
 void bsp_direct_get(int pid)
          Get instruction.
 void bsp_direct_get(int pid, int length)
          DRMA Direct get instruction.
 void bsp_direct_get(int pid, int source_offset, int dest_offset, int length)
          DRMA Direct get instruction.
 void bsp_get(BSP_INT_ARRAY source, int pid)
          Get instruction.
 void bsp_get(BSP_INT_ARRAY source, int source_processor, int length)
          DRMA Get instruction.
 void bsp_get(BSP_INT_ARRAY source, int source_processor, int source_offset, int destination_offset, int length)
          DRMA Get instruction.
 void bsp_get(int pid)
          Get instruction.
 void bsp_get(int source_processor, int length)
          DRMA Get instruction.
 void bsp_get(int pid, int source_offset, int dest_offset, int length)
          DRMA Get instruction.
 void bsp_move()
          Move a BSMP message from this global variable's queue.
 void bsp_put(BSP_INT_ARRAY source, int pid)
          Put instruction.
 void bsp_put(BSP_INT_ARRAY source, int pid, int length)
          DRMA Put instruction.
 void bsp_put(BSP_INT_ARRAY source, int source_offset, int destination_processor, int destination_offset, int length)
          DRMA Put instruction.
 void bsp_put(int pid)
          Put instruction.
 void bsp_put(int[] data, int pid)
          DRMA Put instruction.
 void bsp_put(int[] data, int pid, int length)
          DRMA Put instruction.
 void bsp_put(int[] data, int source_offset, int destination_processor, int dest_offset, int length)
          DRMA Put instruction.
 void bsp_put(java.lang.Integer[] source, int pid)
          DRMA Put instruction.
 void bsp_put(java.lang.Integer[] source, int pid, int length)
          DRMA Put instruction.
 void bsp_put(java.lang.Integer[] data, int source_offset, int destination_processor, int dest_offset, int length)
          DRMA Put instruction.
 void bsp_put(java.lang.Integer item, int pid, int dest_offset)
          DRMA Put instruction.
 void bsp_put(int pid, int length)
          DRMA Put instruction.
 void bsp_put(int item, int destination_processor, int destination_offset)
           
 void bsp_put(int source_offset, int pid, int dest_offset, int length)
          DRMA Put instruction.
 int bsp_qsize()
          BSMP instruction.
protected  void bsp_send(com.multicorebsp.core.BSP_INT_ARRAY.Wrapper source, int to)
          BSMP send instruction.
 void bsp_send(BSP_INT_ARRAY source, int to)
          BSMP send instruction.
 void bsp_send(int to)
          BSMP send instruction.
 void bsp_send(int[] source, int to)
          BSMP send instruction.
 void bsp_send(java.lang.Integer[] source, int to)
          BSMP send instruction.
 int[] getData()
          Method to get the raw array.
protected  void initialise(BSP_PROGRAM thread, int[] init)
           
 BSP_INT_ARRAY setData(int[] x)
          Method to set a new raw array source.
 void unregister()
          Removes all shared references.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

global

protected com.multicorebsp.core.BSP_GLOBAL<com.multicorebsp.core.BSP_INT_ARRAY.Wrapper> global
Reference to global instance.


pid

protected int pid
Processor ID corresponding to this array instance.

Constructor Detail

BSP_INT_ARRAY

public BSP_INT_ARRAY(BSP_PROGRAM thread,
                     int length)
Helper constructor. Creates an array and then calls the base constructor. Initialises the array with zeroes.

Parameters:
thread - Instance of BSP_PROGRAM corresponding to this global array.
length - Length of array.

BSP_INT_ARRAY

public BSP_INT_ARRAY(BSP_PROGRAM thread,
                     int length,
                     int default_value)
Helper constructor Creates an array and then calls the base constructor.

Parameters:
thread - Instance of BSP_PROGRAM corresponding to this global array.
length - Length of array.
default_value - Default value of each integer in the array.

BSP_INT_ARRAY

public BSP_INT_ARRAY(BSP_PROGRAM thread,
                     int[] init)
Base constructor.

Parameters:
thread - Instance of BSP_PROGRAM corresponding to this global array.
init - Initial array.
Method Detail

initialise

protected void initialise(BSP_PROGRAM thread,
                          int[] init)

getData

public int[] getData()
Method to get the raw array.

Returns:
The raw array local to the calling thread.

setData

public BSP_INT_ARRAY setData(int[] x)
Method to set a new raw array source.

Parameters:
x - The new array.
Returns:
A handle to this array (method chaining).

bsp_move

public void bsp_move()
Move a BSMP message from this global variable's queue. Warning: Since this is a raw array, items put in queue also represent arrays.

Specified by:
bsp_move in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>

bsp_qsize

public int bsp_qsize()
Description copied from class: BSP_GLOBAL_COMM
BSMP instruction. Reports the number of messages waiting in the local queue.

Specified by:
bsp_qsize in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Returns:
The number of messages in queue.

bsp_send

public void bsp_send(int to)
BSMP send instruction. Sends this array to this global array's queue at the target processor.

Note that the enqueued element will be available at the destination only after synchronisation.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
to - At which processor to perform the enqueue operation.

bsp_send

public void bsp_send(int[] source,
                     int to)
BSMP send instruction. Sends a given array to this global array's queue, at the given processor.

Note that the enqueued element will be available at the destination only after synchronisation.

Parameters:
source - The array to be enqueued.
to - At which processor to perform the enqueue operation.

bsp_send

public void bsp_send(java.lang.Integer[] source,
                     int to)
BSMP send instruction. Sends a given array to this global array's queue, at the given processor.

Note that the enqueued element will be available at the destination only after synchronisation.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
source - The array to be enqueued.
to - At which processor to perform the enqueue operation.

bsp_send

protected void bsp_send(com.multicorebsp.core.BSP_INT_ARRAY.Wrapper source,
                        int to)
BSMP send instruction. Sends a given array to this global array's queue, at the given processor.

Note that the enqueued element will be available at the destination only after synchronisation.

Parameters:
source - The array to be enqueued.
to - At which processor to perform the enqueue operation.

bsp_send

public void bsp_send(BSP_INT_ARRAY source,
                     int to)
BSMP send instruction. Sends a given array to this global array's queue, at the given processor.

Note that the enqueued element will be available at the destination only after synchronisation.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
source - The array to be enqueued.
to - At which processor to perform the enqueue operation.

bsp_put

public void bsp_put(int pid)
Description copied from class: BSP_GLOBAL_COMM
Put instruction. Copies the current variable (local to the current processor) to the current variable local to destination processor pid. This instruction buffers the to-be copied current elements here; this variable thus is free to change after calling this method.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
pid - The destination processor.

bsp_put

public void bsp_put(int pid,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
this[ 0, 1, ..., length-1 ] (local to current processor)
to this[ 0, 1, ..., length-1 ] (local to destination processor pid)
This instruction buffers the to-be copied current elements here; array elements thus are free to change after calling this put operation.

Note that the copied elements will be available at the destination only after synchronisation. Note that this is an alias for bsp_put( this, 0, pid, 0, length );

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
pid - Destination processor.
length - Elements to put.

bsp_put

public void bsp_put(int source_offset,
                    int pid,
                    int dest_offset,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
this[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to current processor)
to this[ destination_offset, ..., destination_offset+length-1 ] (local to destination processor pid)
This instruction buffers the to-be copied current elements here; array elements thus are free to change after calling this put operation.

Note that the copied elements will be available at the destination only after synchronisation. Note that this is an alias to
bsp_put( this, source_offset, pid, dest_offset, length );

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source_offset - Copy length items beginning at this[ source_offset ].
pid - Target processor ID of this put instruction.
dest_offset - Put items into destination starting at this[ destination_offset ] (at processor pid).
length - Put a total of length items in the row direction.

bsp_put

public void bsp_put(BSP_INT_ARRAY source,
                    int pid)
Description copied from class: BSP_GLOBAL_COMM
Put instruction. Copies the source variable (local to the current processor) to the this variable local to destination processor pid. This instruction buffers the to-be copied current elements here; this variable thus is free to change after calling this method.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
source - Source global variable.
pid - Destination processor.

bsp_put

public void bsp_put(BSP_INT_ARRAY source,
                    int pid,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
source[ 0, 1, ..., length-1 ] (local to current processor)
to this[ 0, 1, ..., length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; array elements thus are free to change after calling this put operation.

Note that the copied elements will be available at the destination only after synchronisation. Note that this is an alias for bsp_put( source, 0, pid, 0, length );

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - Where to write the (sub)array to.
pid - Target processor ID of this put instruction.
length - Put a total of length items in the row direction.

bsp_put

public void bsp_put(BSP_INT_ARRAY source,
                    int source_offset,
                    int destination_processor,
                    int destination_offset,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
source[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to current processor)
to this[ destination_offset, ..., destination_offset+length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; array elements thus are free to change after calling this put operation.

Note that the copied elements will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - Where to write the (sub)array to.
source_offset - Copy length items beginning at this[ source_offset ].
destination_processor - Target processor ID of this put instruction.
destination_offset - Put items into destination starting at destination[ dest_offset ].
length - Put a total of length items in the row direction.

bsp_put

public void bsp_put(java.lang.Integer[] source,
                    int pid)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
source[ 0, 1, ..., n-1 ] (local to current processor)
to
this[ 0, 1, ..., n-1 ] (local to destination processor 'pid'),
where n is the length of the source vector. This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - The array to put.
pid - At which processor to put the current variable.

bsp_put

public void bsp_put(java.lang.Integer[] source,
                    int pid,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
source[ 0, 1, ..., length-1 ] (local to current processor)
to
this[ 0, 1, ..., length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - The array to put.
pid - At which processor to put the current variable.
length - How many items to put.

bsp_put

public void bsp_put(java.lang.Integer[] data,
                    int source_offset,
                    int destination_processor,
                    int dest_offset,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies
source[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to current processor)
to
this[ dest_offset, ..., dest_offset+length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
data - The array to put.
source_offset - From which index on to put from the source array.
destination_processor - At which processor to put the current variable.
dest_offset - Put items into destination starting at destination[ dest_offset ].
length - How many items to put.

bsp_put

public void bsp_put(java.lang.Integer item,
                    int pid,
                    int dest_offset)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Put instruction. Copies a single value to this[ destination_index ], at destination processor pid. This instruction buffers the to-be copied current element here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Specified by:
bsp_put in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
item - The value to put.
pid - At which processor to put the current variable.
dest_offset - Put item into destination[ dest_offset ] at processor pid.

bsp_put

public void bsp_put(int[] data,
                    int pid)
DRMA Put instruction. Copies
source[ 0, 1, ..., n-1 ] (local to current processor)
to
this[ 0, 1, ..., n-1 ] (local to destination processor 'pid'),
where n is the length of the source vector. This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Parameters:
data - The array to put.
pid - At which processor to put the current variable.

bsp_put

public void bsp_put(int[] data,
                    int pid,
                    int length)
DRMA Put instruction. Copies
source[ 0, 1, ..., length-1 ] (local to current processor)
to
this[ 0, 1, ..., length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Parameters:
data - The array to put.
pid - At which processor to put the current variable.
length - How many items to put.

bsp_put

public void bsp_put(int[] data,
                    int source_offset,
                    int destination_processor,
                    int dest_offset,
                    int length)
DRMA Put instruction. Copies
source[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to current processor)
to
this[ dest_offset, ..., dest_offset+length-1 ] (local to destination processor 'pid')
This instruction buffers the to-be copied current elements here; the value variable thus is free to change after calling this put operation.

Note that the copied element will be available at the destination only after synchronisation.

Parameters:
data - The array to put.
source_offset - From which index on to put from the source array.
destination_processor - At which processor to put the current variable.
dest_offset - Put items into destination starting at destination[ dest_offset ].
length - How many items to put.

bsp_put

public void bsp_put(int item,
                    int destination_processor,
                    int destination_offset)

bsp_get

public void bsp_get(int pid)
Description copied from class: BSP_GLOBAL_COMM
Get instruction. Short for bsp_get( this, from );

Specified by:
bsp_get in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
pid - From which processor to get its variable.

bsp_get

public void bsp_get(int source_processor,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Get instruction. Gets
this[ 0, 1, ..., length-1 ] (local to source_processor)
and puts those contents in
this[ 0, 1, ..., length-1 ] (local to current processor)
This instruction does not buffer the elements to be retrieved as they are generally unavailable from this processor's perspective. Hence, those elements in the source vector at synchronisation time are the elements which will be copied to this array.

Note that this implies gets and puts are not necessarily freely interchangeable. Note that the retrieved element will be available at the destination only after synchronisation. Note that this is an alias for bsp_get( this, 0, pid, 0, length );

Specified by:
bsp_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source_processor - Processor to get the (partial) vector from.
length - Number of elements to retrieve in the row direction.

bsp_get

public void bsp_get(int pid,
                    int source_offset,
                    int dest_offset,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Get instruction. Gets
this[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to source_processor)
and puts those contents in
this[ destination_offset, ..., destination_offset+length-1 ] (local to current processor)
This instruction does not buffer the elements to be retrieved as they are generally unavailable from this processor's perspective. Hence, those elements in the source vector at synchronisation time are the elements which will be copied to this array.

Note that this implies gets and puts are not necessarily freely interchangeable. Note that the retrieved element will be available at the destination only after synchronisation. Note that this is an alias for bsp_get( this, source_offset, pid, dest_offset, length );

Specified by:
bsp_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
pid - Processor to get the (partial) array from.
source_offset - Get elements starting from source[ isource_offset ][..].
dest_offset - Copy elements into sub-array starting from destination[ idestination_offset ][..].
length - Number of elements to retrieve in the row direction.

bsp_get

public void bsp_get(BSP_INT_ARRAY source,
                    int pid)
Description copied from class: BSP_GLOBAL_COMM
Get instruction. Gets target source variable local to source processor pid, and puts those contents in this variable (local to current processor).

This instruction does not buffer the element to be got as those are generally unavailable from this processor's perspective. Hence, the element at the source variable's processor at synchronisation time is the element which will be copied to the current variable.

Note that gets and puts are not necessarily freely interchangeable. Note that the retrieved element will be available at the destination only after synchronisation.

Specified by:
bsp_get in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
source - From which global variable to get its contents.
pid - From which processor to get its variable.

bsp_get

public void bsp_get(BSP_INT_ARRAY source,
                    int source_processor,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Get instruction. Gets
source [ 0, 1, ..., length-1 ] (local to current processor)
and puts those contents in
this [ 0, 1, ..., length-1 ] (local to processor pid)
This instruction does not buffer the elements to be retrieved as they are generally unavailable from this processor's perspective. Hence, those elements in the source vector at synchronisation time are the elements which will be copied to this array.

Note that this implies gets and puts are not necessarily freely interchangeable. Note that the retrieved element will be available at the destination only after synchronisation. Note that this is an alias for bsp_get( source, 0, pid, 0, length );

Specified by:
bsp_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - From which global variable to get data.
source_processor - Processor to get the (partial) vector from.
length - Number of elements to retrieve in the row direction.

bsp_get

public void bsp_get(BSP_INT_ARRAY source,
                    int source_processor,
                    int source_offset,
                    int destination_offset,
                    int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Get instruction. Gets
source[ source_offset, source_offset+1, ..., source_offset+length-1 ] (local to source_processor)
and puts those contents in
this[ destination_offset, ..., destination_offset+length-1 ] (local to current processor)
This instruction does not buffer the elements to be retrieved as they are generally unavailable from this processor's perspective. Hence, those elements in the source vector at synchronisation time are the elements which will be copied to this array.

Note that this implies gets and puts are not necessarily freely interchangeable. Note that the retrieved element will be available at the destination only after synchronisation.

Specified by:
bsp_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - From which global variable to get data.
source_processor - Processor to get the (partial) vector from.
source_offset - Get elements starting from source[ isource_offset ][..].
destination_offset - Copy elements into sub-array starting from destination[ idestination_offset ][..].
length - Number of elements to retrieve in the row direction.

unregister

public void unregister()
Description copied from class: BSP_GLOBAL_COMM
Removes all shared references. Cannot be used afterwards.

Specified by:
unregister in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>

bsp_direct_get

public void bsp_direct_get(int pid)
Description copied from class: BSP_GLOBAL_COMM
Get instruction. Short for bsp_direct_get( this, from );

Specified by:
bsp_direct_get in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
pid - From which processor to get its variable.

bsp_direct_get

public void bsp_direct_get(int pid,
                           int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Direct get instruction. Like normal bsp_get, but direct & blocking.

Specified by:
bsp_direct_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
pid - Processor to get the (partial) vector from.
length - Number of elements to retrieve in the row direction.

bsp_direct_get

public void bsp_direct_get(int pid,
                           int source_offset,
                           int dest_offset,
                           int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Direct get instruction. Like normal bsp_get, but direct & blocking.

Specified by:
bsp_direct_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
pid - Processor to get the (partial) vector from.
source_offset - Get elements starting from source[ isource_offset ][..].
dest_offset - Copy elements into sub-array starting from destination[ idestination_offset ][..].
length - Number of elements to retrieve in the row direction.

bsp_direct_get

public void bsp_direct_get(BSP_INT_ARRAY source,
                           int pid)
Description copied from class: BSP_GLOBAL_COMM
Direct get instruction. Gets target source variable local to source processor pid, and puts those contents in this variable (local to current processor).
Does this immediately; communication does not wait for a sync, and this method blocks.

Specified by:
bsp_direct_get in class BSP_GLOBAL_COMM<java.lang.Integer[],BSP_INT_ARRAY>
Parameters:
source - From which global variable to get its contents.
pid - From which processor to get its variable.

bsp_direct_get

public void bsp_direct_get(BSP_INT_ARRAY source,
                           int pid,
                           int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Direct get instruction. Like normal bsp_get, but direct & blocking.

Specified by:
bsp_direct_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - From which global variable to get data.
pid - Processor to get the (partial) vector from.
length - Number of elements to retrieve in the row direction.

bsp_direct_get

public void bsp_direct_get(BSP_INT_ARRAY source,
                           int pid,
                           int source_offset,
                           int dest_offset,
                           int length)
Description copied from class: BSP_GLOBAL_ARR_COMM
DRMA Direct get instruction. Like normal bsp_get, but direct & blocking.

Specified by:
bsp_direct_get in class BSP_GLOBAL_ARR_COMM<java.lang.Integer,BSP_INT_ARRAY>
Parameters:
source - From which global variable to get data.
pid - Processor to get the (partial) vector from.
source_offset - Get elements starting from source[ isource_offset ][..].
dest_offset - Copy elements into sub-array starting from destination[ idestination_offset ][..].
length - Number of elements to retrieve in the row direction.