Hi,

Just to know, witch version of Theano did you used? I have speed up a
little the optimization phase of the compilation and I have a PR that
will optimize this more.

Also, Theano cache the compilation of the c code. Where this timming
done with a empty theano cache or a filled Theano cache? If you ran
the same benchmark multiple time on the same computer, only the first
time Theano will compile the c code, the other time it will reuse what
is in the cache.

thanks

Frédéric

On Sun, Nov 3, 2013 at 3:22 PM, Ronan Lamy <[email protected]> wrote:
> Le 03/11/13 14:19, Jason Moore a écrit :
>
>> Ronan,
>>
>> Thanks for looking at the derivation code. We haven't ever really had
>> any review of it outside of our mechanical engineer group, so this very
>> helpful.
>>
>> I'll review your PR and look into the second two items.
>>
>> Why do you think the dictionary representation will be so much faster?
>
>
> Using a dict would make Vector.__eq__ a lot less expensive, and make
> canonicalisation (as currently done in Vector.__init__) O(len(args)) instead
> of O(len(args)**2).
>
> However, it seems that the main performance issue is that instantiating
> Matrix objects is expensive. Using a dict isn't strictly required to solve
> this, but the structure I suggest would allow e.g. dot products of vectors
> to be decomposed as combinations of multiplications of components and dot
> products of base vectors, which can be optimised or cached separately. There
> would be no need for intermediate Matrix objects.
>
>
>>
>> On Sat, Nov 2, 2013 at 10:11 PM, Ronan Lamy <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>     Le 01/11/13 11:54, Jason Moore a écrit :
>>
>>         I've been tinkering with code generation for ODE's that
>>         sympy.physics.mechanics spits out and have some results:
>>
>>         http://www.moorepants.info/__blog/pydy-code-gen.html
>>
>>         <http://www.moorepants.info/blog/pydy-code-gen.html>
>>
>>         Several people have posted topics on this recently. We need to
>>         build in
>>         a code generator for solving ODE's into SymPy that would play
>>         well with
>>         the codegen and autowrap modules. I think I can use this code I
>>         wrote as
>>         a base to start working on that but would need some help
>>         generalizing it
>>         beyond our systems. Feedback is welcome.
>>
>>
>>     I've only looked at the derivation part, it's an interesting
>>     real-world(ish) benchmark for expression manipulation. However, it
>>     incurs a lot of avoidable overhead:
>>     * Extracting some loop constants out of their loops cuts down the
>>     run-time by 40%, cf. https://github.com/sympy/__sympy/pull/2570
>>
>>     <https://github.com/sympy/sympy/pull/2570>
>>     * The creation of temporary objects by the Vector class takes up
>>     most of the run-time.
>>     * The internal representation of Vector objects seems inefficient. I
>>     think it should be switched to a dict-based representation as a
>>     linear combination of base vectors (e.g. using {I.x: l0, B.y: -l1}
>>     for l0 * I.x - l1 * B.y).
>>
>>
>>     --
>>     You received this message because you are subscribed to the Google
>>     Groups "sympy" group.
>>     To unsubscribe from this group and stop receiving emails from it,
>>     send an email to sympy+unsubscribe@__googlegroups.com
>>     <mailto:sympy%[email protected]>.
>>
>>     To post to this group, send email to [email protected]
>>     <mailto:[email protected]>.
>>     Visit this group at http://groups.google.com/__group/sympy
>>     <http://groups.google.com/group/sympy>.
>>     For more options, visit https://groups.google.com/__groups/opt_out
>>     <https://groups.google.com/groups/opt_out>.
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send
>> an email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sympy.
>> For more options, visit https://groups.google.com/groups/opt_out.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to