Opened 8 years ago

Closed 8 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 8 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 8 years ago by gkronber

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

comment:3 Changed 8 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 8 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 8 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 8 years ago by gkronber

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

comment:7 Changed 8 years ago by gkronber

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

comment:8 Changed 8 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 8 years ago by gkronber

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

comment:10 Changed 8 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 8 years ago by gkronber

r6849: experimental change to potentially improve performance of interpreters.

comment:12 Changed 8 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 8 years ago by gkronber (previous) (diff)

comment:13 Changed 8 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 8 years ago by gkronber

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

comment:15 Changed 8 years ago by gkronber

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

comment:16 Changed 8 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 8 years ago by abeham

  • Version changed from branch to 3.3.5

comment:18 Changed 8 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.