[Vm-dev] RoarVM: The Manycore SqueakVM

Stefan Marr squeak at stefan-marr.de
Thu Nov 4 20:18:38 UTC 2010

Hi Bert:

On 04 Nov 2010, at 20:20, Bert Freudenberg wrote:

>>> So RoarVM is about 4 times slower in sends, even more so for bytecodes. It needs 8 cores to be faster the regular interpreter on a single core. To the good news is that it can beat the old interpreter :)  But why is it so much slower than the normal interpreter?
>> Well, one the one hand, we don't use stuff like the GCC label-as-value extension to have threaded-interpretation, which should help quite a bit.
>> Then, the current implementation based on pthreads is quite a bit slower then our version which uses plain Unix processes.
>> The GC is really not state of the art.
>> And all that adds up rather quickly I suppose...
> Hmm, that doesn't sound like it should make it 4x slower ...
Do you know some numbers for the switch/case-based vs. the threaded version on the standard VM?
How much do you typically gain by it? 

One thing I forgot to mentioned in this context, it the object table we use.
That is also something which is not exactly making the VM faster.

>>> Btw, user interrupt didn't work on the Mac. 
>> Cmd+. ? Works for me ;) Well, can you be a bit more specific? In which situation did it not work?
> I was doing the equivalent of
> 	SharedQueue new next
> and that seems not interruptable. Also, when there are multiple processes, closing the window does not quit all processes, and even ctrl-c did not quit the VM.

Closing the window, how does that relate to processes? You mean a window inside the image?
Per se, processes are not really owned or managed, so there is also nobody kill processes. However, I am not sure what you are referring to exactly.  

Ctrl-C doesn't work, that's true.
However, closing the X11 window usually does the trick ;)

>>> And in the Squeak-4.1 image, when running on 2 or more cores Morphic gets incredibly sluggish, pretty much unusably so.
>> Yes, same here. Sorry. Any hints where to start looking to fix such issues are appreciated.
> Hmm. There are long freezes of many seconds and I would have no idea where to start even ...
Ok, several seconds, hm. That does not really sound like the GC pauses I see.
But I haven't used the Squeak image a lot myself on the RoarVM.
I was more thinking in the direction of what kind of tricks are currently pulled to make things fast.
Perhaps, the X11 interface is already not the fastest compared to the standard approach, or there are some plugins in the VM which help performance but aren't included in RoarVM yet. I have never looked at the Squeak VM code myself, so I don't know a lot about what is actually done there.

Best regards

> - Bert -

Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
Phone: +32 2 629 2974
Fax:   +32 2 629 3525

More information about the Vm-dev mailing list