TY - GEN
T1 - Unified sequential optimization directives in openmp
AU - Neth, Brandon
AU - Scogland, Thomas R.W.
AU - Strout, Michelle Mills
AU - de Supinski, Bronis R.
N1 - Funding Information:
This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344. LLNL-CONF-812472.
Publisher Copyright:
© 2020, This is a U.S. government work and not under copyright protection in the United States; foreign copyright protection may apply.
PY - 2020
Y1 - 2020
N2 - OpenMP began as a mechanism to support portability of shared-memory, loop-level parallelization via directives. OpenMP has become widely popular due to the high value that users place on portability. Its original motivation has justified additions to its specification to support SIMD parallelism and, as has been adopted for OpenMP 5.1, directives for common loop optimizations such as tiling and unrolling. In this paper, we explore another opportunity for OpenMP to provide portability to common compiler directives – ones that support sequential optimizations such as inlining or providing information about aliasing. We survey the current support in production compilers for these features. We find that the situation is similar to the one that originally motivated OpenMP’s creation. Different compilers have different syntax and sometimes different semantics for the same directives, thus requiring complicated pragma configuration for an application to support the use of multiple compilers. We also find that interaction of these directives with OpenMP further complicates their use. Our performance study demonstrates that these directives can substantially improve the performance of common programming usage by as much as 406%. Overall, we argue that inclusion of similar directives in OpenMP would substantially benefit users and compiler implementers.
AB - OpenMP began as a mechanism to support portability of shared-memory, loop-level parallelization via directives. OpenMP has become widely popular due to the high value that users place on portability. Its original motivation has justified additions to its specification to support SIMD parallelism and, as has been adopted for OpenMP 5.1, directives for common loop optimizations such as tiling and unrolling. In this paper, we explore another opportunity for OpenMP to provide portability to common compiler directives – ones that support sequential optimizations such as inlining or providing information about aliasing. We survey the current support in production compilers for these features. We find that the situation is similar to the one that originally motivated OpenMP’s creation. Different compilers have different syntax and sometimes different semantics for the same directives, thus requiring complicated pragma configuration for an application to support the use of multiple compilers. We also find that interaction of these directives with OpenMP further complicates their use. Our performance study demonstrates that these directives can substantially improve the performance of common programming usage by as much as 406%. Overall, we argue that inclusion of similar directives in OpenMP would substantially benefit users and compiler implementers.
UR - http://www.scopus.com/inward/record.url?scp=85091316010&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85091316010&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-58144-2_6
DO - 10.1007/978-3-030-58144-2_6
M3 - Conference contribution
AN - SCOPUS:85091316010
SN - 9783030581435
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 85
EP - 97
BT - OpenMP
A2 - Milfeld, Kent
A2 - Koesterke, Lars
A2 - de Supinski, Bronis R.
A2 - Klinkenberg, Jannis
PB - Springer Science and Business Media Deutschland GmbH
T2 - 16th International Workshop on OpenMP, IWOMP 2020
Y2 - 22 September 2020 through 24 September 2020
ER -