37#ifndef __PARA_SOLVER_POOL_H__ 
   38#define __PARA_SOLVER_POOL_H__ 
   50class ParaSolverPoolElement;
 
   55#define SOLVER_POOL_INDEX( rank )   ( rank - originRank ) 
Base class of communicator object.
 
virtual int getSize()=0
get number of UG processes or UG threads depending on run-time environment
 
class for deterministic timer
 
class ParaRacingSolverPool (Racing Solver Pool)
 
int originRank
origin rank of Solvers managed by this Solver pool
 
ParaParamSet * paraParams
runtime parameters for parallelization
 
ParaComm * paraComm
communicator
 
virtual ParaTask * getCurrentTask(int rank)=0
get root ParaTask object of the Solver specified
 
int getWinner()
get winner Solver rank
 
int nSolvers
number of Solvers
 
ParaTimer * paraTimer
timer used
 
ParaRacingSolverPool(int inOriginRank, ParaComm *inParaComm, ParaParamSet *inParaParams, ParaTimer *inParaTimer, ParaDeterministicTimer *inParaDetTimer)
constructor
 
virtual ~ParaRacingSolverPool()
destructor
 
virtual bool isSolverActive(int rank)=0
check if the specified Solver is active or not
 
std::size_t getNSolvers()
get number of Solvers in this Solver pool
 
int winnerRank
winner rank of racing ramp-up, -1: not decided yet
 
virtual std::size_t getNumInactiveSolvers()=0
get number of inactive Solvers
 
virtual std::size_t getNumActiveSolvers()=0
get number of active Solvers
 
ParaDeterministicTimer * paraDetTimer
deterministic timer used
 
class ParaSolverPool (Solver Pool base class)
 
int originRank
origin rank of Solvers managed by this Solver pool
 
ParaParamSet * paraParams
runtime parameters for parallelization
 
ParaComm * paraComm
communicator
 
virtual ParaTask * getCurrentTask(int rank)=0
get current solving ParaTask in the Solver specified by rank
 
virtual void interruptRequested(int rank)=0
set the Solver specified by rank is interrupt requested
 
ParaSolverPool(int inOriginRank, ParaComm *inParaComm, ParaParamSet *inParaParams, ParaTimer *inParaTimer)
constructor
 
virtual bool isInterruptRequested(int rank)=0
check if the Solver specified by rank is interrupt requested or not
 
std::size_t nSolvers
number of Solvers
 
virtual bool isTerminateRequested(int rank)=0
check if the Solver specified by rank is terminate requested or not
 
ParaTimer * paraTimer
timer
 
virtual void terminateRequested(int rank)=0
set the Solver specified by rank is terminate requested
 
virtual void terminated(int rank)=0
set the Solver specified by rank is terminated
 
virtual ~ParaSolverPool()
destructor
 
virtual bool isSolverActive(int rank)=0
check if the Solver specified by rank is active or not
 
virtual bool isTerminated(int rank)=0
check if the Solver specified by rank is terminated or not
 
std::size_t getNSolvers()
get number of Solvers in this Solver pool
 
virtual std::size_t getNumInactiveSolvers()=0
get number of inactive Solvers
 
virtual std::size_t getNumActiveSolvers()=0
get number of active Solvers
 
ParaSolverPoolElement * ParaSolverPoolElementPtr
 
Base class for deterministic timer.
 
Base class for racing ramp-up parameter set.
 
This class contains solver termination state which is transferred form Solver to LC.