37#ifndef __PARA_TASK_H__
38#define __PARA_TASK_H__
95 int inGlobalSubtreeIdInLc,
213 std::ostringstream s;
356 std::ostringstream s;
597 double inEstimatedValue,
730 const int globalSubtaskIdInLc
844 double inEstimatedValue
900 std::map< TaskId, ParaTaskGenealogicalPtrPtr >::iterator pos;
914 std::cout <<
"Descendant TaskId = " << localPtrDescendant->
getTaskId().
toString() << std::endl;
987 gzstream::ogzstream &out
999 std::ostringstream s;
1018 std::ostringstream s;
Base class of communicator object.
Class for the difference between instance and subproblem.
virtual const std::string toString()=0
stringfy ParaDiffSubproblem object ( for debugging )
class ParaTaskGenealogicalLocalPtr
ParaTask * paraTaskPtr
pointer to ParaTask
ParaTaskGenealogicalLocalPtr()
default constructor
~ParaTaskGenealogicalLocalPtr()
destructor
ParaTask * getPointerValue()
getter for ParaTask pointer
int getType()
getter of pointer type
ParaTaskGenealogicalLocalPtr(TaskId taskId, ParaTask *ptr)
constructor
class of pointer to indicate a ParaTask genealogical relation
virtual int getType()=0
getter type which indicate the pointer is local or remote
ParaTaskGenealogicalPtr(TaskId taskId)
constructor
TaskId genealogicalTaskId
descendant TaskId or ascendant TaskId
TaskId getTaskId()
getter of genealogicaltaskId
virtual ~ParaTaskGenealogicalPtr()
destructor
class ParaTaskGenealogicalRemotePtr
ParaTaskGenealogicalRemotePtr()
default constructor
int transferringLcId
LoadCoordinator id that transfers to or is transferred from.
~ParaTaskGenealogicalRemotePtr()
destructor
int getPointerValue()
getter of the pointer value
ParaTaskGenealogicalRemotePtr(TaskId taskId, int lcId)
constructor
int getType()
getter of pointer type
ParaTask(TaskId inTaskId, TaskId inGeneratorTaskId, double inEstimatedValue, ParaDiffSubproblem *inDiffSubproblem)
constructor
bool isRootTask()
check if root task or not
void setEstimatedValue(double inEstimatedValue)
setter of estimated value
virtual int bcast(ParaComm *comm, int root)=0
broadcast this object
bool isSameParetntTaskSubtaskIdAs(const TaskId &inTaskId)
check if this task's parent subtree id is the same as that of argument ParaTask's task id
void setGeneratorTaskId(TaskId inGeneratorTaskId)
setter of generator task id
ParaTask(const ParaTask ¶Task)
copy constructor
bool isSameGlobalSubtaskIdInLcAs(const int globalSubtaskIdInLc)
check if this task's global subtask id in LC is the same as that of argument
TaskId getGeneratorTaskId()
getter of generator task id
void setTaskId(TaskId inTaskId)
setter of task id
int diffSubproblemInfo
1: with diffSubproblem, 0: no diffSubproblem
void setSolverId(int id)
setter of Solver id
ParaDiffSubproblem * diffSubproblem
difference between solving instance data and subproblem data
bool isSameTaskIdAs(const ParaTask &inTask)
check if this task id is the same as argument ParaTask's task id
std::map< TaskId, ParaTaskGenealogicalPtrPtr > descendants
collection of pointers to descendants : This filed is not transferred
TaskId taskId
solving task information
bool hasDescendant()
check if this task has descendant or not
virtual void write(gzstream::ogzstream &out)=0
write to checkpoint file
ParaTaskGenealogicalPtr * ancestor
pointer to ancestor ParaTask : This field is not transferred
bool isSameLcIdAs(const ParaTask &inTask)
check if this task's global subtask id in LC is the same as that of argument ParaTask's task id
void setDiffSubproblem(ParaDiffSubproblem *inDiffSubproblem)
setter of diffSubproblem */
void removeDescendant(TaskId removeTaskId)
remove a descendant
virtual int send(ParaComm *comm, int destination)=0
send this object
double estimatedValue
estimate value
void addDescendant(ParaTaskGenealogicalPtr *inDescendant)
add a descendant
virtual int receive(ParaComm *comm, int source)=0
receive this object
virtual ~ParaTask()
destructor
bool isSameGlobalSubtaskIdInLcAs(const ParaTask &inTask)
check if this task's global subtask id in LC is the same as that of argument ParaTask's task id
int getGlobalSubtaskIdInLc()
getter of global subtask id in Solvers managed by LoadCoordinator
void setAncestor(ParaTaskGenealogicalPtr *inAncestor)
setter of ancestor
int getLcId()
getter of LoadCoordinator id
virtual ParaTask * clone(ParaComm *comm)=0
clone this ParaTask
bool isSameLcIdAs(const int lcId)
check if this task's global subtask LC id is the same as LC id of argument
TaskId generatorTaskId
subtree root task id of generator
int getSolverId()
getter of Solver id
bool isSameParetntTaskIdAs(const ParaTask &inTask)
check if this task's parent id is the same as that of argument ParaTask's task id
virtual const std::string toString()
stringfy ParaTask
void setGlobalSubtaskId(int lcId, int subtaskId)
setter of global subtask id
TaskId getTaskId()
getter of task id
ParaTaskGenealogicalPtr * getAncestor()
getter of ancestor
bool isSameSubtaskIdAs(const ParaTask &inTask)
check if this task's subtask id is the same as that of argument ParaTask's task id
virtual const std::string toSimpleString()
stringfy ParaTask as simple string
ParaDiffSubproblem * getDiffSubproblem()
getter of diffSubproblem
double getEstimatedValue()
getter of estimated value
ParaTask()
default constructor
SubtaskId(const SubtaskId &subtreeId)
copy constructor
int getGlobalSubtreeIdInLc() const
getter of global subtree id in Solvers managed by the LoadCoordinator
int globalSubtaskIdInLc
Global Subtask ID in Solvers managed by LoadCoordinator.
SubtaskId(int inLcId, int inGlobalSubtreeIdInLc, int inSolverId)
constructor
bool operator==(const SubtaskId &inSid) const
== operator definition
int lcId
LoadCoordinator ID.
bool operator<(const SubtaskId &inSid) const
< operator definition
int getSolverId() const
getter of Solver id
bool operator!=(const SubtaskId &inSid) const
!= operator definition
SubtaskId & operator=(const UG::SubtaskId &subTreeId)
= operator definition
int getLcId() const
getter of LoadCoordinator id
std::string toString()
Stringfy SubtreeId.
SubtaskId()
default constructor
long long seqNum
sequential number in the subtree
TaskId(const TaskId &taskId)
copy constructor
TaskId(SubtaskId inSubtreeId, int inSeqNum)
constructor
SubtaskId getSubtaskId() const
getter of subtask id
TaskId & operator=(const UG::TaskId &taskId)
= operator definition
TaskId()
default constructor
SubtaskId subtaskId
subtree id
bool operator!=(const TaskId &inNid) const
!= operator definition
std::string toString()
stringfy task id
long long getSeqNum() const
getter of sequence number
bool operator<(const TaskId &inNid) const
< operator definition
bool operator==(const TaskId &inNid) const
== operator definition
static ScipParaCommTh * comm
Utilities for handling gzipped input and output streams.
ParaTaskGenealogicalPtr * ParaTaskGenealogicalPtrPtr
static const int ParaTaskLocalPtr
static const int ParaTaskRemotePtr
Base class of communicator for UG Framework.
Defines for UG Framework.
#define THROW_LOGICAL_ERROR1(msg1)
Base class for a container which has difference between instance and subproblem.