← Back to team overview

ufl team mailing list archive

Re: [Dolfin] Triggers of recompilation of large forms

 

On Thursday March 3 2011 15:37:11 Anders Logg wrote:
> On Thu, Mar 03, 2011 at 03:02:10PM -0800, Johan Hake wrote:
> > Hello!
> > 
> > I have some large forms, including some 40 exterior facet integrals. I am
> > starting to get annoyed by a constant recompilation of these forms. I
> > have made pretty clear that each one does not contain any numbers that
> > changes from simulation to simulation (Using Constant or Expression for
> > changing coefficients). But at arbitrary times, reompilations are
> > triggered and with many integrals per form this take times ~5-20min
> > each... The generated code is not large, no complex forms, just many
> > integrals. I also use MixedSpaces with Real, see other email, with some
> > 10 Real spaces.
> > 
> > I have tried to eliminate any possible triggers for recompilations within
> > my own code, change all dicts to ordered dicts and so on. Becuase the
> > forms are so big it is almost impossible to debug any signature string
> > from the form. They are hundreds of konsole lines long...
> 
> Does the hash sum change?

I suspect that, because otherwise it would not trigger a recompile. 

But the hash sum is dependent on the repr of the form. I suspect that there 
might be some randomness built into this. 

Eventhough a simple case:

  a = u*v*dx
  a += u*v*ds(1)
  a += u*v*ds(2)

should create the same form each time, (This particular simple example 
probably does), I have much more complicated forms building up which I suspect 
don't create the same repr all the time. I haven't been able to debug it 
further as the repr of the forms are hundreds of konsole line...

Johan

> --
> Anders
> 
> > Do any of you have any clue of where, for example in UFL I can start
> > debug this?
> > 
> >   * Do all math operators in UFL preserve the orignial order?
> >   * Are there any dicts involved in storing internal information in a
> >   form,
> >   
> >     which the __repr__ command depends on?
> > 
> > Is there another way to represent the uniqeness of a form which might
> > eliminate this error?
> > 
> > Johan
> > 
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help   : https://help.launchpad.net/ListHelp



Follow ups

References