We use cookies to improve your experience with our site.

面向异构高性能计算机的统一编程模型

Unified Programming Models for Heterogeneous High-Performance Computers

  • 摘要:
    研究背景 随着摩尔定律的放缓,基于异构加速处理器的高性能计算机成为当前发展的主流趋势。为了发挥异构系统的硬件性能,每个硬件提供商都开发了一套针对自己硬件的编程框架和私有加速库。这给应用开发人员进行程序移植带来了显著的挑战,极大地限制了高性能计算的发展和推广。一套统一的编程模型可以有效地提高各种异构高性能计算机上的程序可移植性。然而,尽管现有的统一编程模型在代码可移植性方面投入了大量精力,但仍远无法实现良好的性能可移植性。
    目的 性能可移植性,即一套代码不需要额外修改即可在不同异构系统上达到相当的计算效率。现有的统一编程模型通过统一的语法抽象,可以在一定程度上实现一套代码在不同异构高性能计算机上直接编译和运行,但目前的统一编程模型无法实现一套代码在不同异构系统上得到相当的计算效率。本文的主要研究目标是提出一种面向异构高性能计算机的统一编程模型设计思路,在代码可移植的基础上,进一步探索性能可移植。
    方法 本文提出了一种统一编程模型的设计思路,此编程模型的设计中包含四项关键技术:1) 引入领域特定语言,将领域知识应用于应用程序优化,从而可以为不同类型的应用程序进行深入的优化。2) 通过统一的编程抽象提供统一的表示,以便为不同的应用程序实施通用优化。3) 运用多层次编译优化技术解耦不同的优化阶段,并在每个阶段使用对应的优化策略。4) 使用轻量级运行时调度系统自动发现应用程序的并行性,并应用资源感知调度策略来提高资源利用率。
    结论 本文是一篇前瞻性文章,旨在分析当前统一编程模型的研究现状,并提出一种面向异构高性能计算机的统一编程模型的设计思路,以进一步探索性能可移植。

     

    Abstract: Unified programming models can effectively improve program portability on various heterogeneous high-performance computers. Existing unified programming models put a lot of effort to code portability but are still far from achieving good performance portability. In this paper, we present a preliminary design of a performance-portable unified programming model including four aspects: programming language, programming abstraction, compilation optimization, and scheduling system. Specifically, domain-specific languages introduce domain knowledge to decouple the optimizations for different applications and architectures. The unified programming abstraction unifies the common features of different architectures to support common optimizations. Multi-level compilation optimization enables comprehensive performance optimization based on multi-level intermediate representations. Resource-aware lightweight runtime scheduling system improves the resource utilization of heterogeneous computers. This is a perspective paper to show our viewpoints on programming models for emerging heterogeneous systems.

     

/

返回文章
返回