Skip to main content

A Geometric Approach for Partitioning N-Dimensional Non-rectangular Iteration Spaces

  • Conference paper
Languages and Compilers for High Performance Computing (LCPC 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

Parallel loops account for the greatest percentage of program parallelism. The degree to which parallelism can be exploited and the amount of overhead involved during parallel execution of a nested loop directly depend on partitioning, i.e., the way the different iterations of a parallel loop are distributed across different processors. Thus, partitioning of parallel loops is of key importance for high performance and efficient use of multiprocessor systems. Although a significant amount of work has been done in partitioning and scheduling of rectangular iteration spaces, the problem of partitioning of non-rectangular iteration spaces – e.g. triangular, trapezoidal iteration spaces – has not been given enough attention so far. In this paper, we present a geometric approach for partitioning N-dimensional non-rectangular iteration spaces for optimizing performance on parallel processor systems. Speedup measurements for kernels (loop nests) of linear algebra packages are presented.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Padua, D.A.: Multiprocessors: Discussion of theoritical and practical problems. Technical Report 79-990, Dept. of Computer Science, University of Illinois at Urbana-Champaign (November 1979)

    Google Scholar 

  2. Cytron, R.: Doacross: Beyond vectorization for multiprocessors. In: Proceedings of the 1986 International Conference on Parallel Processing, St. Charles, IL (August 1986)

    Google Scholar 

  3. Davies, J.: Parallel loop constructs for multiprocessors. Technical Report 81-1070, Dept. of Computer Science, University of Illinois at Urbana-Champaign (May 1981)

    Google Scholar 

  4. Polychronopoulos, C., Kuck, D.J., Padua, D.A.: Execution of parallel loops on parallel processor systems. In: Proceedings of the 1986 International Conference on Parallel Processing, August 1986, pp. 519–527 (1986)

    Google Scholar 

  5. D’Hollander, E.H.: Partitioning and labeling of loops by unimodular transformations. IEEE Trans. Parallel Distrib. Syst. 3(4), 465–476 (1992)

    Article  MathSciNet  Google Scholar 

  6. Mohammad, R.: Haghighat and Constantine D. Polychronopoulos. Symbolic analysis for parallelizing compilers. ACM Transactions on Programming Languages and Systems 18(4), 477–518 (1996)

    Article  Google Scholar 

  7. Sakellariou, R.: On the Quest for Perfect Load Balance in Loop-Based Parallel Computations. PhD thesis, Department of Computer Science, University of Manchester (October 1996)

    Google Scholar 

  8. Banerjee, U.: Data dependence in ordinary programs. Master’s thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign (November 1976); Report No. 76-837

    Google Scholar 

  9. Burke, M., Cytron, R.: Interprocedural dependence analysis and parallelization. In: Proceedings of the SIGPLAN 1986 Symposium on Compiler Construction, Palo Alto, CA (June 1986)

    Google Scholar 

  10. Iyengar, M.K., Jain, S.R.K., Jain, R.K.: Numerical Methods for Scientific and Engineering Computation. John Wiley and Sons, Chichester (1985)

    MATH  Google Scholar 

  11. O’Boyle, M., Hedayat, G.A.: Load balancing of parallel affine loops by unimodular transformations. Technical Report UMCS-92-1-1, Department of Computer Science, University of Manchester (January 1992)

    Google Scholar 

  12. Banerjee, U.: Loop Transformation for Restructuring Compilers. Kluwer Academic Publishers, Boston (1993)

    Book  Google Scholar 

  13. Pugh, W.: The Omega test: A fast and practical integer programming algorithm for dependence analysis. In: Proceedings of Supercomputing 1991, Albuquerque, NM (November 1991)

    Google Scholar 

  14. Clauss, P., Loechner, V.: Parametric analysis of polyhedral iteration spaces. In: IEEE (ed.) Int. Conf. on Application Specific Array Processors, Chicago, Illinois (August 1996)

    Google Scholar 

  15. Polychronopoulos, C.: Loop coalescing: A compiler transformation for parallel machines. In: Sahni, S. (ed.) Proceedings of the 1987 International Conference on Parallel Processing, August 1987. Pennsylvania State University Press (1987)

    Google Scholar 

  16. Carr, S.: Memory-Hierarchy Management. PhD thesis, Dept. of Computer Science, Rice University (September 1992)

    Google Scholar 

  17. Banerjee, U.: Loop Parallelization. Kluwer Academic Publishers, Boston (1994)

    MATH  Google Scholar 

  18. Lundstrom, S., Barnes, G.: A controllable MIMD architectures. In: Proceedings of the 1980 International Conference on Parallel Processing, St. Charles, IL (August 1980)

    Google Scholar 

  19. Kuck, D., et al.: The effects of program restructuring, algorithm change and architecture choice on program performance. In: Proceedings of the 1984 International Conference on Parallel Processing (August 1984)

    Google Scholar 

  20. Wolfe, M.J.: Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge (1989)

    MATH  Google Scholar 

  21. Anik, S., Hwu, W.W.: Executing nested parallel loops on shared-memory multiprocessors. In: Proceedings of the 1992 International Conference on Parallel Processing, Boca Raton, Florida, August 1992, ppIII. 241–244 (1992)

    Google Scholar 

  22. Wolfe, M.J.: High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood City (1996)

    MATH  Google Scholar 

  23. Padua, D.A., Wolfe, M.J.: Advanced compiler optimizations for supercomputers. Communications of the ACM 29(12), 1184–1201 (1986)

    Article  Google Scholar 

  24. Irigoin, F., Triolet, R.: Supernode partitioning. In: Proceedings of the Fifteenth Annual ACM Symposium on the Principles of Programming Languages, San Diego, CA (January 1988)

    Google Scholar 

  25. Kruskal, C.P., Weiss, A.: Allocating independent subtasks on parallel processors. IEEE Transactions on Software Engineering 11(10), 1001–1016 (1985)

    Article  Google Scholar 

  26. Haghighat, M., Polychronopoulos, C.: Symbolic program analysis and optimization for parallelizing compilers. In: Proceedings of the Fifth Workshop on Languages and Compilers for Parallel Computing, New Haven, CT (August 1992)

    Google Scholar 

  27. Koziris, N., Papakonstantinou, G., Tsanakas, P.: Mapping nested loops onto distributed memory multiprocessors. In: International Conference on Parallel and Distributed Systems, December 1997, pp. 35–43 (1997)

    Google Scholar 

  28. Dion, M., Robert, Y.: Mapping affine loop nests: new results. In: HPCN Europe 1995, pp. 184–189 (1995)

    Google Scholar 

  29. Dion, M., Robert, Y.: Mapping affine loop nests. Parallel Computing 22(10), 1373–1397 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  30. Matlab, http://www.mathworks.com

  31. Weisstein, E.W.: Abel’s Impossibility Theorem. From MathWorld–A Wolfram Web Resource, http://mathworld.wolfram.com/AbelsImpossibilityTheorem.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kejariwal, A., D’Alberto, P., Nicolau, A., Polychronopoulos, C.D. (2005). A Geometric Approach for Partitioning N-Dimensional Non-rectangular Iteration Spaces. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_9

Download citation

  • DOI: https://doi.org/10.1007/11532378_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28009-5

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics