|
jbarrier | |||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
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. |
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:
Runnable
argument to the barrier constructors. Global
reductions may be realized in two different ways:
FloatButterflyReduction
). With a
reduction barrier, each thread hands its local value to the await() method of
the barrier and retrieves the result of the global reduction as a return
value as soon as the barrier is completed. Using one of these classes may do
the job in a number of use cases.
TournamentBarrier
) take an optional
argument of type GenericReductor
.
Using a generic reductor, arbitrary types of reductions (e.g., several
reductions in parallel during the same barrier) may be implemented.
|
jbarrier | |||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |