Hello.
I'm new to V8. I've taken a look at some source code but everything is
still pretty confusing now.
I'd like to implement a simple loop parallelizer on top of V8. I'm
currently targeting very simple kinds of loops.
For example, let's assume 'myarray' contains 100 0s. Then
for (i = 0; i < 100; i++) {
myarray[i] = i;
}
Each iteration of the loop above is independent in the loop above, and in
C-like languages, parallelizing tools such as OpenMP can execute this loop
in multiple threads (and in multiple cores) for better speedup. I'd like to
do a similar thing on top of V8. I'm thinking of implementing it on
Crankshaft code, because this kind of optimization is effective only if a
loop is not anyway.
Let's say, I want to use four cores in my system, so four threads to run
this loop. Each thread can run in parallel, but sometimes they need to
communicate. How can I achieve this? If it is not really well supported by
V8 as is, I don't mind hacking on it. Followings are the various options I
am thinking:
1. Use multiple Isolates and create a communication channel (like software
queue or something) between them, because AFAIK communication between
Isolates does not seem to be supported.
2. Use one Isolate and multiple Contexts within it, and run each Context in
a different thread. I'm not sure if this is even possible, though.
3. Use multiple WorkerThreads to achieve this.
(By the way, there are v8::Worker::WorkerThread and
v8::platform::WorkerThread, and it looks like v8::platform::WorkerThread is
used by background jobs like compilation, and v8::Worker::WorkerThread is
used by web workers. Right? I'm not even sure which one I need between
these two.)
4. Don't mess with Isolates or Contexts or Workers and just implement
threading routines in Crankshaft-generated jitted code directly.
I think I need to dig into the source code more deeply to understand the
overall structure, but any advice would be really helpful in the current
stage because I'm pretty new to all this.
Thank you.
--
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.