ePython: An Implementation of Python for the Many-Core Epiphany Co-processor

ePython: An Implementation of Python for the Many-Core Epiphany Co-processor
复制标题

ePython:用于多核 Epiphany 协处理器的 Python 实现

DOI:
--
复制
发表时间:
2016
期刊:
Workshop on Python for High-Performance and Scientific Computing
影响因子:
--
通讯作者:
Nick Brown
Nick Brown
中科院分区:
--
文献类型:
--
作者:
Nick Brown

文献摘要

被引文献

相似文献

Epiphany是一种多核、低功耗、低片上存储器架构,可以非常便宜地访问多个并行内核,这对HPC教育和原型设计非常有益。这些架构的非常低的功耗性质也意味着,有可能在未来的HPC机器中使用它们,但是有一个很高的门槛,进入他们的编程由于相关的复杂性和不成熟的支持tools.In本文中,我们提出了我们的工作ePython,Python的一个子集的主显节和类似的众核协处理器。由于每个内核的片上内存有限,我们开发了一个新的Python解释器,再加上对并行性的额外支持,这意味着新手可以利用Python在Epiphany上快速编写并行代码,并使用较小规模的并行机探索HPC的概念。Python的高级性质为Epiphany开辟了新的可能性,我们从可编程性和性能的角度研究了计算密集型Gauss-Seidel代码,讨论了在主机CPU和Epiphany上运行Python混合,以及CPU上的完整Python解释器和Epyphany上的ePython之间的互操作性。这项工作的结果是支持在Epiphany上开发Python,它可以应用于其他类似的架构,社区已经开始采用和使用这些架构来探索并行和HPC的概念。
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.