Opened 11 years ago

Closed 10 years ago

#1480 closed task (done)

Reevaluate IL emitting for symbolic data analysis solutions

Reported by: gkronber Owned by: gkronber
Priority: medium Milestone: HeuristicLab 3.3.6
Component: Problems.DataAnalysis.Symbolic Version: 3.3.6
Keywords: Cc:

Description

Could be beneficial for larger datasets. Additionally it could be beneficial for solutions that are evaluated multiple times.

Change History (18)

comment:1 Changed 11 years ago by gkronber

Resurrected the IL emitting interpreter I once implemented for HL 3.1 and implemented an interpreter for 3.4 based on it. The unit test tests the same cases as the unit test for the standard interpreter except for the ADF operations which are not implemented in the IL emitting interpreter.

comment:2 Changed 11 years ago by gkronber

  • Owner changed from mkommend to gkronber
  • Status changed from new to accepted

comment:3 Changed 11 years ago by gkronber

r6732:

  • added IL emitting tree interpreter for symbolic data analysis and test case.
  • Found and fixed a bug in the existing interpreter for boolean operators OR and AND with NaN arguments. However, this means that the output of previously stored solutions changes. We Probably we should keep the incorrect behavior now and document this accordingly, as changing this would need a version increment of all data analysis plugins.

comment:4 Changed 11 years ago by gkronber

r6735: reduced nodesPerSecThreshold for IL-emitting interpreter performance tests to fix problems with the release build on builder.

comment:5 Changed 11 years ago by gkronber

r6755: implemented code to handle root symbols for the il emitting interpreter and fixed code for power symbol.

comment:6 Changed 11 years ago by gkronber

r6770: added code for the interpretation of lagged variables to the IL emitting interpreter.

comment:7 Changed 11 years ago by gkronber

  • Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.6

comment:8 Changed 11 years ago by gkronber

r6809:

  • Added check if row index lies within the possible range of the dataset and implemented interpretation of time series symbols in the IL emitting interpreter.
  • Added test cases for evaluation of time series symbols.

comment:9 Changed 11 years ago by gkronber

  • Owner changed from gkronber to mkommend
  • Status changed from accepted to reviewing

comment:10 Changed 11 years ago by gkronber

r6836: reduced threshold for evaluated tree nodes / sec for the IL emitting interpreter performance test to reduce number of fails on the builder.

comment:11 Changed 11 years ago by gkronber

r6849: experimental change to potentially improve performance of interpreters.

comment:12 Changed 11 years ago by gkronber

r6860: reverse merged changes to SymbolicDataAnalysisExpressionTreeInterpreter.cs in r6849 as there were no performance improvements observable for this interpreter.

Last edited 11 years ago by gkronber (previous) (diff)

comment:13 Changed 10 years ago by mkommend

  • Owner changed from mkommend to gkronber
  • Status changed from reviewing to assigned

I've tested the whole functionality and had a brief look at the source code. Everything works as expected, but one thing should be corrected:

  • Throw a more meaningful exception, if symbols are not implemented in the ILEmittingInterpreter (e.g., specifying which symbol causes the exception).

comment:14 Changed 10 years ago by gkronber

r7077: added a message for the NotSupportedException thrown in the SymbolicDataAnalysisExpressionTreeILEmittingInterpreter stating which symbolic is not supported.

comment:15 Changed 10 years ago by gkronber

  • Owner changed from gkronber to mkommend
  • Status changed from assigned to reviewing

comment:16 Changed 10 years ago by mkommend

  • Owner changed from mkommend to gkronber
  • Status changed from reviewing to readytorelease

Thx for updating the text of the thrown exceptions.

comment:17 Changed 10 years ago by abeham

  • Version changed from branch to 3.3.5

comment:18 Changed 10 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.5 to 3.3.6
Note: See TracTickets for help on using tickets.