On Tue, May 3, 2011 at 3:18 PM, Maciej Fijalkowski <fij...@gmail.com> wrote: > On Tue, May 3, 2011 at 9:44 AM, Ondrej Certik <ond...@certik.cz> wrote: >> On Tue, May 3, 2011 at 12:31 AM, Maciej Fijalkowski <fij...@gmail.com> wrote: >>> On Tue, May 3, 2011 at 9:22 AM, Ondrej Certik <ond...@certik.cz> wrote: >>>> Hi, >>>> >>>> I have downloaded the pypy 1.5 binary (with jit) and run tests (only >>>> sympy/core, so that it's fast) on Ubuntu Natty, 64bit: >>>> >>>> >>>> ondrej@eagle:~/repos/sympy(master)$ bin/test sympy/core/ >>>> ============================= test process starts >>>> ============================== >>>> executable: /usr/bin/python (2.7.1-final-0) >>>> ground types: python >>>> >>>> sympy/core/tests/test_arit.py[48] >>>> ...f.......................................... >>>> .. >>>> [OK] >>>> sympy/core/tests/test_assumptions.py[28] ....f....................... >>>> [OK] >>>> sympy/core/tests/test_basic.py[10] .......... >>>> [OK] >>>> sympy/core/tests/test_cache.py[1] . >>>> [OK] >>>> sympy/core/tests/test_complex.py[13] ............. >>>> [OK] >>>> sympy/core/tests/test_containers.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_count_ops.py[2] .. >>>> [OK] >>>> sympy/core/tests/test_diff.py[6] ...... >>>> [OK] >>>> sympy/core/tests/test_equal.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_eval.py[8] .....f.. >>>> [OK] >>>> sympy/core/tests/test_eval_power.py[12] ............ >>>> [OK] >>>> sympy/core/tests/test_evalf.py[23] ....................... >>>> [OK] >>>> sympy/core/tests/test_expand.py[6] ...... >>>> [OK] >>>> sympy/core/tests/test_expr.py[60] >>>> .............................................. >>>> .............. >>>> [OK] >>>> sympy/core/tests/test_exprtools.py[4] .... >>>> [OK] >>>> sympy/core/tests/test_facts.py[11] ........... >>>> [OK] >>>> sympy/core/tests/test_functions.py[23] .....f................. >>>> [OK] >>>> sympy/core/tests/test_logic.py[11] ........... >>>> [OK] >>>> sympy/core/tests/test_match.py[26] ...f...................... >>>> [OK] >>>> sympy/core/tests/test_numbers.py[47] >>>> ........................................... >>>> .... >>>> [OK] >>>> sympy/core/tests/test_operations.py[4] .... >>>> [OK] >>>> sympy/core/tests/test_priority.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_relational.py[7] ....... >>>> [OK] >>>> sympy/core/tests/test_sets.py[18] .................. >>>> [OK] >>>> sympy/core/tests/test_subs.py[30] .............................. >>>> [OK] >>>> sympy/core/tests/test_symbol.py[9] ......... >>>> [OK] >>>> sympy/core/tests/test_sympify.py[23] ....................... >>>> [OK] >>>> sympy/core/tests/test_truediv.py[3] ... >>>> [OK] >>>> sympy/core/tests/test_var.py[5] ..... >>>> [OK] >>>> >>>> ======= tests finished: 448 passed, 5 expected to fail, in 2.90 seconds >>>> ======== >>>> ondrej@eagle:~/repos/sympy(master)$ >>>> ~/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy bin/test >>>> sympy/core/ >>>> ============================= test process starts >>>> ============================== >>>> executable: >>>> /home/ondrej/Downloads/pypy-c-jit-43780-b590cf6de419-linux64/bin/pypy >>>> (2.7.1-final-42) >>>> ground types: python >>>> >>>> sympy/core/tests/test_arit.py[48] >>>> ...f.......................................... >>>> .. >>>> [OK] >>>> sympy/core/tests/test_assumptions.py[28] ....f....................... >>>> [OK] >>>> sympy/core/tests/test_basic.py[10] .......... >>>> [OK] >>>> sympy/core/tests/test_cache.py[1] . >>>> [OK] >>>> sympy/core/tests/test_complex.py[13] ............. >>>> [OK] >>>> sympy/core/tests/test_containers.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_count_ops.py[2] .. >>>> [OK] >>>> sympy/core/tests/test_diff.py[6] ...... >>>> [OK] >>>> sympy/core/tests/test_equal.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_eval.py[8] .....f.. >>>> [OK] >>>> sympy/core/tests/test_eval_power.py[12] ............ >>>> [OK] >>>> sympy/core/tests/test_evalf.py[23] ....................... >>>> [OK] >>>> sympy/core/tests/test_expand.py[6] ...... >>>> [OK] >>>> sympy/core/tests/test_expr.py[60] >>>> ..........F................................... >>>> .............. >>>> [FAIL] >>>> sympy/core/tests/test_exprtools.py[4] .... >>>> [OK] >>>> sympy/core/tests/test_facts.py[11] ........... >>>> [OK] >>>> sympy/core/tests/test_functions.py[23] .....f................. >>>> [OK] >>>> sympy/core/tests/test_logic.py[11] ........... >>>> [OK] >>>> sympy/core/tests/test_match.py[26] ...f...................... >>>> [OK] >>>> sympy/core/tests/test_numbers.py[47] >>>> ........................................... >>>> .... >>>> [OK] >>>> sympy/core/tests/test_operations.py[4] .... >>>> [OK] >>>> sympy/core/tests/test_priority.py[5] ..... >>>> [OK] >>>> sympy/core/tests/test_relational.py[7] ....... >>>> [OK] >>>> sympy/core/tests/test_sets.py[18] .................. >>>> [OK] >>>> sympy/core/tests/test_subs.py[30] .............................. >>>> [OK] >>>> sympy/core/tests/test_symbol.py[9] ......... >>>> [OK] >>>> sympy/core/tests/test_sympify.py[23] ....................... >>>> [OK] >>>> sympy/core/tests/test_truediv.py[3] ... >>>> [OK] >>>> sympy/core/tests/test_var.py[5] ..... >>>> [OK] >>>> >>>> ________________________________________________________________________________ >>>> _____________ sympy/core/tests/test_expr.py:test_as_leading_term3 >>>> ______________ >>>> File "/home/ondrej/repos/sympy/sympy/core/tests/test_expr.py", line >>>> 212, in test_as_leading_term3 >>>> assert (2*x+pi*x+x**2).as_leading_term(x) == (2+pi)*x >>>> AssertionError >>>> >>>> == tests finished: 447 passed, 1 failed, 5 expected to fail, in 13.87 >>>> seconds == >>>> DO *NOT* COMMIT! >>>> >>>> >>>> >>>> >>>> The test failure is probably some minor difference between CPython and >>>> PyPy.. However, as you can see, the test execution is 4x slower in >>>> PyPy, compared to CPython. >>>> Is this the supposed slow down, or is there something specific to sympy? >>>> >>>> I have also done this test in bin/isympy, CPython: >>>> >>>>>>> from timeit import default_timer as clock >>>>>>> t = clock(); a = expand((1+x+y+z)**20); clock()-t >>>> 1.4584941864 >>>> >>>> PyPy: >>>> >>>>>>> from timeit import default_timer as clock >>>>>>> t = clock(); a = expand((1+x+y+z)**20); clock()-t >>>> 4.48898005486 >>>> >>>> so PyPy is roughly 3x slower here. >>>> >>>> So 3x or 4x slower, I think that's already very usable. Especially the >>>> sandbox pypy is an awesome idea, for serving web apps. The only >>>> problem is that I use Cython a lot, which I think is incompatible with >>>> PyPy... >>>> >>>> Ondrej >>>> _______________________________________________ >>>> pypy-dev@codespeak.net >>>> http://codespeak.net/mailman/listinfo/pypy-dev >>>> >>> >>> Hey. >>> >>> I think the test run is somehow within acceptable numbers (in theory >>> tests should run each code once, hence making JIT not really fit >>> well), however I think the other slowdown is not really acceptable. We >> >> Well, it is also only run once, so JIT probably doesn't help. >> >>> were looking for a while to include some sympy benchmarks to our >>> benchmark suite, maybe the good time is now :) >> >> >> SymPy uses caching, so maybe that's the problem. It is possible to >> turn it down though. Ping me if you have any questions, or run into >> any problems with sympy. >> >> Ondrej >> > > That might sound strange but for me, both pypy and cpython runs within > 4s. Which python you use? >
CPython 2.7 runs 2x faster than 2.6. Can we get some more real-time communication set up, so we can discuss a bit _______________________________________________ pypy-dev@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev