jbarrier

Package edu.bonn.cs.net.jbarrier.barrier

Main package containing all the barrier and reduction algorithms.

See:
          Description

Interface Summary
Barrier Interface for all barrier implementations of this package.
DoubleReduction Interface for barriers supporting primitive double reductions.
FloatReduction Interface for barriers supporting primitive float reductions.
GenericReductor Interface for generic reductors.
IntReduction Interface for barriers supporting primitive int reductions.
LongReduction Interface for barriers supporting primitive long reductions.
 

Class Summary
AbstractBarrier Abstract base class for all barrier implementations of this package.
ButterflyBarrier Implementation of a butterfly barrier algorithm.
CentralBarrier Implementation of a central barrier algorithm based on a shared counter.
DisseminationBarrier Implementation of a dissemination barrier algorithm.
DoubleButterflyReduction Implementation of a butterfly barrier algorithm including a double reduction.
DoubleCentralReduction Implementation of a central barrier algorithm including a double reduction.
DoubleDisseminationReduction Implementation of a dissemination barrier algorithm including a double reduction.
DoubleStaticTreeReduction Implementation of a static tree barrier algorithm including a double reduction.
DoubleTournamentReduction Implementation of a tournament barrier algorithm including a double reduction.
FloatButterflyReduction Implementation of a butterfly barrier algorithm including a float reduction.
FloatCentralReduction Implementation of a central barrier algorithm including a float reduction.
FloatDisseminationReduction Implementation of a dissemination barrier algorithm including a float reduction.
FloatStaticTreeReduction Implementation of a static tree barrier algorithm including a float reduction.
FloatTournamentReduction Implementation of a tournament barrier algorithm including a float reduction.
IntButterflyReduction Implementation of a butterfly barrier algorithm including a int reduction.
IntCentralReduction Implementation of a central barrier algorithm including a int reduction.
IntDisseminationReduction Implementation of a dissemination barrier algorithm including a int reduction.
IntStaticTreeReduction Implementation of a static tree barrier algorithm including a int reduction.
IntTournamentReduction Implementation of a tournament barrier algorithm including a int reduction.
LongButterflyReduction Implementation of a butterfly barrier algorithm including a long reduction.
LongCentralReduction Implementation of a central barrier algorithm including a long reduction.
LongDisseminationReduction Implementation of a dissemination barrier algorithm including a long reduction.
LongStaticTreeReduction Implementation of a static tree barrier algorithm including a long reduction.
LongTournamentReduction Implementation of a tournament barrier algorithm including a long reduction.
ReductionOperator Abstract base class for reduction operators.
ReductionOperator.MaximumReduction Maximum reduction operator.
ReductionOperator.MinimumReduction Minimum reduction operator.
ReductionOperator.SumReduction Sum reduction operator.
StaticTreeBarrier Implementation of a static tree barrier algorithm.
TournamentBarrier Implementation of a tournament barrier algorithm.
TournamentBarrier.Round Stores pre-computed information about a round of the tournament barrier.
 

Enum Summary
TournamentBarrier.Role Possible roles of the different parties in the tournament barrier.
 

Package edu.bonn.cs.net.jbarrier.barrier Description

Main package containing all the barrier and reduction algorithms. A barrier is a construct for synchronizing a number of threads, usually after they have performed some computation in parallel. When a thread reaches the barrier, it waits until all other threads have reached the barrier as well. As soon as all threads have reached the barrier, they are released again and start the next parallel computation.

There are various well-known ways to implement the functionality of a barrier. Currently, this package includes five different barrier algorithms: a barrier based on a single shared counter (central barrier) and four tree-based barriers (butterfly barrier, dissemination barrier, static tree barrier, tournament barrier). With increasing numbers of threads, tree-based barriers offer higher scalability than a central barrier.

In addition to pure thread synchronization, the barriers of this package have two important features:

  1. Support for an optional barrier action that is executed when all threads have reached the barrier, but before they are released again.
  2. Support for a global reduction, e.g. computing the minimum of a number of numerical values contributed by the threads when they reach the barrier.
A barrier action may simply be specified as an optional Runnable argument to the barrier constructors. Global reductions may be realized in two different ways:


jbarrier

Copyright 2010 Patrick Peschlow