Is This a Dumb Idea? paralellizing byte codes

Jon Forrest <nobozo@gmail.com>
Sat, 22 Oct 2022 11:00:36 -0700 (PDT)

          From comp.compilers

Related articles
Is This a Dumb Idea? paralellizing byte codes nobozo@gmail.com (Jon Forrest) (2022-10-22)
Re: Is This a Dumb Idea? paralellizing byte codes alain@universite-de-strasbourg.fr (Alain Ketterlin) (2022-10-22)
Re: Is This a Dumb Idea? paralellizing byte codes DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2022-10-23)
Re: Is This a Dumb Idea? paralellizing byte codes gah4@u.washington.edu (gah4) (2022-10-22)
Parallelizing byte codes christopher.f.clark@compiler-resources.com (Christopher F Clark) (2022-10-23)
Re: Is This a Dumb Idea? paralellizing byte codes anton@mips.complang.tuwien.ac.at (2022-10-23)
Re: Is This a Dumb Idea? paralellizing byte codes anton@mips.complang.tuwien.ac.at (2022-10-23)
[5 later articles]
| List of all articles for this month |

From: Jon Forrest <nobozo@gmail.com>
Newsgroups: comp.compilers
Date: Sat, 22 Oct 2022 11:00:36 -0700 (PDT)
Organization: Compilers Central
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="60587"; mail-complaints-to="abuse@iecc.com"
Keywords: question, optimize, interpreter
Posted-Date: 22 Oct 2022 14:51:29 EDT

Modern CPUs employ all kinds of clever techniques to improve
instruction level parallelism (ILP). I was wondering if it
makes sense to try to employ similar techniques in the
virtual machines used to execute byte code produced by language
compilers.


By that I mean what if virtual machines were to examine byte code
streams to detect when it would be safe to execute multiple
byte codes concurrently? Then, based on its findings, the virtual
machine would execute as many byte codes concurrently as is safe.


I have no idea if the overhead of the byte code examination would
exceed any advantage of the concurrent execution, although it's
important to point out that this examination would only have to
be done once, and the results could somehow be stored along with
the byte code. Of course, if the byte code changes the examination
would have to be done again.


I'm also worried that internal virtual machine locking requirements
might make this idea infeasible. For example, in a virtual machine with
a global interpreter lock, would it be possible for there to be any
concurrent execution?


This idea, if it works, would be a great way to take advantage of
multiple cores without having to rewrite any user code. The big
question is whether it would work.


Comments?
Jon Forrest


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.