Sly and the RoarVM: Exploring the Manycore Future of Programming
My second talk at Smalltalks 2012 was most likely the reason why the organizers invited me in the first place. It was a slightly extended version of the Sly and RoarVM talk for the FOSDEM Smalltalk Dev Room from the beginning of the year, reporting on the Renaissance Project.
This time, the talk included more details on the RoarVM and mentioned a few experiments.
The manycore future has several challenges ahead of us that suggest that fundamental assumptions of contemporary programming approaches do not apply anymore when scalability is required.
Sly is a language prototype designed to experiment with the inherently nondeterministic properties of parallel systems. It is designed to enable programmers to embrace nondeterminism instead of guiding them to fight it. Nature shows that complex system can be built from independent entities that achieve a common goal without global synchronization/communication. Sly is design to enable the prototyping of algorithms that show such emerging behavior. We introduce it in the first part of the talk.
The second part of the talk focuses on the underlying problems of building virtual machines for the manycore future, which allow us to harness the available computing power. The RoarVM was design to experiment on the Tilera TILE64 manycore processor architecture, which provides 64 cores and characteristics that are distinctly different from today’s commodity multicore processors. Memory bandwidth, caches, and communication are the biggest challenges on such architectures. This talk gives a brief overview over the design choices of the RoarVM, which tackle the characteristics of the TILE64 architecture.
Acknowledgement: Sly and the RoarVM were designed and implemented by David Ungar and Sam Adams at IBM Research.