Skip to main content

Improving the Performance of OpenMP by Array Privatization

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2716))

Abstract

The scalability of an OpenMP program in a ccNUMA system with a large number of processors suffers from remote memory accesses, cache misses and false sharing. Good data locality is needed to overcome these problems whereas OpenMP offers limited capabilities to control it on ccNUMA architecture. A so-called SPMD style OpenMP program can achieve data locality by means of array privatization, and this approach has shown good performance in previous research. It is hard to write SPMD OpenMP code; therefore we are building a tool to relieve users from this task by automatically converting OpenMP programs into equivalent SPMD style OpenMP. We show the process of the translation by considering how to modify array declarations, parallel loops, and showing how to handle a variety of OpenMP constructs including REDUCTION, ORDERED clauses and synchronization. We are currently implementing these translations in an interactive tool based on the Open64 compiler.

This work was partially supported by the DOE under contract DE-FC03-01ER25502 and by the Los Alamos National Laboratory Computer Science Institute (LACSI) through LANL contract number 03891-99-23.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bircsak, J., Craig, P., Crowell, R., Cvetanovic, Z., Harris, J., Nelson C.A., and Offner, C.D.: Extending OpenMP for NUMA machines. Scientific programming. Vol. 8, No. 3, (2000)

    Google Scholar 

  2. Chapman, B., Bregier, F., Patil, A., and Prabhakar, A.: Achieving High Performance under OpenMP on ccNUMA and Software Distributed Share Memory Systems. Currency and Computation Practice and Experience. Vol. 14, (2002) 1–17

    Article  Google Scholar 

  3. Chapman, B., Patil, A., and Prabhakar, A.: Performance Oriented Programming for NUMA Architectures. Workshop on OpenMP Applications and Tools (WOMPACT’01), Purdue University, West Lafayette, Indiana. July 30–31 (2001)

    Google Scholar 

  4. Chapman, B., Weng, T.-H., Hernandez, O., Liu, Z., Huang, L., Wen, Y., and Adhianto, L.: Cougar: An Interactive Tool for Cluster Computing. 6th World Multiconference on Systemics, Cybernetics and Informatics. Orlando, Florida, July 14–18, (2002)

    Google Scholar 

  5. The Dragon analysis tool. http://www.cs.uh.edu/~dragon

  6. Eggers, S.J., Emer, J.S., Lo, J.L., Stamm, R.L., and Tullsen, D.M.: Simultaneous Multithreading: A Platform for Next-Generation Processors. IEEE Micro, Vol. 17, No. 5, (1997) 12–19

    Article  Google Scholar 

  7. Frumkin, M., and Yan, J.: Automatic Data Distribution for CFD Applications on Structured Grids. The 3rd Annual HPF User Group Meeting, Redondo Beach, CA, August 1–2, 1999. Full version: NAS Technical report NAS-99-012, (1999)

    Google Scholar 

  8. Hall, M.W., Hiranandani, S., Kennedy, K., and Tseng, C.-W.: Interprocedural Compilation of FORTRAN D for MIMD Distributed-Memory Machines. Proceedings of Supercomputing 92’, Nov. (1992) 522–534.

    Google Scholar 

  9. Marowka, A., Liu, Z., and Chapman, B.: OpenMP-Oriented Applications for Distributed Shared Memory. In the Fourteenth IASTED International Conference on Parallel and Distributed Computing and Systems. November 4–6, 2002, Cambridge, (2002)

    Google Scholar 

  10. Muller, M.: OpenMP Optimization Techniques: Comparison of FORTRAN and C Compilers. Third European Workshop on OpenMP (EWOMP 2001), (2001)

    Google Scholar 

  11. Nieplocha, J., Harrison, R.J., and Littlefield, R.J.: Global Arrays: A portable’ shared-memory’ programming model for distributed memory computers. Proceedings of Supercomputing, (1994) 340–349

    Google Scholar 

  12. Nikolopoulos, D.S., Papatheodorou, T.S., Polychronopoulos, C.D., Labarta, J., and Ayguade, E.: Is data distribution necessary in OpenMP. Proceedings of Supercomputing, Dallas, TX, (2000)

    Google Scholar 

  13. Nicolopoulos, D.S., Ayguadé, E.: Scaling Irregular Parallel Codes with Minimal Programming Effort. Proceedings of Supercomputing 2001 (SC’01), the International Conference for High Performance Computing and Communications, Denver, Colorado, November 10–16, (2001)

    Google Scholar 

  14. The Open64 compiler. http://open64.sourceforge.net/

  15. Sato, M., Harada, H., Hasegawa A., and Ishikawa Y.: Cluster-Enabled OpenMP: An OpenMP Compiler for SCASH Software Distributed Share Memory System. Scientific Programming Vol. 9, No. 2–3, Special Issue: OpenMP, (2001): 123–130

    Google Scholar 

  16. Satoh, S., Ksano K., and Sato, M.: Compiler Optimization Techniques for OpenMP Programs. Scientific Programming Vol. 9, No. 2–3, Special Issue: OpenMP, (2001) 131–142

    Google Scholar 

  17. Silicon Graphics Inc. MIPSpro 7 FORTRAN 90 Commands and Directives Reference Manual, Chapter 5: Parallel Processing on Origin Series Systems. Documentation number 007-3696-003. http://techpubs.sgi.com/

  18. Tseng, C.-W.: An Optimizing FORTRAN D Compiler for MIMD Distributed-Memory Machines. PhD thesis, Dept. of Computer Science, Rice University, January (1993)

    Google Scholar 

  19. Tu, P., and Padua, D.: Automatic Array Privatization. Proc. Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, OR. Lecture Notes in Computer Science., Vol. 768, August 12–14, (1993) 500–521

    Google Scholar 

  20. Wallcraft, A.J.: SPMD OpenMP vs. MPI for Ocean Models. Proceedings of First European Workshops on OpenMP (EWOMP’99), Lund, Sweden, (1999)

    Google Scholar 

  21. Zima, H., and Chapman, B.: Compiling for Distributed Memory Systems, Proceedings of the IEEE, Special Section on Languages and Compilers for Parallel Machines, Vol. 81, No. 2, Feb. (1993) 264–287

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Liu, Z., Chapman, B., Weng, TH., Hernandez, O. (2003). Improving the Performance of OpenMP by Array Privatization. In: Voss, M.J. (eds) OpenMP Shared Memory Parallel Programming. WOMPAT 2003. Lecture Notes in Computer Science, vol 2716. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45009-2_19

Download citation

  • DOI: https://doi.org/10.1007/3-540-45009-2_19

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40435-4

  • Online ISBN: 978-3-540-45009-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics