jbarrier

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

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

public class DoubleButterflyReduction
extends ButterflyBarrier
implements DoubleReduction

Implementation of a butterfly 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.ButterflyBarrier
ButterflyBarrier.ButterflyBarrierParty
 
Field Summary
 
Fields inherited from class edu.bonn.cs.net.jbarrier.barrier.ButterflyBarrier
flagOut_, numRounds_
 
Fields inherited from class edu.bonn.cs.net.jbarrier.barrier.AbstractBarrier
action_, genericReductor_, numParties_
 
Constructor Summary
DoubleButterflyReduction(int numParties, ReductionOperator reductor)
          Constructor.
DoubleButterflyReduction(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.ButterflyBarrier
await
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DoubleButterflyReduction

public DoubleButterflyReduction(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

DoubleButterflyReduction

public DoubleButterflyReduction(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 ButterflyBarrier

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