com.multicorebsp.core
Class BSP_DOUBLE_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.Double,BSP_DOUBLE_ARRAY>
          extended by com.multicorebsp.core.BSP_DOUBLE_ARRAY

public class BSP_DOUBLE_ARRAY
extends BSP_GLOBAL_ARR_COMM<java.lang.Double,BSP_DOUBLE_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, as per BSP_GLOBAL_COMM and BSP_GLOBAL_ARR_COMM.
This class is to be used within the parallel part of an instance of a BSP_PROGRAM.

Since:
26th of November 2008
See Also:
BSP_REGISTER, BSP_PROGRAM

Field Summary
protected  com.multicorebsp.core.BSP_GLOBAL<com.multicorebsp.core.BSP_DOUBLE_ARRAY.Wrapper> global
          Reference to global instance.
protected  int pid
          Processor ID corresponding to this array instance.
 
Constructor Summary
BSP_DOUBLE_ARRAY(BSP_PROGRAM thread, double[] init)
          Base constructor.
BSP_DOUBLE_ARRAY(BSP_PROGRAM thread, int length)
          Helper constructor.
BSP_DOUBLE_ARRAY(BSP_PROGRAM thread, int length, double default_value)
          Helper constructor Creates an array and then calls the base constructor.
 
Method Summary
 void bsp_direct_get(BSP_DOUBLE_ARRAY source, int pid)
          Direct get instruction.
 void bsp_direct_get(BSP_DOUBLE_ARRAY source, int pid, int length)
          DRMA Direct get instruction.
 void bsp_direct_get(BSP_DOUBLE_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_DOUBLE_ARRAY source, int pid)
          Get instruction.
 void bsp_get(BSP_DOUBLE_ARRAY source, int pid, int length)
          DRMA Get instruction.
 void bsp_get(BSP_DOUBLE_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 pid, int length)
          DRMA Get instruction.
 void bsp_get(int source_offset, int pid, 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_DOUBLE_ARRAY source, int pid)
          Put instruction.
 void bsp_put(BSP_DOUBLE_ARRAY source, int pid, int length)
          DRMA Put instruction.
 void bsp_put(BSP_DOUBLE_ARRAY source, int source_offset, int destination_processor, int destination_offset, int length)
          DRMA Put instruction.
 void bsp_put(double[] source, int pid)
           
 void bsp_put(java.lang.Double[] source, int pid)
          DRMA Put instruction.
 void bsp_put(double[] data, int destination_processor, int length)
           
 void bsp_put(java.lang.Double[] source, int pid, int length)
          DRMA Put instruction.
 void bsp_put(double[] data, int source_offset, int destination_processor, int destination_offset, int length)
           
 void bsp_put(java.lang.Double[] data, int source_offset, int destination_processor, int destination_offset, int length)
          DRMA Put instruction.
 void bsp_put(double item, int destination_processor, int destination_offset)
           
 void bsp_put(java.lang.Double item, int pid, int dest_offset)
          DRMA Put instruction.
 void bsp_put(int pid)
          Put instruction.
 void bsp_put(int pid, int length)
          DRMA Put instruction.
 void bsp_put(int source_offset, int destination_processor, int destination_offset, int length)
          DRMA Put instruction.
 int bsp_qsize()
          BSMP instruction.
 void bsp_send(BSP_DOUBLE_ARRAY source, int to)
          BSMP instruction.
 void bsp_send(double[] source, int to)
           
 void bsp_send(java.lang.Double[] source, int to)
          BSMP instruction.
 void bsp_send(int to)
          Bulk-synchronous message passing (BSMP) instruction.
 double[] getData()
          Method to get the raw array.
