Abstract expressionism for parallel performance
Abstract expressionism for parallel performance
复制标题
并行表演的抽象表现主义
DOI:
10.1145/2774959.2774962
复制
发表时间:
2015
期刊:
影响因子:
--
通讯作者:
Bernecky R
中科院分区:
文献类型:
--
作者:
Bernecky R
Programming with abstract, mathematical expressions offers benefits including terser programs, easier communication of algorithms, ability to prove theorems about algorithms, increased parallelism, and improved programming productivity. Common belief is that higher levels of abstraction imply a larger semantic gap between the user and computer and, therefore, typically slower execution, whether sequential or parallel. In recent years, domain-specific languages have been shown to close this gap through sophisticated optimizations benefitting from domain-specific knowledge. In this paper, we demonstrate that the semantic gap can also be closed for non-domain-specific functional array languages, without requiring embedding of language-specific semantic knowledge into the compiler tool chain. We present a simple example of APL-style programs, compiled into C-code that outperform equivalent C programs in both sequential and parallel (OpenMP) environments. We offer insights into abstract expressionist programming, by comparing the characteristics and performance of a numerical relaxation benchmark written in C99, C99 with OpenMP directives, scheduling code, and pragmas, and in , a functional array language. We compare three algorithmic styles: if/then/else, hand-optimized loop splitting, and an abstract, functional style whose roots lie in APL. We show that the algorithms match or outperform serial C, and that the hand-optimized and abstract styles generate identical code, and so have identical performance. Furthermore, parallel variants also outperform the best OpenMP C variant by up to a third, with no source code modifications. Preserving an algorithm's abstract expression during optimization opens the door to generation of radically different code for different architectures. [The author list is wrong, but I see no way to correct, despite the fact that EasyChair has the correct author list.]
登录
查看更多内容
DOI:
--
发表时间:
2014
期刊:
IEEE/ACM International Symposium on Code Generation and Optimization
影响因子:
--
作者:
Daniele G. Spampinato;Markus Püschel
通讯作者:
Markus Püschel
DOI:
--
发表时间:
1987
期刊:
Springer: New York
影响因子:
--
作者:
T. Budd
通讯作者:
T. Budd
DOI:
--
发表时间:
1997
期刊:
影响因子:
--
作者:
Robert Bernecky
通讯作者:
Robert Bernecky
DOI:
--
发表时间:
1986
期刊:
APL Conference
影响因子:
--
作者:
Wai
通讯作者:
Wai
DOI:
--
发表时间:
1991
期刊:
影响因子:
--
作者:
J. Feo
通讯作者:
J. Feo