DLS 2016
Tue 1 Nov 2016 Amsterdam, Netherlands
co-located with SPLASH 2016
Tue 1 Nov 2016 13:30 - 13:55 at Matterhorn 1 - Session 3 Chair(s): Laurence Tratt

The RPython framework takes an interpreter for a dynamic language as its input
and produces a Virtual Machine~(VM) for that language. RPython is being used
to develop PyPy, a high-performance Python interpreter. However, the produced
VM does not support parallel execution since the framework relies on a Global
Interpreter Lock~(GIL): PyPy serialises the execution of multi-threaded Python

We describe the rationale and design of a new parallel execution model for RPython that
allows the generation of parallel virtual machines while leaving the language semantics
unchanged. This model then allows different implementations of concurrency control, and
we discuss an implementation based on a GIL and an implementation based on
Software Transactional Memory~(STM).

To evaluate the benefits of either choice, we adapt PyPy to work with both
implementations (GIL and STM). The evaluation shows that PyPy with STM improves the
runtime of a set of multi-threaded Python programs over PyPy with a GIL by
factors in the range of $1.87\times$ up to $5.96\times$ when
executing on a processor with 8 cores.

Tue 1 Nov
Times are displayed in time zone: (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:10: Session 3DLS at Matterhorn 1
Chair(s): Laurence TrattKing's College London
13:30 - 13:55
Remigius MeierETH Zurich, Switzerland, Armin RigoPyPy.org, Switzerland, Thomas GrossETH Zurich
13:55 - 14:20
Guido ChariUniversity of Buenos Aires, Argentina, Diego GarbervetskyUniversity of Buenos Aires, Argentina, Stefan MarrJohannes Kepler University Linz
DOI Pre-print
14:20 - 14:45
Vincent Foley-BourgonMcGill University, Canada, Laurie HendrenMcGill University, Canada
14:45 - 15:10
Lukas StadlerOracle Labs, Austria, Adam WelcOracle Labs, USA, Christian HumerOracle Labs, Switzerland, Mick JordanOracle Labs, USA