Hashcons looks interesting, but as simple as making every object as 
singletons 
I would have a question how this would be implemented effectively on top of 
python, for example, how to keep the hash table not grow infinitely with 
dead references.

On Monday, December 19, 2022 at 4:20:50 PM UTC+2 brombo wrote:

> Many of the sympy algorithms could be parallelized using parallel python.  
> That could lead to major speed improvements.  The computer I am writing 
> this on has a Ryzen 9 5900x cpu with 12 cores and 24 threads.  I think that 
> 4 cores and 8 threads is very common these days. 
> On 12/19/22 8:58 AM, Sam Brockie wrote:
>
> > Put another way, what would be your preferred computer language if you
> were SymPy starting again? There would obviously need to be an interface 
> to Python, but would you write the rest in C++? 
>
> There's the SymEngine project (https://github.com/symengine/symengine), 
> which already does this :) SymPy itself, however, is, and should remain, a 
> pure-Python computer algebra system.
>
> I agree with what Aaron said above, SymPy does well in making things 
> syntactically nice. From a pure performance perspective, SymPy and its 
> trees of OOP objects is almost certainly the wrong data structure for 
> performant computer algebra. Oscar Benjamin and I (with Aaron and Jason 
> Moore also present for parts) have discussed the merits of hashcons (
> https://en.wikipedia.org/wiki/Hash_consing), which gives really neat 
> inherent caching, smaller memory footprint, efficient expression traversal 
> and topological sorting, and more. If there were to be a concerted effort 
> to refactor the internals of SymPy in any way, my vote would strongly go 
> towards using a different data structure for the implementation.
>
> Sam
>
> -- 
> 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+un...@googlegroups.com.
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/fb160d08-978e-4002-ac7f-16635a313291n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/sympy/fb160d08-978e-4002-ac7f-16635a313291n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/77058ce2-ff45-4c01-b5c8-a523ccd60ec1n%40googlegroups.com.

Reply via email to