On Sat, Oct 8, 2011 at 11:48 AM, Mateusz Paprocki <matt...@gmail.com> wrote:
> Hi,
>
> On 8 October 2011 04:40, Maciej Fijalkowski <fij...@gmail.com> wrote:
>>
>> Hi
>>
>> I did some benchmarking of sympy under PyPy. I would like some
>> comments on the validity of benchmarks. I've use PyPy nightly from 7th
>> of Oct, CPython 2.7 release and sympy git trunk.
>>
>> Benchmarks (also http://paste.pocoo.org/show/489351/)
>>
>> Those are picked specifically so time stays around 1-5s
>>
>> Run: http://paste.pocoo.org/show/489352/
>>
>> As you can see PyPy does give *a bit* of an edge once the JIT warms
>> up, although it's not a whole lot. We'll look how to make pypy faster
>> on those.
>
> First, make sure that PyPy and CPython use the same ground (coefficient)
> types:
> from sympy.polys.domains import GROUND_TYPES
> print "types: %s" % GROUND_TYPES
> SymPy can pick up gmpy for this, instead of using pure Python types. To
> force
> usage of pure Python types, use the following code:
> import os
> os.environ["SYMPY_GROUND_TYPES"] = "python"
> # now you can import sympy

Also, mpmath uses gmpy automatically if it's installed, independently
of the polys ground types. You can disable it by setting the
environment variable MPMATH_NOGMPY to some non-empty value (see
sympy/mpmath/libmp/backend.py).

Aaron Meurer

>
> Caching can seriously affect benchmarks, so I would disable it completely:
> import os
> os.environ["SYMPY_USE_CACHE"] = "no"
> # now you can import sympy
>>
>> Is there any interest in making sympy more pypy friendly?
>
> Can you provide some guidelines how we can achieve this?
> I was hoping that low-level stuff in SymPy should work well with PyPy,
> e.g.:
> from sympy import ZZ
> from sympy.polys.factortools import dmp_factor_list
> from sympy.polys.densearith import dmp_pow
> from sympy.polys.specialpolys import f_6
> def bench_lowlevel_mv_factor():
>     # factor(f_6**2) in ZZ[x,y,z,t]
>     dmp_factor_list(dmp_pow(f_6, 2, 3, ZZ), 3, ZZ)
> This, however, gives results other than I would expect:
> $ pypy bench.py
> cache: no
> types: python
> bench_lowlevel_mv_factor 1.41745710373
> bench_lowlevel_mv_factor 1.37492704391
> bench_lowlevel_mv_factor 1.28843522072
> ...
> $ python2.7 bench.py
> cache: no
> types: python
> bench_lowlevel_mv_factor 0.23696398735
> bench_lowlevel_mv_factor 0.235101938248
> bench_lowlevel_mv_factor 0.238154888153
> ...
>
>>
>> Cheers,
>> fijal
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to sympy@googlegroups.com.
>> To unsubscribe from this group, send email to
>> sympy+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> Mateusz
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to sympy@googlegroups.com.
> To unsubscribe from this group, send email to
> sympy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to