PGI Accelerator 编译器 新增针对 x86 多核 CPU 的 OpenACC 支持

NVIDIA宣布,15.10 版本的 PGI Accelerator Fortran、C 以及 C++ 编译器现已问世,该版本新增了在 x86 架构多核微处理器上支持 OpenACC指令并行编程标准。

NVIDIA宣布,15.10 版本的 PGI Accelerator Fortran、C 以及 C++ 编译器现已问世,该版本新增了在 x86 架构多核微处理器上支持 OpenACC指令并行编程标准。

全新的 PGI 编译器可实现高性能移植,让开发者能够对基于 OpenACC 的源代码进行编译,使其可以在多核 CPU 或 GPU 加速器上并行地执行。这种功能可为程序员带来巨大的灵活性,让他们能够凭借单一版本的源代码开发出可充分利用多种系统架构的应用。

NVIDIA PGI 编译器与工具总监 Douglas Miles 表示:“我们的目标是让 HPC 开发者能够利用通用的源代码库在各大 CPU 与加速器平台上轻松移植应用并实现一致的高性能。这种功能在通往百亿亿次级 (Exascale) 计算的竞赛中尤其重要。在这一竞赛中,将会有各种各样的系统架构需要更灵活的应用编程方式。”

这一全新的 PGI 特性能够对代码中的 OpenACC 计算部分进行编译,以便在 x86 处理器和多路服务器的所有处理核心上实现并行执行。所有这些处理核心会被视为一个共享内存的加速器,从而在所生成的 OpenACC 程序中消除了所有数据移动的系统开销。在默认情况下,该编译器生成的代码能够利用系统中所有可用的核心。程序员可以使用多种方法来控制和调整这一行为。

英国原子武器研究所 (AWE) 的 Wayne Gaudin 表示:“在不改动代码的情况下能够在 CPU 上运行 ACC 并且性能与我们的 OpenMP/MPI 版本相当,而且在 GPU 上可实现 4 倍性能提升,这着实令我们眼前一亮。从高性能移植与代码前瞻性的角度而言,这是非常完美的成绩。”

在多核 CPU 上运行 OpenACC 的主要优势有:

• 可有效利用多核 CPU 或多路服务器的所有核心来实现并行执行

• 通用编程模型可在 CPU 与 GPU 上使用 Fortran、C 以及 C++ 等语言

• 在程序中使用 KERNELS 指令能够快速利用现有的多核并行机制,从而为并行执行增进优化

• 在多核 CPU 与 GPU 上可扩展性能

橡树岭国家实验室项目总监 Buddy Bland 表示:“采用突破性硬件技术需要付出许多代价,将 HPC 应用从一个平台移植到另一个平台就是其中最重大的代价之一。从 Titan 这样的超级计算机到美国能源部即将问世的各大系统,针对多核 x86 CPU 的 OpenACC 让这些系统上现有的纯 CPU 应用和 GPU 应用能够具备延续性和代码移植性,可以在这些系统之间移植。”

OpenACC 风头正劲

目前已有 10,000 多名开发者使用 OpenACC,多项近期的开发成果均凸显出在高性能计算领域中采用 OpenACC 的重要性越来越高。近期在世界各地举办的黑客松 (Hackathon) 活动中,各个科学领域中的专家均利用加速器和 OpenACC 来加速其科学应用。这些应用涉及的领域十分广泛,其中包括 MRI 图像重建 (PowerGrid)、计算流体动力学 (INCOMP3D、HiPSTAR 和 Numeca)、宇宙学与天体物理学 (RAMSES、CASTRO 和 MAESTRO)、量子化学 (LSDALTON) 以及计算物理学 (NekCEM) 等等。

此外,Gaussian 公司还宣布,该公司正在利用 OpenACC 来把 GAUSSIAN 计算化学应用移植到加速器上来。最近在法国安纳西举办的有关气候与天气的 iCAS2 大会上,瑞士联邦气象气候局 (Meteosuisse) 宣布,该局已部署 GPU 加速版本的 COSMO,这是全球首款在 GPU 加速器上运行的正式版天气预报应用。

在最近一项由 150 名 OpenACC 开发者参加的调查问卷中,94% 的调查对象报告称,在加速器上运行代码时实现了速度提升。在这些用户当中,90% 以上的人会推荐 OpenACC。

写在最后

PGI Accelerator 编译器新增的功能可以让高性能开发者利用通用的源代码库进行跨平台编程,为使用者提供了便利,也体现出了NVIDIA在市场中正在扩大自己的地盘,向着x86平台进军。 

来源:ZD至顶网服务器频道

0赞

好文章,需要你的鼓励

2015

11/02

14:53

分享

点赞

邮件订阅
白皮书