ePython: An implementation of Python for the many-core Epiphany coprocessor

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

The Epiphany is a many-core, low power, low on-chip memory architecture and one can very cheaply gain access to a number of parallel cores which is beneficial for HPC education and prototyping. The very low power nature of these architectures also means that there is potential for their use in future HPC machines, however there is a high barrier to entry in programming them due to the associated complexities and immaturity of supporting tools.

In this paper we present our work on ePython, a subset of Python for the Epiphany and similar many-core co-processors. Due to the limited on-chip memory per core we have developed a new Python interpreter and this, combined with additional support for parallelism, has meant that novices can take advantage of Python to very quickly write parallel codes on the Epiphany and explore concepts of HPC using a smaller scale parallel machine. The high level nature of Python opens up new possibilities on the Epiphany, we examine a computationally intensive Gauss-Seidel code from the programmability and performance perspective, discuss running Python hybrid on both the host CPU and Epiphany, and interoperability between a full Python interpreter on the CPU and ePython on the Epiphany. The result of this work is support for developing Python on the Epiphany, which can be applied to other similar architectures, that the community have already started to adopt and use to explore concepts of parallelism and HPC.
Original languageEnglish
Title of host publicationPyHPC2016: 6th Workshop on Python for High-Performance and Scientific Computing
Number of pages8
ISBN (Electronic)978-1-5090-5220-2
DOIs
Publication statusPublished - 20 Oct 2016

Fingerprint

Dive into the research topics of 'ePython: An implementation of Python for the many-core Epiphany coprocessor'. Together they form a unique fingerprint.

Cite this