jbarrier

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

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

public class LongDisseminationReduction
extends DisseminationBarrier
implements LongReduction

Implementation of a dissemination 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.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
LongDisseminationReduction(int numParties, ReductionOperator reductor)
          Constructor.
LongDisseminationReduction(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.DisseminationBarrier
await
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LongDisseminationReduction

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

LongDisseminationReduction

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