jbarrier

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

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.LongButterflyReduction
All Implemented Interfaces:
Barrier, LongReduction

public class LongButterflyReduction
extends ButterflyBarrier
implements LongReduction

Implementation of a butterfly barrier algorithm including a long 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
LongButterflyReduction(int numParties, ReductionOperator reductor)
          Constructor.
LongButterflyReduction(int numParties, java.lang.Runnable barrierAction, ReductionOperator reductor)
          Constructor.
 
Method Summary
 long await(int threadId, long 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

LongButterflyReduction

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

LongButterflyReduction

public LongButterflyReduction(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 long await(int threadId,
                  long value)
Called by a party that reaches the barrier.

Specified by:
await in interface LongReduction
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