Improving the Performance of OpenMP by Array Privatization

  • Zhenying Liu
  • Barbara Chapman
  • Tien-Hsiung Weng
  • Oscar Hernandez
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2716)


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.


Double Precision Parallel Loop Loop Bound Shared Buffer Loop Schedule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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–17CrossRefGoogle Scholar
  3. 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. 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. 5.
    The Dragon analysis tool.
  6. 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–19CrossRefGoogle Scholar
  7. 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. 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. 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. 10.
    Muller, M.: OpenMP Optimization Techniques: Comparison of FORTRAN and C Compilers. Third European Workshop on OpenMP (EWOMP 2001), (2001)Google Scholar
  11. 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–349Google Scholar
  12. 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. 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. 14.
    The Open64 compiler.
  15. 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–130Google Scholar
  16. 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–142Google Scholar
  17. 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.
  18. 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. 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–521Google Scholar
  20. 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. 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–287Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Zhenying Liu
    • 1
  • Barbara Chapman
    • 1
  • Tien-Hsiung Weng
    • 1
  • Oscar Hernandez
    • 1
  1. 1.Department of Computer ScienceUniversity of HoustonHouston

Personalised recommendations