jbarrier

edu.bonn.cs.net.jbarrier.barrier
Class DoubleDisseminationReduction

java.lang.Object
  extended by edu.bonn.cs.net.jbarrier.barrier.AbstractBarrier
      extended by edu.bonn.cs.net.jbarrier.barrier.DisseminationBarrier
          extended by edu.bonn.cs.net.jbarrier.barrier.DoubleDisseminationReduction
All Implemented Interfaces:
Barrier, DoubleReduction

public class DoubleDisseminationReduction
extends DisseminationBarrier
implements DoubleReduction

Implementation of a dissemination barrier algorithm including a double reduction.

Version:
1.0
Author:
Patrick Peschlow, Ivan Castilla Rodriguez

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.bonn.cs.net.jbarrier.barrier.DisseminationBarrier
DisseminationBarrier.DisseminationBarrierParty
 
Field Summary
 
Fields inherited from class edu.bonn.cs.net.jbarrier.barrier.DisseminationBarrier
flagOut_, numRounds_
 
Fields inherited from class edu.bonn.cs.net.jbarrier.barrier.AbstractBarrier
action_, genericReductor_, numParties_
 
Constructor Summary
DoubleDisseminationReduction(int numParties, ReductionOperator reductor)
          Constructor.
DoubleDisseminationReduction(int numParties, java.lang.Runnable barrierAction, ReductionOperator reductor)
          Constructor.
 
Method Summary
 double await(int threadId, double value)
          Called by a party that reaches the barrier.
protected  void setUpParties()
          Sets up the parties array required for this reduction subclass.
 
Methods inherited from class edu.bonn.cs.net.jbarrier.barrier.DisseminationBarrier
await
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DoubleDisseminationReduction

public DoubleDisseminationReduction(int numParties,
                                    java.lang.Runnable barrierAction,
                                    ReductionOperator reductor)
Constructor.

Parameters:
numParties - the number of parties that must reach the barrier before the barrier is tripped
barrierAction - the command to execute when the barrier is tripped, or null if there is no action
reductor - the reduction operator to use
Throws:
java.lang.IllegalArgumentException - if numParties is not a power of two

DoubleDisseminationReduction

public DoubleDisseminationReduction(int numParties,
                                    ReductionOperator reductor)
Constructor.

Parameters:
numParties - the number of parties that must reach the barrier before the barrier is tripped
reductor - the reduction operator to use
Throws:
java.lang.IllegalArgumentException - if numParties is not a power of two
Method Detail

setUpParties

protected void setUpParties()
Sets up the parties array required for this reduction subclass.

Overrides:
setUpParties in class DisseminationBarrier

await

public double await(int threadId,
                    double value)
Called by a party that reaches the barrier.

Specified by:
await in interface DoubleReduction
Parameters:
threadId - the ID of the party
value - the value subject to the reduction
Returns:
the result of the reduction

jbarrier

Copyright 2010 Patrick Peschlow