Nothing Special   »   [go: up one dir, main page]

Skip to main content

Unified Sequential Optimization Directives in OpenMP

  • Conference paper
  • First Online:
OpenMP: Portable Multi-Level Parallelism on Modern Systems (IWOMP 2020)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12295))

Included in the following conference series:

Abstract

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.

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. 33.1 common function attributes. https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes. Accessed 24 May 2020

  2. 34.1 common variable attributes. https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes. Accessed 24 May 2020

  3. #pragma disjoint. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/pragma_disjoint.htm. Accessed 24 May 2020

  4. #pragma execution\_frequency. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/zos_pragma_execution_frequency.htm. Accessed 24 May 2020

  5. #pragma inline (c only) / noinline. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/zos_pragma_inline.htm#cplrill. Accessed 24 May 2020

  6. #pragma isolated\_call. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/opt_isolated_call.htm#opt_isolated_call. Accessed 24 May 2020

  7. #pragma option\_override. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/pragma_option_override.htm#pragma_option_override. Accessed 24 May 2020

  8. #pragma pack. https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.cbclx01/pragma_pack.htm?view=kc#pragma_pack. Accessed 24 May 2020

  9. Using alignment modifiers. https://www.ibm.com/support/knowledgecenter/SSGH2K_12.1.0/com.ibm.xlc121.aix.doc/proguide/modifiers.html#modifiers. Accessed 24 May 2020

  10. Beckingsale, D.A., et al.: Raja: portable performance for large-scale scientific applications. In: 2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pp. 71–81. IEEE (2019)

    Google Scholar 

  11. Intel. Intel C++ Compiler 19.0 Developer Guide and Reference, December 2019

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Brandon Neth .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 This is a U.S. government work and not under copyright protection in the United States; foreign copyright protection may apply

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Neth, B., Scogland, T.R.W., Strout, M.M., de Supinski, B.R. (2020). Unified Sequential Optimization Directives in OpenMP. In: Milfeld, K., de Supinski, B., Koesterke, L., Klinkenberg, J. (eds) OpenMP: Portable Multi-Level Parallelism on Modern Systems. IWOMP 2020. Lecture Notes in Computer Science(), vol 12295. Springer, Cham. https://doi.org/10.1007/978-3-030-58144-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-58144-2_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-58143-5

  • Online ISBN: 978-3-030-58144-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics