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

Abstract / Description of output

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.
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
DOIs
Publication statusPublished - 10 Jul 2020
EventScientific Computing with Python 2020 - Virtual conference
Duration: 6 Jul 202012 Jul 2020
https://www.scipy2020.scipy.org/

Publication series

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

Conference

ConferenceScientific Computing with Python 2020
Abbreviated titleSciPy 2020
CityVirtual conference
Period6/07/2012/07/20
Internet address

Keywords / Materials (for Non-textual outputs)

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

Fingerprint

Dive into the research topics of 'Having your cake and eating it: Exploiting Python for programmer productivity and performance on micro-core architectures using ePython'. Together they form a unique fingerprint.

Cite this