  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.
