Michael Sioutis | 3 Jul 2012 23:28
Picon

Any publications regarding PyPy / trace-based JIT compiler?

Dear PyPy team,


I am in the process of writing a paper that will target some AI conference, and I would like
to ask if there are any relevant publications of yours or in general that showcase the possible advantages
of trace-based JIT compilation over method-based JIT compilation or static compilation.

I just want to use 2 or 3 of them as references when I explain why my implementation is more scalable
and robust when compared to some C/C++/Java implementations (appart from different data structures and
algorithms).

Thank you :)

Mike
_______________________________________________
pypy-dev mailing list
pypy-dev <at> python.org
http://mail.python.org/mailman/listinfo/pypy-dev
wlavrijsen | 4 Jul 2012 08:29
Favicon

Re: Any publications regarding PyPy / trace-based JIT compiler?

Hi Michael,

> I am in the process of writing a paper that will target some AI conference,
> and I would like to ask if there are any relevant publications of yours or
> in general that showcase the possible advantages of trace-based JIT
> compilation over method-based JIT compilation or static compilation.

this publication has a nice listing of benefits over static compilation:

    http://www.hpl.hp.com/techreports/1999/HPL-1999-78.html

Some of it is outdated, as I find in particular that compiled traces are
very nice on contemporary speculative, out-of-order executing, branch
predicting, hyper-threading CPUs in ways that made no difference on deep
pipeline CPUs of old. It's a great read nonetheless.

Method-based JIT compilation does not play as well with modern CPUs, as
the greatest benefits are had from the inlining of functions and removal
of branches.

Even for C++, vtable indirection and the trampolines for calls across
shared libraries are tough on modern CPUs. Inlining and finalizing calls
helps, but with static profiling you only have one choice of organizing
the code, on one "representative" data set.

Best regards,
            Wim
--

-- 
WLavrijsen <at> lbl.gov    --    +1 (510) 486 6411    --    www.lavrijsen.net
Michael Sioutis | 4 Jul 2012 12:43
Picon

Re: Any publications regarding PyPy / trace-based JIT compiler?

Thank you Vim,


I will use it. I have also found "Trace-based compilation in execution environments without interpreters" that seems kind of relevant.
Mike

On Wed, Jul 4, 2012 at 9:29 AM, <wlavrijsen <at> lbl.gov> wrote:
Hi Michael,


I am in the process of writing a paper that will target some AI conference,
and I would like to ask if there are any relevant publications of yours or
in general that showcase the possible advantages of trace-based JIT
compilation over method-based JIT compilation or static compilation.

this publication has a nice listing of benefits over static compilation:

   http://www.hpl.hp.com/techreports/1999/HPL-1999-78.html

Some of it is outdated, as I find in particular that compiled traces are
very nice on contemporary speculative, out-of-order executing, branch
predicting, hyper-threading CPUs in ways that made no difference on deep
pipeline CPUs of old. It's a great read nonetheless.

Method-based JIT compilation does not play as well with modern CPUs, as
the greatest benefits are had from the inlining of functions and removal
of branches.

Even for C++, vtable indirection and the trampolines for calls across
shared libraries are tough on modern CPUs. Inlining and finalizing calls
helps, but with static profiling you only have one choice of organizing
the code, on one "representative" data set.

Best regards,
           Wim
--
WLavrijsen <at> lbl.gov    --    +1 (510) 486 6411    --    www.lavrijsen.net

_______________________________________________
pypy-dev mailing list
pypy-dev <at> python.org
http://mail.python.org/mailman/listinfo/pypy-dev
Carl Friedrich Bolz | 4 Jul 2012 14:44
Picon
Picon
Gravatar

Re: Any publications regarding PyPy / trace-based JIT compiler?

On 07/03/2012 11:28 PM, Michael Sioutis wrote:
> Dear PyPy team,
>
> I am in the process of writing a paper that will target some AI
> conference, and I would like
> to ask if there are any relevant publications of yours or in general
> that showcase the possible advantages
> of trace-based JIT compilation over method-based JIT compilation or
> static compilation.
>
> I just want to use 2 or 3 of them as references when I explain why my
> implementation is more scalable
> and robust when compared to some C/C++/Java implementations (appart from
> different data structures and
> algorithms).
>
> Thank you :)

The two PyPy papers about our tracing JIT are these:

http://dl.acm.org/citation.cfm?id=1565827
http://dl.acm.org/citation.cfm?id=2069172.2069181

However, they don't really precisely answer you question, why tracing 
JITs are better.

Cheers,

Carl Friedrich
David Edelsohn | 4 Jul 2012 16:19
Picon

Re: Any publications regarding PyPy / trace-based JIT compiler?

On Wed, Jul 4, 2012 at 8:44 AM, Carl Friedrich Bolz <cfbolz <at> gmx.de> wrote:
> On 07/03/2012 11:28 PM, Michael Sioutis wrote:
>>
>> Dear PyPy team,
>>
>> I am in the process of writing a paper that will target some AI
>> conference, and I would like
>> to ask if there are any relevant publications of yours or in general
>> that showcase the possible advantages
>> of trace-based JIT compilation over method-based JIT compilation or
>> static compilation.
>>
>> I just want to use 2 or 3 of them as references when I explain why my
>> implementation is more scalable
>> and robust when compared to some C/C++/Java implementations (appart from
>> different data structures and
>> algorithms).
>>
>> Thank you :)
>
>
> The two PyPy papers about our tracing JIT are these:
>
> http://dl.acm.org/citation.cfm?id=1565827
> http://dl.acm.org/citation.cfm?id=2069172.2069181
>
> However, they don't really precisely answer you question, why tracing JITs
> are better.

I don't think it is clear that tracing JITs are better.

Tracing often implies some other characteristics and features, such as
level of inlining, specialization and guards versus arbitrary control
flow, but method JITs are not prevented from adapting these
techniques.

The advantages and benefits are a lot subtler than tracing versus method JITs.

- David
Michael Sioutis | 11 Nov 2012 18:37
Picon

Re: Any publications regarding PyPy / trace-based JIT compiler?

Hello all!


I just wanted to inform the PyPy team that my paper got accepted in ICTAI 2012, and I presented it a few days ago.
You can find the paper here and the presentation here.

It felt good to disseminate a bit Python and PyPy :)

My next (long term) step is to use PyPy to parallelize some graph operations.

Regards,
Mike

On Tue, Jul 3, 2012 at 11:28 PM, Michael Sioutis <papito.dit <at> gmail.com> wrote:
Dear PyPy team,

I am in the process of writing a paper that will target some AI conference, and I would like
to ask if there are any relevant publications of yours or in general that showcase the possible advantages
of trace-based JIT compilation over method-based JIT compilation or static compilation.

I just want to use 2 or 3 of them as references when I explain why my implementation is more scalable
and robust when compared to some C/C++/Java implementations (appart from different data structures and
algorithms).

Thank you :)

Mike

_______________________________________________
pypy-dev mailing list
pypy-dev <at> python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Gmane