Free cookie consent management tool by TermsFeed Policy Generator

Opened 14 years ago

Last modified 14 years ago

#1355 closed defect

EngineAlgorithm should cleanup itself after it stopped — at Version 4

Reported by: cneumuel Owned by: swagner
Priority: high Milestone: HeuristicLab 3.3.3
Component: Optimization Version: 3.3.3
Keywords: Cc:

Description (last modified by swagner)

When an EngineAlgorithm stops, it currently keeps all its state-information (ExecutionContext and ScopeTree). This is unneccessary because when it is in ExecutionState "Stopped", it cannot be resumed (without calling Prepare, which causes the deletion of this state-information).

Problem: The state-information consumes a large amount of memory when beeing serialized, especially when the population size is large in evolutionary algorithms. This is a significant problem in Hive. When a finished algorithm contains tens or hundrets of megabytes of unnecessary information serialization, deserialization and transmission of jobs is unnecessarily slow.

Also, users who don't know the "trick" of calling Prepare before storing an algorithm, spend lots of unneccessary time on saving and loading their algorithms.

Just calling Prepare() when an algorithm stopped however would be too much, since this would cause the ExecutionTime and the ResultCollection beeing cleaned. It just would not fit the semantics of Prepare to use it for memory cleanup.

Change History (4)

comment:1 Changed 14 years ago by cneumuel

  • Status changed from new to assigned

comment:2 Changed 14 years ago by swagner

  • Milestone changed from HeuristicLab x.x.x to HeuristicLab 3.3.3
  • Status changed from assigned to accepted

comment:3 Changed 14 years ago by swagner

Implemented that the ExecutionStack (and consequently also all ExecutionContexts) is cleared in Engine, if the engine is stopped (see ticket #1333 and r5193).

comment:4 Changed 14 years ago by swagner

  • Component changed from ### Undefined ### to Optimization
  • Description modified (diff)
  • Summary changed from Algorithm cleanup itself after it stopped to EngineAlgorithm should cleanup itself after it stopped
Note: See TracTickets for help on using tickets.