[pypy-dev] Contributing to pypy [especially numpy]

Alex Gaynor alex.gaynor at gmail.com
Sun Oct 16 17:54:19 CEST 2011


On Sun, Oct 16, 2011 at 11:50 AM, Maciej Fijalkowski <fijall at gmail.com>wrote:

> On Sun, Oct 16, 2011 at 2:29 PM, Stefan Behnel <stefan_ml at behnel.de> wrote
> > Samuel Vaiter, 14.10.2011 17:59:
> >>
> >> The main
> >> reason why Numpy is my main interest is that as Ph.D student in
> >> Applied Mathematics, I really hope one day we will be able to perform
> >> numerical computation without using heavy binding in C/Fortran or
> >> intermediate solution like Cython.
> >
> > I guess you didn't mean it that way, but "intermediate solution" makes it
> > sound like you expect any of these to go away one day. They sure won't.
> > Manually optimised C and Fortran code will always beat JIT compilers,
> > especially in numerics. It's a game they can't win - whenever JIT
> compilers
> > get too close to hand optimised code, someone will come along and write
> > better code.
> >
> > Stefan
>
> I guess what you say is at best [citation needed]. We have proven
> already that we can perform several optimizations that are very hard
> to perform at the C level. And indeed, while you can always argue
> "well, you can just write a better compiler", it's true also for JITs.
> And we're only at the beginning of what we can do.
>
> One example that I have in mind is array expressions that depend on
> runtime - we can optimize them fairly well in the JIT (which means SSE
> and whatnot), but you just can't get the same thing in C, because
> you're unable to compile native code per a set of array operations.
>
> Cheers,
> fijal
> _______________________________________________
> pypy-dev mailing list
> pypy-dev at python.org
> http://mail.python.org/mailman/listinfo/pypy-dev
>

Another example, which no fortran compiler will ever be able to do, is if
you create a ufunc from a Python function, you can still inline it into
assembler that's emitted for an operation so:

a + b * sin(my_ufunc(c))

still generates a single loop in assembler.

Alex

-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20111016/e83f4003/attachment.html>


More information about the pypy-dev mailing list