This paper consists of three parts. The first part provides a unified programming model for heterogeneous computing with CPU and accelerator (like GPU, FPGA, Google TPU, Atos QPU, and more) technologies. To some extent, this new programming model makes programming across CPUs and accelerators turn into usual programming tasks with common programming languages, and relieves complexity of programming across CPUs and accelerators. It can be achieved by extending file managements in common programming languages, such as C/C++, Fortran, Python, MPI, etc., to cover accelerators as I/O devices. In the second part, we show that all types of computer systems can be reduced to the simplest type of computer system, a single-core CPU computer system with I/O devices, by the unified programming model. Thereby, the unified programming model can truly build the programming of various computer systems on one API (i.e. file managements of common programming languages), and can make programming for various computer systems easier. In third part, we present a new approach to coupled applications computing (like multidisciplinary simulations) by the unified programming model. The unified programming model makes coupled applications computing more natural and easier since it only relies on its own power to couple multiple applications through MPI.
翻译:本文由三部分组成。第一部分提出了一种面向CPU与加速器(如GPU、FPGA、Google TPU、Atos QPU等)技术的异构计算统一编程模型。该新型编程模型在某种程度上使得跨CPU与加速器的编程转变为使用通用编程语言的常规编程任务,并降低了跨CPU与加速器编程的复杂度。其实现方式是通过扩展通用编程语言(如C/C++、Fortran、Python、MPI等)的文件管理功能,将加速器作为I/O设备进行覆盖。第二部分论证了通过该统一编程模型,所有类型的计算机系统均可简化为最简单的计算机系统类型——即配备I/O设备的单核CPU计算机系统。由此,统一编程模型能够真正将各类计算机系统的编程建立在单一API(即通用编程语言的文件管理功能)之上,并使针对各类计算机系统的编程更为简易。第三部分提出了基于统一编程模型的耦合应用计算(如多学科仿真)新方法。该统一编程模型仅依靠自身能力通过MPI耦合多个应用,使得耦合应用计算更为自然且易于实现。