That sounds very interesting.  Can you share some details on what you did 
that makes it much faster,  even when using pure Python coefficients ?  why 
is that the current solve in sympy is so slow comparing to the one in Sage 
? 

How do I reproduce what you did after obtaining the patch, assuming the 
input is my original list of 165 equations as given in 
http://pastebin.com/cE87W9m3 ?  What is eqs_165x165() in the code eqs = 
eqs_165x165()   ?   Also, how long usually does it take for such a patch to 
get into the main sympy branch ?  

Thanks for the works !



> On 9 March 2013 21:41, ThanhVu Nguyen <[email protected] <javascript:>> 
> wrote: 
> > They are linear equations, the coeficients are floating points ... the 
> > simpliest kind of linear equations for solving.   For example 
> > 
> > solve([2x + 2y + 3= 0 ,  4.2x + 5y + 1 = 0  ... ] , solution_dict=True) 
> > 
> > Here's a real big one 165 unknowns with 165 equations that SAGE's solve 
> runs 
> > at least 5 times faster than Sympy's solve:  
> http://pastebin.com/cE87W9m3 
> > 
>
> Recently I got some interesting speed improvements regarding this 
> issue in a development branch (see 
> https://github.com/sympy/sympy/pull/1840). I was able to solve this 
> 165x165 system under 4 seconds on my computer (Sage takes about 24 
> seconds when simply using solve()).

To be fair, I got this result by 
> using gmpy for coefficient domain (which SymPy does automatically 
> anyway if gmpy is installed), but even with pure Python coefficients 
> (int, Fraction) it takes under 19 seconds to solve the system. Also, 
> please note that this doesn't use the symbolic core of SymPy 
> (sympy.core), so there will be additional speed penalty when 
> converting between symbolic trees and efficient low-level polynomial 
> and matrix representations. If you want to try it out you have to use 
> sparse-polys branch from #1840 pull request. Here is a sample code: 
>
> In [1]: from sympy.polys.benchmarks.bench_solvers import * 
>
> In [2]: %time eqs = eqs_165x165() 
> CPU times: user 2.12 s, sys: 0.01 s, total: 2.13 s 
> Wall time: 2.12 s 
>
> In [3]: %time sol = solve_lin_sys(eqs, R_165) 
> CPU times: user 1.60 s, sys: 0.01 s, total: 1.60 s 
> Wall time: 1.59 s 
>
> > 
> > 
> > On Friday, March 8, 2013 12:36:38 AM UTC-7, Aaron Meurer wrote: 
> >> 
> >> What kind of equations are these? Are they linear equations, or 
> >> polynomial? Are the coefficients rational, floating point, or 
> >> symbolic. Maybe you could paste an example somewhere. 
> >> 
> >> solve being slow is a real problem. To fix it, we need to figure out 
> >> what part is slowing it down, and either make it faster or figure out 
> >> if it can be removed for that computation. 
> >> 
> >> Aaron Meurer 
> >> 
> >> On Thu, Mar 7, 2013 at 10:57 PM, ThanhVu Nguyen 
> >> <[email protected]> wrote: 
> >> > I concur,  the "solve in Sympy is very slow comparing to the "solve" 
> >> > function in Sage.  Doesn't need to come up with any special example, 
> >> > just 
> >> > try to solve over 20 unknowns and so and you will see the difference. 
> >> > 
> >> > One of my problem requires solving for 248 eqts for 164 unknowns. 
> Here's 
> >> > the 
> >> > time:  with SAGE 4.5.1 : 82.8926379681 secs, with Sympy 0.7.2: 
> >> > 557.724228144 
> >> > secs.    Both give the exact same solution so no problem on 
> soundness. 
> >> > 
> >> > I don't like using Sage because it's inconvenient to ask the users to 
> >> > download the huge package,  but my stuff relies on equation solvings 
> so 
> >> > I 
> >> > have to stick with Sage. 
> >> > 
> >> > 
> >> > 
> >> > On Sunday, February 24, 2013 3:15:27 AM UTC-7, Alessandro Bernardini 
> >> > wrote: 
> >> >> 
> >> >> Hello, 
> >> >> 
> >> >> i have to solve systems of linear algebraic equations (nodal 
> equations 
> >> >> from circuit theory). 
> >> >> I tried examples witch 7 unknowns and a lot of symbolic parameters: 
> i 
> >> >> obtain 7 equations in the 7 unknowns (and with the symbolic 
> >> >> parameters). 
> >> >> Then i solve for the 7 unknowns: sympy solve simply runs "out of 
> time". 
> >> >> For 3 unknowns in 3 equations the results are computed after a few 
> >> >> minutes. For 7 unknowns in 7 equations i had to stop the 
> computation. 
> >> >> 
> >> >> Sage math does it in much lesser time. 
> >> >> 
> >> >> I have tried manual=True simplify=False and other options and i 
> always 
> >> >> have the same performance problem. 
> >> >> 
> >> >> Can someone help ? 
> >> >> 
> >> >> Thanks 
> >> >> 
> >> > -- 
> >> > 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?hl=en. 
> >> > 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] <javascript:>. 
> > To post to this group, send email to [email protected]<javascript:>. 
>
> > Visit this group at http://groups.google.com/group/sympy?hl=en. 
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>
> Mateusz 
>

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to