Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Virtual machine design for parallel dynamic programming languages

View through CrossRef
To leverage the benefits of modern hardware, dynamic languages must support parallelism, and parallelism requires a virtual machine (VM) capable of parallel execution — a parallel VM. However, unrestricted concurrency and the dynamism of dynamic languages pose great challenges to the implementation of parallel VMs. In a dynamic language, a program changing itself is part of the language model. To help the VM, languages often choose memory models (MM) that weaken consistency guarantees. With lesser guarantees, local program state cannot be affected by every concurrent state change. And less interference allows a VM to make local assumptions about the program state which are not immediately violated. These local assumptions are essential for a VM’s just-in-time compiler for delivering state-of-the-art VM performance. Unfortunately, some dynamic languages employ MMs that give exceedingly strong consistency guarantees and thereby hinder the development of parallel VMs. Such is the case in particular for languages that depend on a global interpreter lock, which mandates a MM with sequential consistency and instruction atomicity. In this paper, we reflect on a first implementation of the Parallel RPython execution model, which facilitates the development of parallel VMs by decoupling language semantics from the synchronization mechanism used within the VM. The implementation addresses the challenges imposed by strong MMs through strict isolation of concurrent computations. This isolation builds on transactional parallel worlds, which are implemented with a novel combination of software techniques and the capabilities of modern hardware. We evaluate a set of parallel Python programs on a parallel VM that relies on Parallel RPython’s implementation. Compared with a serial baseline VM that relies on a global interpreter lock, the parallel VM achieves speedups of up to 7.5× on 8 CPU cores. The evaluation shows that our realization of Parallel RPython meets the challenges of dynamic languages, and that it can serve as a solid foundation for the construction of parallel dynamic language VMs.
Title: Virtual machine design for parallel dynamic programming languages
Description:
To leverage the benefits of modern hardware, dynamic languages must support parallelism, and parallelism requires a virtual machine (VM) capable of parallel execution — a parallel VM.
However, unrestricted concurrency and the dynamism of dynamic languages pose great challenges to the implementation of parallel VMs.
In a dynamic language, a program changing itself is part of the language model.
To help the VM, languages often choose memory models (MM) that weaken consistency guarantees.
With lesser guarantees, local program state cannot be affected by every concurrent state change.
And less interference allows a VM to make local assumptions about the program state which are not immediately violated.
These local assumptions are essential for a VM’s just-in-time compiler for delivering state-of-the-art VM performance.
Unfortunately, some dynamic languages employ MMs that give exceedingly strong consistency guarantees and thereby hinder the development of parallel VMs.
Such is the case in particular for languages that depend on a global interpreter lock, which mandates a MM with sequential consistency and instruction atomicity.
In this paper, we reflect on a first implementation of the Parallel RPython execution model, which facilitates the development of parallel VMs by decoupling language semantics from the synchronization mechanism used within the VM.
The implementation addresses the challenges imposed by strong MMs through strict isolation of concurrent computations.
This isolation builds on transactional parallel worlds, which are implemented with a novel combination of software techniques and the capabilities of modern hardware.
We evaluate a set of parallel Python programs on a parallel VM that relies on Parallel RPython’s implementation.
Compared with a serial baseline VM that relies on a global interpreter lock, the parallel VM achieves speedups of up to 7.
5× on 8 CPU cores.
The evaluation shows that our realization of Parallel RPython meets the challenges of dynamic languages, and that it can serve as a solid foundation for the construction of parallel dynamic language VMs.

Related Results

Programming Language as Eligible One: Legal Aspects
Programming Language as Eligible One: Legal Aspects
The article examines the situation with the introduction of programming languages as an eligible element and the possibilities of recognizing programming languages as acceptable an...
Design
Design
Conventional definitions of design rarely capture its reach into our everyday lives. The Design Council, for example, estimates that more than 2.5 million people use design-related...
EFEKTIFITAS PELATIHAN LABORATORIUM VIRTUAL SEBAGAI MEDIA PEMBELAJARAN BAGI GURU KIMIA
EFEKTIFITAS PELATIHAN LABORATORIUM VIRTUAL SEBAGAI MEDIA PEMBELAJARAN BAGI GURU KIMIA
EFFECTIVITY OF VIRTUAL LABORATORY TRAINING AS A LEARNING MEDIA FOR CHEMISTRY TEACHERSAchmad Lutfi, SukarminUniversitas Negeri Surabaya, Indonesia achmadlutfi@unesa.ac.idAbstractThe...
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
Kra-Dai Languages
Kra-Dai Languages
Kra-Dai (also called Tai-Kadai and Kam-Tai) is a family of approximately 100 languages spoken in Southeast Asia, extending from the island of Hainan, China, in the east to the Indi...
VR 101
VR 101
Today we call many things “virtual.” Virtual corporations connect teams of workers located across the country. In leisure time, people form clubs based on shared interests in polit...
Parallel programming: Driving the computational surge in AI
Parallel programming: Driving the computational surge in AI
With the meteoric ascent and ongoing advancements in the realm of Artificial Intelligence (AI), there's an escalating demand for potent computational capabilities. Meeting the exac...

Back to Top