Innovative parallelism and programming for micro-core architectures
Innovative parallelism and programming for micro-core architectures
批准号:
1929846
负责人:
金额:
$0.0万
依托单位:
依托单位国家:
英国
项目类别:
Studentship
财政年份:
2017
资助国家:
英国
项目状态:
已结题
起止时间:
2017 至 --
中文摘要
与前几代相比,现代中央处理器(CPU)提供了显著的性能提升,但功耗水平却越来越不可持续。微核架构将大量简单、低功耗、低内存的核心组合在一个芯片上,在非常低的功耗水平下提供显著的并行性能。然而,微核架构很难编程,编程支持的不成熟目前是采用微核架构的一个重大障碍。这项研究围绕着一个假设展开,即非hpc程序员发现在微核架构中发现的并行化技术很困难,而他们首选的动态编程语言(例如Python)加剧了这个问题。这项工作的重点是在设计和实现方面关注可编程性。编程语言python被用作这项工作的研究工具,目的是研究问题的结果将与主流技术具有广泛的相关性。本项目目前正在解决的研究问题是:1。支持程序员与微核架构交互的最有效方法是什么?当前python实现中的技术是否适用于其他微核架构?Python /高级语言程序员在微核架构上的实际性能是什么?python是专门针对微核架构开发的,它提供了一个简单而丰富的并行编程环境。它已成功移植到许多微核架构:Adapteva Epiphany III, Xilinx MicroBlaze和PicoRV32 RISC-V。这项工作在利用python编程语言中内存极度受限的微核加速器方面取得了两项关键成就:管理任意大数据的能力和支持无限大小的本机编译代码。Python现在不仅为Python开发人员提供了接近90%的动态代码加载手工编写的C应用程序的性能,而且内存占用最小仅为3KB。COVID-19大流行施加的限制已经并将继续对我的家庭护理职责和家庭收入产生重大影响,需要额外的非项目工作。因此,EPSRC提交了一份申请,并批准了为期6个月的博士资助延期,确保了该项目将成功地回到正轨。Jamieson和N. Brown,“利用微核架构的分层存储器的高级编程抽象”,《并行与分布式计算杂志》,第138卷,第128-138页,2020年4月,doi: 10.1016/j.j jpdc.2019.11.011. m。Jamieson, N. Brown和S. Liu,“拥有你的蛋糕并吃掉它:利用Python在微核架构上开发程序员的生产力和性能”,第19届Python科学会议论文集(SciPy2020),虚拟会议,第107-115页,2020,doi: 10.25080/Majora-342d178e-00f。会议海报:M。Jamieson, N. Brown,“任一:基准微核加速器框架”,海报发表于:SC19会议,科罗拉多州丹佛市,2019年11月17-22日。(在线)。可用:https://sc19.supercomputing.org/proceedings/tech_poster/tech_poster_pages/rpost186.htmlM。Jamieson, N. Brown和S. Liu,“拥有你的蛋糕并吃掉它:利用Python在微核架构上开发程序员生产力和性能”,海报发表于:第19届Python科学会议(SciPy2020),虚拟会议,2020年7月6日至12日。(在线)。可用:https://raw.githubusercontent.com/mesham/epython/master/docs/SciPy-20-landscape-v1d6.pdf
英文摘要
Modern central processing units (CPU) have provided significant performance gains over previous generations but at increasingly unsustainable levels of power consumption. Micro-core architectures combine a large number of simple, low-power, low-memory cores placed on a single chip, providing significant parallel performance at very low power levels. However, micro-core architectures are difficult to program and the immaturity of programming support is currently a significant barrier to adoption.This research centres around the hypothesis that non-HPC programmers find parallelisation techniques found in micro-core architectures difficult and their preferred choice of dynamic programming languages (e.g. Python) exacerbates the issue. The focus of this work is concerned with programmability, both in terms of design and implementation. The programming language ePython has been used as a research vehicle for the work, with the intention that findings from the research questions will have a wide relevance to mainstream technologies.The research questions that this project is currently addressing are:1. What is the most effective way to support programmer interaction with micro-core architectures?2. Are the techniques in the current ePython implementation appropriate for other micro-core architectures?3. What is the realistic performance that Python / High-Level Language programmers can expect on micro-core architectures?ePython has been developed specifically to target micro-core architectures, providing a simple, yet rich, parallel programming environment. It has been successfully ported to a number of micro-core architectures: the Adapteva Epiphany III, Xilinx MicroBlaze and PicoRV32 RISC-V.This work has resulted in two key achievements for the leveraging of extremely memory-constrained micro-core accelerators within the ePython programming language: the ability to manage arbitrary large data and the support of natively compiled codes of unbounded size. ePython now not only provides Python developers with performance approaching 90% of hand-coded C applications with dynamic code loading, within a minimum memory footprint of only 3KB.The restrictions imposed by the COVID-19 pandemic have had, and continue to have, a major impact on my family care duties and household income, requiring additional non-project work. Consequently, an application was submitted and granted for a 6-month EPSRC PhD funding extension, ensuring that the project will be successfully brought back on track.Publications:M. Jamieson and N. Brown, 'High level programming abstractions for leveraging hierarchical memories with micro-core architectures', Journal of Parallel and Distributed Computing, vol. 138, pp. 128-138, Apr. 2020, doi: 10.1016/j.jpdc.2019.11.011.M. Jamieson, N. Brown, and S. Liu, 'Having your cake and eating it: Exploiting Python for programmer productivity and performance on micro-core architectures using ePython', Proceedings of the 19th Python in Science Conference (SciPy2020), Virtual Conference, pp. 107-115, 2020, doi: 10.25080/Majora-342d178e-00f.Conference posters:M. Jamieson, N. Brown, 'Eithne: A Framework for Benchmarking Micro-Core Accelerators', Poster presented at: SC19 Conference, Denver, Colorado, 2019 Nov 17-22. [Online]. Available: https://sc19.supercomputing.org/proceedings/tech_poster/tech_poster_pages/rpost186.htmlM. Jamieson, N. Brown, and S. Liu, 'Having your Cake and Eating it: Exploiting Python for Programmer Productivity and Performance on Micro-core Architectures Using ePython', Poster presented at: 19th Python in Science Conference (SciPy2020), Virtual Conference, 2020 Jul 6-12. [Online]. Available: https://raw.githubusercontent.com/mesham/epython/master/docs/SciPy-20-landscape-v1d6.pdf
期刊论文(5)
专著(0)
科研奖励(0)
会议论文
Having your cake and eating it: Exploiting Python for programmer productivity and performance on micro-core architectures using ePython
鱼与熊掌兼得:利用 Python 在使用 ePython 的微核架构上提高程序员的工作效率和性能
DOI:
10.25080/majora-342d178e-00f
发表时间:
2020
期刊:
影响因子:
--
作者:
[Jamieson M]
通讯作者:
Jamieson M
High level programming abstractions for leveraging hierarchical memories with micro-core architectures
用于利用具有微核架构的分层存储器的高级编程抽象
DOI:
10.1016/j.jpdc.2019.11.011
发表时间:
2020
期刊:
Journal of Parallel and Distributed Computing
影响因子:
3.8
作者:
[Jamieson M]
通讯作者:
Jamieson M
DOI:
10.1145/3446804.3446853
发表时间:
2021
期刊:
影响因子:
--
作者:
[Jamieson M]
通讯作者:
Jamieson M
海外基金