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.