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

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.

Reply via email to