Hear the Mouse Roar on Multi-Core!
5 November, 2010
Stefan Marr has just announced on his blog the relase of RoarVM, the first single-image manycore virtual machine for Smalltalk. RoarVM is based on the work on Renaissance VM by David Ungar and Sam S. Adams at IBM Research, and was ported to x86 architecture by Stefan.
From his post: “The RoarVM supports the parallel execution of Smalltalk programs on x86 compatible multicore systems and Tilera TILE64-based manycore systems. It is tested with standard Squeak 4.1 closure-enabled images, and with a stripped down version of a MVC-based Squeak 3.7 image.” Support for Pharo 1.2 is currently limited to 1 core, but this is being worked on!
Here’s some indicative figures for this new VM (using an adapted version of tinyBenchmarks on an MVC image):
1 core 66M bytecodes/sec; 3M sends/sec 8 cores 470M bytecodes/sec; 20M sends/sec
As Stefan notes “The RoarVM is a research project and is not as optimized for performance as the standard Squeak VM”. For comparison:
Squeak 4.2.4beta1U, MVC image, OS X 555M bytecodes/sec; 12M sends/sec
so you’ll need a few cores active before you start to see improvements over your existing image! There are also a number of known issues with the current implementation.
You can download the code from the RoarVm page at GitHub, contribute to the discussion on the vm-dev mailing list, or follow #RoarVM updates on Twitter.