Show simple item record

dc.contributor.author
Meier, Remigius
dc.contributor.supervisor
Gross, Thomas
dc.contributor.supervisor
Mössenböck, Hanspeter
dc.contributor.supervisor
Schulz, Martin
dc.date.accessioned
2019-10-17T05:50:38Z
dc.date.available
2019-10-16T18:37:16Z
dc.date.available
2019-10-17T05:50:38Z
dc.date.issued
2019
dc.identifier.uri
http://hdl.handle.net/20.500.11850/371019
dc.identifier.doi
10.3929/ethz-b-000371019
dc.description.abstract
Today’s hardware is increasingly parallel, and modern programming languages must thus allow a programmer to use this parallelism effectively. For languages that depend on a virtual machine (vm), it is the responsibility of the vm to execute code efficiently and in parallel. In the case of Python, a popular dynamic language, several vms exist, but none of them can deliver high performance and parallel execution at the same time. The reason for the lack of such a high-performance, parallel vm for Python lies with Python’s concurrency semantics, which is based on a strong memory model and atomic operations on large entities. Such a concurrency semantics does not map well to modern hardware architectures, which is why parallel vms must emulate this semantics under parallel execution through expensive synchronization. This dissertation introduces a new approach to the design and construction of high-performance, parallel vms with a concurrency semantics such as Python’s. The introduction of large-scale atomicity to the implementation language of a vm lets a vm developer specify the concurrency semantics independently from the vm’s synchronization mechanism. Thereby, the used synchronization mechanism becomes an exchangeable vm component. For the high-performance execution of Python code, just-in-time compilation is an essential concern. Unfortunately, Python’s strong memory model inhibits basic compiler optimizations under concurrency. Hence, to allow a compiler to optimize effectively, the concept of Parallel Worlds is introduced. Parallel Worlds transparently isolate concurrent computations from each other, and thereby allow for effective optimizations under the assumption of no concurrency. The transparent isolation of Parallel Worlds is supported by a special-purpose software transactional memory system (stm). Apart from isolation, this stm is the key enabler for the efficient parallel execution of Python code. Parallel execution builds on the speculative execution capability of the stm. The product of this dissertation is PyPy-stm, a high-performance, parallel vm for Python. With PyPy-stm, multi-threaded Python programs can take advantage of the parallelism in modern hardware. On a set of benchmark programs, PyPy-stm outperforms established Python vms such as CPython, Jython, IronPython, and PyPy. Compared with PyPy, the current top-of-class in program performance, PyPy-stm achieves speedups in the range of 1.5 to 8.0× with 8 threads available. These results confirm the viability of the approach and show that PyPy-stm deserves the designation as a high-performance, parallel vm for Python.
en_US
dc.format
application/pdf
en_US
dc.language.iso
en
en_US
dc.publisher
ETH Zurich
en_US
dc.rights.uri
http://creativecommons.org/licenses/by-sa/4.0/
dc.subject
Dynamic language
en_US
dc.subject
Virtual machine
en_US
dc.subject
Just-in-time Compilation
en_US
dc.subject
Performance
en_US
dc.subject
Parallel computing
en_US
dc.subject
Parallel programming language
en_US
dc.subject
Parallelism
en_US
dc.subject
Transactional memory
en_US
dc.title
A High-Performance, Parallel Virtual Machine for Python
en_US
dc.type
Doctoral Thesis
dc.rights.license
Creative Commons Attribution-ShareAlike 4.0 International
dc.date.published
2019-10-17
ethz.size
144 p.
en_US
ethz.code.ddc
DDC - DDC::0 - Computer science, information & general works::004 - Data processing, computer science
ethz.code.ddc
DDC - DDC::0 - Computer science, information & general works::004 - Data processing, computer science
en_US
ethz.identifier.diss
26030
en_US
ethz.publication.place
Zurich
en_US
ethz.publication.status
published
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::03422 - Gross, Thomas (emeritus) / Gross, Thomas (emeritus)
en_US
ethz.leitzahl.certified
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::03422 - Gross, Thomas (emeritus) / Gross, Thomas (emeritus)
en_US
ethz.date.deposited
2019-10-16T18:37:40Z
ethz.source
FORM
ethz.eth
yes
en_US
ethz.availability
Open access
en_US
ethz.rosetta.installDate
2019-10-17T05:50:52Z
ethz.rosetta.lastUpdated
2020-02-15T22:05:01Z
ethz.rosetta.exportRequired
true
ethz.rosetta.versionExported
true
ethz.COinS
ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.atitle=A%20High-Performance,%20Parallel%20Virtual%20Machine%20for%20Python&rft.date=2019&rft.au=Meier,%20Remigius&rft.genre=unknown&rft.btitle=A%20High-Performance,%20Parallel%20Virtual%20Machine%20for%20Python
 Search print copy at ETH Library

Files in this item

Thumbnail

Publication type

Show simple item record