Edinburgh Research Explorer

Having your cake and eating it: Exploiting Python for programmer productivity and performance on micro-core architectures using ePython

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

Related Edinburgh Organisations

Open Access permissions



  • Download as Adobe PDF

    Final published version, 198 KB, PDF document

    Licence: Creative Commons: Attribution (CC-BY)

Original languageEnglish
Title of host publicationProceedings of the 19th Python in Science Conference
Subtitle of host publicationSciPy 2020
EditorsMeghann Agarwal, Chris Calloway, Dillon Niederhut, David Shupe
Place of PublicationAustin, Texas
Pages97 - 105
Number of pages9
Publication statusPublished - 10 Jul 2020
EventScientific Computing with Python 2020 - Virtual conference
Duration: 6 Jul 202012 Jul 2020

Publication series

NameProceedings of the Python in Science Conferences
ISSN (Electronic)2575-9752


ConferenceScientific Computing with Python 2020
Abbreviated titleSciPy 2020
CityVirtual conference
Internet address


Micro-core architectures combine many simple, low memory, low power computing cores together in a single package. These can be used as a co-processor or standalone but due to limited on-chip memory and esoteric nature of the hardware, writing efficient parallel codes for these chips is challenging. In this paper we discuss our very low memory implementation of Python, ePython, supporting the rapid development of parallel Python codes for these co-processors. An offload abstraction is introduced, where programmers decorate specific functions in their Python code, running under any Python interpreter on the host CPU, with the underlying technology then taking care of the low level data movement, scheduling and ePython execution on the micro-core co-processor. A benchmark solving Laplace's equation for diffusion via Jacobi iteration is used to explore the performance of ePython on three different micro-core architectures, and introduces work around native compilation for micro-cores and the performance advantages that this can provide.

    Research areas

  • ePython, micro-cores, RISC-V, MicroBlaze, PicoRV32, Epiphany


Scientific Computing with Python 2020


Virtual conference

Event: Conference

Download statistics

No data available

ID: 154960069