提升高性能计算程序性能可移植性的领域特定语言①

2020-03-31 12:17:06文渊博孙广中陈云霁
高技术通讯 2020年2期
关键词:优化

李 韦 文渊博 孙广中 陈云霁

(*中国科学技术大学计算机科学与技术学院 合肥 230026) (**计算机体系结构国家重点实验室(中国科学院计算技术研究所) 北京 100190) (***上海寒武纪信息科技有限公司 上海 201203)

0 引 言

过去的几十年,在高性能计算(high-performance computing,HPC)社区的软件开发工作中,诞生了许多广泛使用的高性能函数库,这些函数库或针对计算进行优化,如基本线性代数例程(basic linear algebra subprograms,BLAS)[1-3]、高扩展线性代数库(scalable LAPACK,ScaLAPACK)[4]、西方最快傅立叶变换(fastest Fourier transforms in the West,FFTW)[5];或提供等特定场景中的基本原语,如信息传递接口(message passing interface,MPI)。同时,使用编译制导语句进行编程,提高程序并行度也已成为高性能应用开发中的常用技术,例如开放并行处理(open multi-processing,OpenMP)[6]和开源加速器(open accelerators,OpenACC)[7]。使用标准化的库函数以及编译制导语句的一个重要原因是:使用它们进行编程,可以提高所编写应用程序的性能可移植性。使用库函数和编译制导语句,程序员不必过分纠结底层实现,而相同的代码也可以更为轻松移植到新硬件架构上。同时,当标准库的开发人员为所需移植的目标架构提供优化版本时,应用程序在硬件架构上的性能也会同步得到提高。

尽管在许多应用程序中广泛使用了高度优化的函数库,但是将所有的库“链接”到一个应用程序中的过程仍然存在问题。其原因在于不同函数调用之间通常需要使用手写代码(即胶水代码),在将应用程序的输入或者函数调用的输出作为输入传递给另一个函数调用之前,进行一些类似于更改数据布局格式或分配存储空间的额外操作,以实现数据预处理。……

登录APP查看全文

猜你喜欢
优化
超限高层建筑结构设计与优化思考
房地产导刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目标优化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
由“形”启“数”优化运算——以2021年解析几何高考题为例
围绕“地、业、人”优化产业扶贫
今日农业(2020年16期)2020-12-14 15:04:59
事业单位中固定资产会计处理的优化
消费导刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度优化 JVC DLA-X8 18 BC
几种常见的负载均衡算法的优化
电子制作(2017年20期)2017-04-26 06:57:45