harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rodrigo Kumpera <kump...@gmail.com>
Subject Re: Threading
Date Sun, 22 May 2005 15:52:25 GMT
Green threads have a lot of problems that are hard to solve. You have to 
deal with blocking function, interupts, syscall restarts, blocking native 
code, etc...

JikesRVM handles that gracefully? My impression is that everyone is dropping 
this M:N model because of implementation issues. BEA dropped it on jrockit. 
IBM was developing such system for posix threads in linux, but a simple 1:1 
that solved some scalability problems in the kernel was choosen.

On 5/22/05, Steve Blackburn <Steve.Blackburn@anu.edu.au> wrote:
> The Jikes RVM experience is kind of interesting...
> From the outset, one of the key goals of the project was to achieve
> much greater levels of scalability than the commercial VMs could deliver
> (BTW, the project was then known as Jalapeno). The design decision
> was to use a multiplexed threading model, where the VM scheduled its own
> "green" threads on top of posix threads, and multiple posix threads were
> supported. One view of this was that it was pointless to have more than
> one posix thread per physical CPU (since multiple posix threads would
> only have to time slice anyway). Under that world view, the JVM might
> be run on a 64-way SMP with 64 kernel threads onto which the user
> threads were mapped. This resulted in a highly scalable system: one of
> the first big achievements of the project (many years ago now) was
> enormously better scalability than the commercial VMs on very large SMP
> boxes.
> I was discussing this recently and the view was put that really this
> level of scalability was probably not worth the various sacrifices
> associated with the approach (our load balancing leaves something to be
> desired, for example). So as far as I know, most VMs these days just
> rely on posix style threads. Of course in that case your scalability
> will largely depend on your underlying kernel threads implementation.
> As a side note, I am working on a project with MITRE right now where
> we're implementing coroutine support in Jikes RVM so we can support
> massive numbers of coroutines (they're using this to run large scale
> scale simulations). We've got the system pretty much working and can
> support > 100000 of these very light weight threads. This has been
> demoed at MITRE and far outscales the commercial VMs. We achieve it
> with a simple variation of cactus stacks. We expect that once
> completed, the MITRE work will be contributed back to Jikes RVM.
> Incidentally, this is a good example of where James Gosling misses the
> point a little: MITRE got involved in Jikes RVM not because it is
> "better" than the Sun VM, but because it was OSS which meant they could
> fix a limitation (and redistribute the fix) that they observed in the
> commercial and non-commercial VMs alike.
> --Steve

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message