Opened 11 years ago

Last modified 7 years ago

#2647 new enhancement

Expression.simplify is way too slow — at Version 3

Reported by: Willi Braun Owned by: probably noone
Priority: high Milestone: Future
Component: Backend Version: trunk
Keywords: Cc:

Description (last modified by Willi Braun)

For the following models the compile time increases heavy, if one increase the size.

  model BaseModelEquations
    parameter Integer n=100; // see Backend time for 100, 200, 400
    input Real[n] u1;
    input Real[n] u2;
    output Real[n] y1;
    output Real y2;
  equation
    y1=array(if u1[i] > 0 then u1[i] else u2[i] for i in 1:n);
    y2=sum(y1);
  end BaseModelEquations;
For n=100 : timeBackend = 0.266189871
For n=200 : timeBackend = 1.490894306
For n=400 : timeBackend = 10.56719995
For n=800 : timeBackend = 82.89054140

All the time is lost by trying to simplify expressions.
Also we try to do it 3 time, once by creating the BackendDAE structure,
once directly after that and once at the end of the Backend process.

We should do it only once and perhaps we should improve Expression.simplify further anyway.

Change History (3)

comment:1 by Willi Braun, 11 years ago

Summary: Expression.simplify is ways tooExpression.simplify is ways too slow

comment:2 by Lennart Ochel, 11 years ago

Summary: Expression.simplify is ways too slowExpression.simplify is way too slow

comment:3 by Willi Braun, 11 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.