appl.parallel.spmd
Interface AdvancedSPMDClientInterface

All Superinterfaces:
SPMDClientInterface
All Known Implementing Classes:
AdvancedSPMDClientController

public interface AdvancedSPMDClientInterface
extends SPMDClientInterface

This class extends the SPMDClientInterface with additional features for performance tuning. You can merge partitions in background (so that the not very cpu-intensive communication can happen during extensive calculations).

Author:
Dominik Appl

Method Summary
 void mergeMultiData(MultiDataObject multidata, int idx, SyncPoint s)
          Merges like SPMDClientController.mergeMultiData(MultiDataObject, int).
 void mergeMultiData(MultiDataObject multidata, int idx, SyncPoint s, PrintStream stream, String message)
          Merges like SPMDClientController.mergeMultiData(MultiDataObject, int).
 void mergePartition(Object partition, SyncPoint s)
          Merges like SPMDClientController.mergePartition(int), but in a separate thread, so that communication does not block computation.
 void mergePartition(Object partition, SyncPoint s, PrintStream stream, String message)
          Same functionality as mergePartition(Object, SyncPoint), gives a message to the given PrintStream
 void synchronizeToSyncPoint(SyncPoint s)
          Waits until the Thread with the specified SyncPoint finishes.
 
Methods inherited from interface appl.parallel.spmd.SPMDClientInterface
addBaseParameter, addBaseParameters, addToMultiDataSplitControl, addToMultiDataSplitControl, addToSplitControl, mergeAllPartitions, mergeMultiData, mergeMultiData, mergePartition, mergePartition, runSPMDModelTask, setBoxingMode, setNeighborhoodRange, setReferenceResource, updateNeighborhood, updateNeighborhood
 

Method Detail

mergePartition

void mergePartition(Object partition,
                    SyncPoint s)
Merges like SPMDClientController.mergePartition(int), but in a separate thread, so that communication does not block computation. See also synchronization points

Parameters:
partition - the partition to be merged (must be splittable)
s - a syncpoint

mergeMultiData

void mergeMultiData(MultiDataObject multidata,
                    int idx,
                    SyncPoint s)
Merges like SPMDClientController.mergeMultiData(MultiDataObject, int). But allows also synchronization points

Parameters:
multidata - the multidataobject
idx - the partition of the MultiDataObject to be merged
s - a SyncPoint

mergePartition

void mergePartition(Object partition,
                    SyncPoint s,
                    PrintStream stream,
                    String message)
Same functionality as mergePartition(Object, SyncPoint), gives a message to the given PrintStream

Parameters:
partition - the partition to merge
s - a SyncPoint
stream - the message is given out to this stream (or null for no message)
message - the message to be displayed when finished (or null for no message)
See Also:
mergeMultiData(MultiDataObject, int, SyncPoint)

mergeMultiData

void mergeMultiData(MultiDataObject multidata,
                    int idx,
                    SyncPoint s,
                    PrintStream stream,
                    String message)
Merges like SPMDClientController.mergeMultiData(MultiDataObject, int). But allows also synchronization points. At the end of the merge a message is given to the provided PrintStream.

Parameters:
multidata - the multidataobject
idx - the partition of the MultiDataObject to be merged
s - a SyncPoint
stream - the message is given out to this stream (or null for no message)
message - the message to be diplayed when finished (or null for no message)

synchronizeToSyncPoint

void synchronizeToSyncPoint(SyncPoint s)
Waits until the Thread with the specified SyncPoint finishes. After that the Thread is removed. A second thread which synchronizes to the same Point will directly continue.

Parameters:
s - the SyncPoint
Throws:
UnsupportedOperationException - if the SyncPoint does not exist and has never existed