protected  void initialise(BSP_PROGRAM thread, double[] init)
           
 BSP_DOUBLE_ARRAY setData(double[] 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_DOUBLE_ARRAY.Wrapper> global
Reference to global instance.


pid

protected int pid
Processor ID corresponding to this array instance.

Constructor Detail

BSP_DOUBLE_ARRAY

public BSP_DOUBLE_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_DOUBLE_ARRAY

public BSP_DOUBLE_ARRAY(BSP_PROGRAM thread,
                        int length,
                        double 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_DOUBLE_ARRAY

public BSP_DOUBLE_ARRAY(BSP_PROGRAM thread,
                        double[] 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,
                          double[] init)

getData

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

Returns:
The raw array local to the calling thread.

setData

public BSP_DOUBLE_ARRAY setData(double[] 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.

Specified by:
bsp_move in class BSP_GLOBAL_COMM<java.lang.Double[],BSP_DOUBLE_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.Double[],BSP_DOUBLE_ARRAY>
Returns:
The number of messages in queue.

bsp_send

public void bsp_send(int to)
Description copied from class: BSP_GLOBAL_COMM
Bulk-synchronous message passing (BSMP) instruction. Sends the caption of this shared variable to the message queue of the thread with the given ID.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Double[],BSP_DOUBLE_ARRAY>
Parameters:
to - The ID of the receiving thread.

bsp_send

public void bsp_send(double[] source,
                     int to)

bsp_send

public void bsp_send(java.lang.Double[] source,
                     int to)
Description copied from class: BSP_GLOBAL_COMM
BSMP instruction. Sends the given object to the message queue of the thread with the given ID.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Double[],BSP_DOUBLE_ARRAY>
Parameters:
source - The object to send.
to - The ID of the receiving thread.

bsp_send

public void bsp_send(BSP_DOUBLE_ARRAY source,
                     int to)
Description copied from class: BSP_GLOBAL_COMM
BSMP instruction. Sends the given object to the message queue of the thread with the given ID.

Specified by:
bsp_send in class BSP_GLOBAL_COMM<java.lang.Double[],BSP_DOUBLE_ARRAY>
Parameters:
source - The object to send.
to - The ID of the receiving thread.

bsp_get

public void bsp_get(BSP_DOUBLE_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.Double,BSP_DOUBLE_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.

bsp_get

public void bsp_get(int pid,
                    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.Double,BSP_DOUBLE_ARRAY>
Parameters:
pid - Processor to get the (partial) vector from.
length - Number of elements to retrieve in the row direction.

bsp_get

public void bsp_get(int source_offset,
                    int pid,
                    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.Double,BSP_DOUBLE_ARRAY>
Parameters:
source_offset - Processor to get the (partial) array from.
pid - 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_DOUBLE_ARRAY source,
                    int pid,
                    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.Double,BSP_DOUBLE_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_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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
pid - From which processor to get its variable.

bsp_get

public void bsp_get(BSP_DOUBLE_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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
source - From which global variable to get its contents.
pid - From which processor to get its variable.

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.Double,BSP_DOUBLE_ARRAY>
Parameters:
pid - Destination processor.
length - Elements to put.

bsp_put

public void bsp_put(BSP_DOUBLE_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.Double,BSP_DOUBLE_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(java.lang.Double[] 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.Double,BSP_DOUBLE_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(double[] data,
                    int destination_processor,
                    int length)

bsp_put

public void bsp_put(java.lang.Double[] data,
                    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[ 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.Double,BSP_DOUBLE_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.
destination_offset - Put items into destination starting at destination[ dest_offset ].
length - How many items to put.

bsp_put

public void bsp_put(double[] data,
                    int source_offset,
                    int destination_processor,
                    int destination_offset,
                    int length)

bsp_put

public void bsp_put(BSP_DOUBLE_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.Double,BSP_DOUBLE_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(int source_offset,
                    int destination_processor,
                    int destination_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.Double,BSP_DOUBLE_ARRAY>
Parameters:
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 this[ destination_offset ] (at processor pid).
length - Put a total of length items in the row direction.

bsp_put

public void bsp_put(java.lang.Double 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.Double,BSP_DOUBLE_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(double item,
                    int destination_processor,
                    int destination_offset)

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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
pid - The destination processor.

bsp_put

public void bsp_put(BSP_DOUBLE_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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
source - Source global variable.
pid - Destination processor.

bsp_put

public void bsp_put(java.lang.Double[] 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.Double,BSP_DOUBLE_ARRAY>
Parameters:
source - The array to put.
pid - At which processor to put the current variable.

bsp_put

public void bsp_put(double[] source,
                    int pid)

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.Double[],BSP_DOUBLE_ARRAY>

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.Double,BSP_DOUBLE_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.Double,BSP_DOUBLE_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_DOUBLE_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.Double,BSP_DOUBLE_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_DOUBLE_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.Double,BSP_DOUBLE_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.

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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
pid - From which processor to get its variable.

bsp_direct_get

public void bsp_direct_get(BSP_DOUBLE_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.Double[],BSP_DOUBLE_ARRAY>
Parameters:
source - From which global variable to get its contents.
pid - From which processor to get its variable.