RoarVM: The Manycore SqueakVM
We are happy to announce, now officially, RoarVM: the first single-image manycore virtual machine for Smalltalk.
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 we are working on it.
A small teaser:
1 core 66286897 bytecodes/sec; 2910474 sends/sec
8 cores 470588235 bytecodes/sec; 19825677 sends/sec
RoarVM is based on the work of David Ungar and Sam S. Adams at IBM Research. The port to x86 multicore systems was done by me. They open-sourced their VM, formerly know as Renaissance VM (RVM), under the Eclipse Public License. Official announcement of the IBM source code release: http://stefan-marr.de/rvm-open-source-release/
The source code of the RoarVM has been released as open source to enable the Smalltalk community to evaluate the ideas and possibly integrate them into existing systems. So, the RoarVM is meant to experiment with Smalltalk systems on multi- and manycore machines.
The open source project, and downloads can also be found on GitHub:
http://github.com/smarr/RoarVM http://github.com/smarr/RoarVM/downloads
For more detailed information, please refer to the README file. Instructions to compile the RoarVM on Linux and OS X can be found in the INSTALL file. Windows is currently not supported, however, there are good chances that it will work with cygwin or pthreads for win32, but that has not be verified in anyway. If you feel brave, please give it a shot and report back.
If the community does not object, we would like to occupy the vm-dev@lists.squeakfoundation.org mailinglist for related discussions. So, if you run into any trouble while experimenting with the RoarVM, do not hesitate to report any problems and ask any questions.
You can also follow us on Twitter @roarvm.