class to build optimization loops More...
#include <SalomeOptimizerLoop.hxx>
Public Member Functions | |
SalomeOptimizerLoop (const std::string &name, const std::string &algLibWthOutExt, const std::string &symbolNameToOptimizerAlgBaseInstanceFactory, bool algInitOnFile, bool initAlgo=true, Proc *procForTypes=NULL) | |
SalomeOptimizerLoop (const SalomeOptimizerLoop &other, ComposedNode *father, bool editionOnly) | |
~SalomeOptimizerLoop () | |
virtual std::string | typeName () |
Public Member Functions inherited from YACS::ENGINE::OptimizerLoop | |
OptimizerLoop (const std::string &name, const std::string &algLibWthOutExt, const std::string &symbolNameToOptimizerAlgBaseInstanceFactory, bool algInitOnFile, bool initAlgo=true, Proc *procForTypes=NULL) | |
OptimizerLoop (const OptimizerLoop &other, ComposedNode *father, bool editionOnly) | |
~OptimizerLoop () | |
void | init (bool start=true) |
void | exUpdateState () |
Update the node state. More... | |
int | getNumberOfInputPorts () const |
InputPort * | edGetPortForOutPool () |
InputPort * | edGetAlgoInitPort () |
OutputPort * | edGetAlgoResultPort () |
InputPort * | getInputPort (const std::string &name) const throw (Exception) |
Get an input port given its name. More... | |
std::list< InputPort * > | getSetOfInputPort () const |
std::list< InputPort * > | getLocalInputPorts () const |
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More... | |
void | selectRunnableTasks (std::vector< Task * > &tasks) |
void | getReadyTasks (std::vector< Task * > &tasks) |
YACS::Event | updateStateOnFinishedEventFrom (Node *node) |
void | checkNoCyclePassingThrough (Node *node) throw (Exception) |
virtual void | accept (Visitor *visitor) |
virtual std::string | getSymbol () const |
virtual std::string | getAlgLib () const |
Return the name of the algorithm library. More... | |
virtual void | setAlgorithm (const std::string &alglib, const std::string &symbol, bool checkLinks=true, Proc *procForTypes=NULL) |
Set the algorithm library name and factory name (symbol in library) to create the algorithm and change it if the node is not connected. More... | |
virtual void | checkBasicConsistency () const throw (Exception) |
Check validity for the node. More... | |
int | getNumberOfOutputPorts () const |
std::list< OutputPort * > | getSetOfOutputPort () const |
std::list< OutputPort * > | getLocalOutputPorts () const |
redefined on derived class of ComposedNode. by default a ComposedNode has no port by itself More... | |
OutPort * | getOutPort (const std::string &name) const throw (Exception) |
OutputPort * | getOutputPort (const std::string &name) const throw (Exception) |
Get an output port given its name. More... | |
YACS::Event | finalize () |
Public Member Functions inherited from YACS::ENGINE::DynParaLoop | |
Node * | edRemoveNode () |
Node * | edRemoveInitNode () |
Node * | edRemoveFinalizeNode () |
Node * | edSetNode (Node *DISOWNnode) |
Node * | edSetInitNode (Node *DISOWNnode) |
Node * | edSetFinalizeNode (Node *DISOWNnode) |
virtual bool | edAddDFLink (OutPort *start, InPort *end) throw (Exception) |
Connect an OutPort to an InPort and add control link if necessary. More... | |
InputPort * | edGetNbOfBranchesPort () |
unsigned | getNumberOfEltsConsumed () const |
int | getBranchIDOfNode (Node *node) const |
OutputPort * | edGetSamplePort () |
bool | isPlacementPredictableB4Run () const |
For the moment false is returned : impovement about it coming soon. More... | |
void | edRemoveChild (Node *node) throw (Exception) |
Remove a child node. More... | |
virtual bool | edAddChild (Node *DISOWNnode) throw (Exception) |
std::list< Node * > | edGetDirectDescendants () const |
unsigned | getNumberOfBranchesCreatedDyn () const throw (Exception) |
Node * | getChildByShortName (const std::string &name) const throw (Exception) |
Node * | getChildByNameExec (const std::string &name, unsigned id) const throw (Exception) |
std::vector< Node * > | getNodes () const |
bool | isMultiplicitySpecified (unsigned &value) const |
void | forceMultiplicity (unsigned value) |
virtual std::string | getErrorReport () |
returns a string that contains an error report if the node is in error More... | |
Node * | getInitNode () |
Node * | getExecNode () |
Node * | getFinalizeNode () |
int | getMaxLevelOfParallelism () const |
Public Member Functions inherited from YACS::ENGINE::ComposedNode | |
virtual | ~ComposedNode () |
bool | isFinished () |
virtual void | resetState (int level) |
Reset the state of the node and its children depending on the parameter level. More... | |
std::string | getName () const |
std::string | getTaskName (Task *task) const |
DeploymentTree | getDeploymentTree () const |
Essentially for test. Use checkDeploymentTree instead to be sure that returned DeploymentTree is consistent. More... | |
DeploymentTree | checkDeploymentTree (bool deep) const throw (Exception) |
Perform check of deployment consistency of the current graph. More... | |
std::vector< Task * > | getNextTasks (bool &isMore) |
void | notifyFrom (const Task *sender, YACS::Event event, const Executor *execInst) |
Notify the node a task has emitted an event. More... | |
bool | edAddLink (OutPort *start, InPort *end) throw (Exception) |
Add a dataflow link between two data ports. More... | |
bool | edAddLink (OutGate *start, InGate *end) throw (Exception) |
Add a controlflow link between two control ports. More... | |
bool | edAddCFLink (Node *nodeS, Node *nodeE) throw (Exception) |
Add a controlflow link between two nodes. More... | |
void | edRemoveCFLink (Node *nodeS, Node *nodeE) throw (Exception) |
Remove a controlflow link. More... | |
void | edRemoveLink (OutPort *start, InPort *end) throw (Exception) |
Remove a dataflow link. More... | |
void | edRemoveLink (OutGate *start, InGate *end) throw (Exception) |
Remove a controlflow link. More... | |
virtual bool | isRepeatedUnpredictablySeveralTimes () const |
virtual void | removeRecursivelyRedundantCL () |
std::list< ElementaryNode * > | getRecursiveConstituents () const |
std::list< Node * > | getAllRecursiveNodes () |
Get all children nodes elementary and composed including this node. More... | |
virtual std::list< Node * > | getAllRecursiveConstituents () |
Idem getAllRecursiveNodes, but this node is NOT included. More... | |
std::list< ProgressWeight > | getProgressWeight () const |
Get the progress weight for all elementary nodes. More... | |
std::string | getInPortName (const InPort *) const throw (Exception) |
Get the input port name. More... | |
std::string | getOutPortName (const OutPort *) const throw (Exception) |
std::set< OutPort * > | getAllOutPortsLeavingCurrentScope () const |
List all output ports of children nodes that are linked to out of scope input ports. More... | |
std::set< InPort * > | getAllInPortsComingFromOutsideOfCurrentScope () const |
List all input ports that are linked to out of scope ports. More... | |
std::list< InputDataStreamPort * > | getSetOfInputDataStreamPort () const |
std::list< OutputDataStreamPort * > | getSetOfOutputDataStreamPort () const |
InputDataStreamPort * | getInputDataStreamPort (const std::string &name) const throw (Exception) |
OutputDataStreamPort * | getOutputDataStreamPort (const std::string &name) const throw (Exception) |
std::vector< std::pair < OutPort *, InPort * > > | getSetOfInternalLinks () const |
virtual std::vector< std::pair < OutPort *, InPort * > > | getSetOfLinksLeavingCurrentScope () const |
void | checkConsistency (LinkInfo &info) const throw (Exception) |
virtual std::vector< std::pair < InPort *, OutPort * > > | getSetOfLinksComingInCurrentScope () const |
virtual void | edUpdateState () |
update the status of the node More... | |
ComposedNode * | getRootNode () const throw (Exception) |
bool | isNodeAlreadyAggregated (const Node *node) const |
Check that Node 'node' is already a direct son of this. More... | |
virtual bool | isNameAlreadyUsed (const std::string &name) const |
Node * | isInMyDescendance (Node *nodeToTest) const |
Returns the parent of a node that is the direct child of this node. More... | |
std::string | getChildName (const Node *node) const throw (Exception) |
virtual std::string | getMyQualifiedName (const Node *directSon) const |
Node * | getChildByName (const std::string &name) const throw (Exception) |
void | loaded () |
void | connected () |
virtual void | cleanNodes () |
Clean the composed node in case of not clean exit. More... | |
virtual std::string | getProgress () const |
Public Member Functions inherited from YACS::ENGINE::Node | |
virtual | ~Node () |
Node * | clone (ComposedNode *father, bool editionOnly=true) const |
This method MUST NEVER BE VIRTUAL More... | |
Node * | cloneWithoutCompAndContDeepCpy (ComposedNode *father, bool editionOnly=true) const |
This method MUST NEVER BE VIRTUAL More... | |
void | setState (YACS::StatesForNode theState) |
Sets the given state for node. More... | |
virtual YACS::StatesForNode | getState () const |
virtual YACS::StatesForNode | getEffectiveState () const |
Return the node state in the context of its father. More... | |
virtual YACS::StatesForNode | getEffectiveState (const Node *) const |
Return the effective state of a node in the context of this one (its father) More... | |
std::string | getColorState (YACS::StatesForNode state) const |
Return the color associated to a state. More... | |
InGate * | getInGate () |
OutGate * | getOutGate () |
const std::string & | getName () const |
void | setName (const std::string &name) |
Change the name of the node. More... | |
ComposedNode * | getFather () const |
const std::string | getId () const |
bool | exIsControlReady () const |
std::list< Node * > | getOutNodes () const |
virtual void | writeDot (std::ostream &os) const |
Dump to the input stream a dot representation of the node. More... | |
virtual void | exFailedState () |
Notify this node that its execution has failed. More... | |
virtual void | exDisabledState () |
Notify this node that it has been disabled. More... | |
std::list< InPort * > | getSetOfInPort () const |
std::list< OutPort * > | getSetOfOutPort () const |
virtual std::set< InputPort * > | edGetSetOfUnitializedInputPort () const |
Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More... | |
virtual bool | edAreAllInputPortInitialized () const |
Becomes deprecated soon. Replaced by ComposedNode::CheckConsistency. More... | |
InPort * | getInPort (const std::string &name) const throw (Exception) |
InPropertyPort * | getInPropertyPort () const throw (Exception) |
std::list< ComposedNode * > | getAllAscendanceOf (ComposedNode *levelToStop=0) const |
bool | operator> (const Node &other) const |
bool | operator< (const Node &other) const |
std::string | getImplementation () const |
virtual void | setProperty (const std::string &name, const std::string &value) |
virtual std::string | getProperty (const std::string &name) |
std::map< std::string, std::string > | getProperties () |
std::map< std::string, std::string > | getPropertyMap () |
virtual void | setProperties (std::map< std::string, std::string > properties) |
virtual Proc * | getProc () |
virtual const Proc * | getProc () const |
std::string | getQualifiedName () const |
same as Node::getName() in most cases, but differs for children of switch More... | |
int | getNumId () |
return node instance identifiant, unique for each node instance More... | |
std::vector< std::pair < std::string, int > > | getDPLScopeInfo (ComposedNode *gfn) |
virtual void | applyDPLScope (ComposedNode *gfn) |
virtual void | sendEvent (const std::string &event) |
emit notification to all observers registered with the dispatcher More... | |
virtual void | sendEvent2 (const std::string &event, void *something) |
emit notification to all observers registered with the dispatcher More... | |
virtual std::string | getErrorDetails () const |
virtual void | setErrorDetails (const std::string &error) |
virtual void | modified () |
Sets Node in modified state and its father if it exists. More... | |
virtual int | isModified () |
virtual int | isValid () |
indicates if the node is valid (returns 1) or not (returns 0) More... | |
virtual std::string | getContainerLog () |
returns a string that contains the name of the container log file if it exists More... | |
virtual void | ensureLoading () |
Put this node into TOLOAD state when possible. More... | |
virtual void | getCoupledNodes (std::set< Task * > &coupledNodes) |
Public Member Functions inherited from YACS::ENGINE::Scheduler | |
virtual | ~Scheduler () |
Protected Member Functions | |
Node * | simpleClone (ComposedNode *father, bool editionOnly) const |
virtual void | loadAlgorithm () |
Load the algorithm object from a Python module or a dynamic library. More... | |
Protected Member Functions inherited from YACS::ENGINE::OptimizerLoop | |
virtual YACS::Event | updateStateOnFailedEventFrom (Node *node, const Executor *execInst) |
Method used to notify the node that a child node has failed. More... | |
void | buildDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) |
void | buildDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) |
void | checkControlDependancy (OutPort *start, InPort *end, bool cross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &fw, std::vector< OutPort * > &fwCross, std::map< ComposedNode *, std::list< OutPort * >, SortHierarc > &bw, LinkInfo &info) const |
void | checkCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const |
check control flow links More... | |
void | checkLinkPossibility (OutPort *start, const std::list< ComposedNode * > &pointsOfViewStart, InPort *end, const std::list< ComposedNode * > &pointsOfViewEnd) throw (Exception) |
void | cleanInterceptors () |
void | launchMaxOfSamples (bool first) |
bool | isFullyLazy () const |
bool | isFullyBusy (unsigned &branchId) const |
void | initInterceptors (unsigned nbOfBr) |
void | pushValueOutOfScopeForCase (unsigned branchId) |
Protected Member Functions inherited from YACS::ENGINE::DynParaLoop | |
DynParaLoop (const std::string &name, TypeCode *typeOfDataSplitted) | |
virtual | ~DynParaLoop () |
DynParaLoop (const DynParaLoop &other, ComposedNode *father, bool editionOnly) | |
void | cleanDynGraph () |
void | prepareInputsFromOutOfScope (int branchNb) |
void | putValueOnBranch (Any *val, unsigned branchId, bool first) |
TypeOfNode | getIdentityOfNotifyerNode (const Node *node, unsigned &id) |
InputPort * | getDynInputPortByAbsName (int branchNb, const std::string &name, bool initNodeAdmitted) |
virtual void | forwardExecStateToOriginalBody (Node *execNode) |
std::vector< Node * > | cloneAndPlaceNodesCoherently (const std::vector< Node * > &origNodes) |
Clone nodes and make their placement consistent with the placement of the original ones. More... | |
Node * | checkConsistencyAndSetNode (Node *&nodeToReplace, Node *DISOWNnode) |
This method is used to factorize methods edSetNode, edSetInitNode and edSetFinalizeNode. More... | |
Node * | removeNode (Node *&nodeToRemove) |
This method is used to factorize methods edRemoveNode, edRemoveInitNode and edRemoveFinalizeNode. More... | |
virtual void | shutdown (int level) |
Stop all pending activities of the composed node. More... | |
Protected Member Functions inherited from YACS::ENGINE::ComposedNode | |
ComposedNode (const std::string &name) | |
ComposedNode (const ComposedNode &other, ComposedNode *father) | |
void | performDuplicationOfPlacement (const Node &other) |
performs a duplication of placement using clone method of containers and components. clone behaviour is driven by attachOnCloning attribute. More... | |
void | performShallowDuplicationOfPlacement (const Node &other) |
performs a also duplication of placement but here containers and components are not copied at all whatever the value of attachedOnCloning. More... | |
void | edDisconnectAllLinksWithMe () |
YACS::Event | updateStateFrom (Node *node, YACS::Event event, const Executor *execInst) |
Update node state on receiving event from a node. More... | |
virtual YACS::Event | updateStateOnStartEventFrom (Node *node) |
Method used to notify the node that a child node has started. More... | |
virtual void | getDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
virtual void | getDelegateOf (std::pair< OutPort *, OutPort * > &port, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
virtual void | releaseDelegateOf (InPort *&port, OutPort *initialStart, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
virtual void | releaseDelegateOf (OutPort *portDwn, OutPort *portUp, InPort *finalTarget, const std::list< ComposedNode * > &pointsOfView) throw (Exception) |
void | checkInMyDescendance (Node *nodeToTest) const throw (Exception) |
Check if a node is in the descendance of this node. More... | |
template<class PORT > | |
std::string | getPortName (const PORT *port) const throw (Exception) |
void | checkNoCrossHierachyWith (Node *node) const throw (Exception) |
virtual void | performCFComputations (LinkInfo &info) const |
perform recursively all CF computations. More... | |
virtual void | destructCFComputations (LinkInfo &info) const |
destroy recursively all results of initial computations. More... | |
Node * | getLowestNodeDealingAll (const std::list< OutPort * > &ports) const |
void | checkLinksCoherenceRegardingControl (const std::vector< OutPort * > &starts, InputPort *end, LinkInfo &info) const throw (Exception) |
void | solveObviousOrDelegateCFLinks (const std::list< OutPort * > &starts, InputPort *end, unsigned char &alreadyFed, bool direction, LinkInfo &info) const |
Protected Member Functions inherited from YACS::ENGINE::Node | |
Node (const std::string &name) | |
Node (const Node &other, ComposedNode *father) | |
virtual void | exForwardFailed () |
virtual void | exForwardFinished () |
Additional Inherited Members | |
Static Public Member Functions inherited from YACS::ENGINE::ComposedNode | |
static ComposedNode * | getLowestCommonAncestor (Node *node1, Node *node2) throw (Exception) |
Retrieves the lowest common ancestor of 2 nodes. More... | |
static std::string | getLowestCommonAncestorStr (const std::string &node1, const std::string &node2) |
Public Attributes inherited from YACS::ENGINE::Node | |
YACS::Colour | _colour |
Static Public Attributes inherited from YACS::ENGINE::Node | |
static std::map< int, Node * > | idMap |
Protected Types inherited from YACS::ENGINE::DynParaLoop | |
enum | TypeOfNode { INIT_NODE = 5, WORK_NODE = 6, FINALIZE_NODE = 7 } |
Static Protected Member Functions inherited from YACS::ENGINE::ComposedNode | |
static bool | splitNamesBySep (const std::string &globalName, const char separator[], std::string &firstPart, std::string &lastPart, bool priority) throw (Exception) |
Splits name globalName in 2 parts using separator. More... | |
Protected Attributes inherited from YACS::ENGINE::OptimizerLoop | |
Pool | _myPool |
bool | _algInitOnFile |
std::string | _symbol |
std::string | _alglib |
AnyInputPort | _algoInitPort |
::YACS::BASES::DynLibLoader * | _loader |
OptimizerAlgBase * | _alg |
AnyInputPort | _retPortForOutPool |
std::vector< bool > | _initNodeUpdated |
bool | _convergenceReachedWithOtherCalc |
FakeNodeForOptimizerLoop * | _nodeForSpecialCases |
std::vector< AnyInputPort * > | _interceptorsForOutPool |
std::map< InputPort *, std::vector< InputPort * > > | _interceptors |
outputports interceptors leaving current scope. More... | |
AnyOutputPort | _algoResultPort |
Static Protected Attributes inherited from YACS::ENGINE::OptimizerLoop | |
static const int | NOT_RUNNING_BRANCH_ID =-1973012217 |
static const int | NOT_INITIALIZED_BRANCH_ID =-1973 |
static const char | NAME_OF_ALGO_INIT_PORT [] = "algoInit" |
static const char | NAME_OF_OUT_POOL_INPUT [] = "evalResults" |
static const char | NAME_OF_ALGO_RESULT_PORT [] = "algoResults" |
class to build optimization loops
Definition at line 30 of file SalomeOptimizerLoop.hxx.
SalomeOptimizerLoop::SalomeOptimizerLoop | ( | const std::string & | name, |
const std::string & | algLibWthOutExt, | ||
const std::string & | symbolNameToOptimizerAlgBaseInstanceFactory, | ||
bool | algInitOnFile, | ||
bool | initAlgo = true , |
||
Proc * | procForTypes = NULL |
||
) |
Definition at line 47 of file SalomeOptimizerLoop.cxx.
References YACS::ENGINE::OptimizerLoop::setAlgorithm().
Referenced by simpleClone().
SalomeOptimizerLoop::SalomeOptimizerLoop | ( | const SalomeOptimizerLoop & | other, |
ComposedNode * | father, | ||
bool | editionOnly | ||
) |
Definition at line 65 of file SalomeOptimizerLoop.cxx.
SalomeOptimizerLoop::~SalomeOptimizerLoop | ( | ) |
Definition at line 70 of file SalomeOptimizerLoop.cxx.
|
protectedvirtual |
Load the algorithm object from a Python module or a dynamic library.
Member _alglib is the library name (shared library WITHOUT extension .so or python module WITH extension .py). Member _symbol is a symbol name in the library to use as an algorithm factory.
Reimplemented from YACS::ENGINE::OptimizerLoop.
Definition at line 93 of file SalomeOptimizerLoop.cxx.
References YACS::ENGINE::OptimizerLoop::_alg, YACS::ENGINE::OptimizerLoop::_alglib, YACS::ENGINE::Node::_errorDetails, YACS::ENGINE::OptimizerLoop::_myPool, YACS::ENGINE::OptimizerLoop::_symbol, YACS::ENGINE::RefCounter::incrRef(), YACS::ENGINE::OptimizerLoop::loadAlgorithm(), YACS::ENGINE::Node::modified(), YACS::ENGINE::newPyStdOut(), YACS::ENGINE::OptimizerAlgBase::setPool(), and YASSERT.
|
protectedvirtual |
Reimplemented from YACS::ENGINE::OptimizerLoop.
Definition at line 74 of file SalomeOptimizerLoop.cxx.
References YACS::ENGINE::OptimizerLoop::_alglib, YACS::ENGINE::OptimizerLoop::_symbol, YACS::ENGINE::Node::getProc(), SalomeOptimizerLoop(), and YACS::ENGINE::OptimizerLoop::setAlgorithm().
|
inlinevirtual |
Reimplemented from YACS::ENGINE::OptimizerLoop.
Definition at line 41 of file SalomeOptimizerLoop.hxx.