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