Skip to main content
Log in

A Simple Algorithm for the Generation of Efficient Loop Structures

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Generating code to enumerate the integer points of a polyhedron is a key problem of the parallelizing compiler technology. For efficiency reasons we want to obtain loop bounds of the generated code that are as simple as possible and we would like to avoid executing iterations of outer loops for which no iterations of inner loops are executed. This paper describes a simple algorithm to build an adequate representation of the domain to enumerate, the Hierarchical Domain Descriptor (HDD). Starting from the HDD, generating such efficient loop structures is straightforward. In some particular but frequently occurring cases the HDD may also be used to count in a symbolic way the number of integer points contained in the domain.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. C. Ancourt and F. Irigoin, Scanning polyhedra with DO loops. In ACM, editor, PPPP 91, ACM SIGPLAN, pp. 39–50 (June 1991).

  2. M. Barnett and C. Lengauer, Loop Parallelization and Unimodularity, Chapter 25, Masson (1992).

    Google Scholar 

  3. M. Barnett and C. Lengauer, Unimodularity considered non-essential. In L. Bouge, M. Cosnard, Y. Robert, and D. Trystram, (eds.), CONPAR 92-VAPP V, LNCS 634. Springer-Verlag, pp. 659–664 (1992).

    Chapter  Google Scholar 

  4. Z. Chamski, Environnement logiciel de programmation d’un accélérateur de calcul parallèle. Ph.D. thesis, Université Rennes I, Rennes, France, (1993).

    Google Scholar 

  5. Z. Chamski, Fast and efficient generation of loop bounds. ParCo93, pp. 265–272 (September 1993).

  6. Z. Chamski, Nested loop sequences: Towards efficient loop structures in automatic parallelization. 27th Hawaii Int’l. Conf. on System Sciences, Vol. II: Software Technology, pp. 14–22. IEEE, (January 1994). Also available as Technical Report IRISA PI-772.

    Google Scholar 

  7. J.-F. Collard and P. Feautrier, Automatic generation of data parallel code. In H.J. Sips (ed.), Proc. of the Fourth Int’l. Workshop on Compilers for Parallel Computers, Delft, The Netherlands, pp. 321–332 (1993).

    Google Scholar 

  8. J. F. Collard, Code generation in automatic parallelizers. Technical Report 93-21, LIP-CNRS-ENS LYON, (July 1993).

    Google Scholar 

  9. J. F. Collard, P. Feautrier, and T. Risset, Construction of DO loops from systems of affine constraints. Technical Report 93-15, LIP-CNRS-ENS LYON, (May 1993). (To appear in Parallel Processing Letters.)

    Google Scholar 

  10. W. Kelly, W. Pugh, and E. Rosser, Code generation for multiple mappings. Technical Report CS-TR-3317, Department Computer Science, University of Maryland (July 1994).

    Google Scholar 

  11. W. Li and K. Pingali, A singular loop transformation framework based on non-singular matrices. Fifth Ann. Workshop on Programming Languages and Compilers for Parallel Computing, pp. 249–260 (August 1992).

  12. N. Tawbi, Estimation des durées d’exécution et allocation statique de processeurs. Ph.D. thesis, Université Paris VI, Paris, France (1991).

    Google Scholar 

  13. N. Tawbi, Estimation of nested loop execution time by integer arithmetics in convex polyhedra, Proc. of the 1994 Int’l. Parallel Processing Symp. (April 1994).

  14. W. Pugh, Counting solutions to presburger formulas: How and why. Department of Computer Science. Technical Report CS-TR-3234, University of Maryland, March 1994. This paper will appear in the Proc. of the 1994 ACM SIGPLAN Conf. on Programming Language Design and Implementation.

    Google Scholar 

  15. M. R. Haghighat and C. D. Polychronopoulos, Symbolic analysis: A basis for parallelization, optimization, and scheduling of programs. Proc. of the 6th Workshop on Languages and Compilers for Parallel Computing (August 1993).

  16. N. Tawbi and P. Feautrier, Processor allocation and loop scheduling on multiprocessor computers. Proc. of the 1992 Int’l. Conf. on Supercomputing, pp. 63–71 (July 1992).

  17. J. Ferrante, V. Sarkar, and W. Trash, On Estimating and Enhancing Cache Effectiveness, The MIT Press, (1991).

    Google Scholar 

  18. M. Cosnard and M. Loi, Automatic task graph generation techniques. In H. El-Rewini and B. D. Shriver, (eds.), 28th Hawaii Int’l. Conf. on System Sciences, Vol. II: Software Technology, pp. 113–122. IEEE Computer Society Press, (January 1995). (To appear in Parallel Processing Letters.)

    Google Scholar 

  19. W. Pugh, The Omega test: a fast and practical integer programming algorithm for dependence analysis. Comm. ACM 8:102–114 (August 1992).

    Article  Google Scholar 

  20. G. L. Nemhauser and L. A. Wolsey, Integer and Combinatorial Optimization. John Wiley and Sons (1988).

    Book  MATH  Google Scholar 

  21. P. Feautrier, Parametric integer programming. RAIRO Recherche Opérationelle, 22:243–268 (September 1988).

    MathSciNet  MATH  Google Scholar 

  22. A. Schrijver, Theory of Linear and Integer Programming. John Wiley and Sons (1986).

    MATH  Google Scholar 

  23. W. Kelly, V. Maslov, W. Pugh, E. Rosser, T. Shpeisman, and D. Wonnacott, The omega calculator and library, version 0.9. Technical Report, Department of Computer Science, University of Maryland (November 1994).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported in part by the Eureka Eurotops project and the EEC Human Capital Mobility MAP project.

This work was supported in part by the Région Rhône-Alpes.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Cosnard, M., Loi, M. A Simple Algorithm for the Generation of Efficient Loop Structures. Int J Parallel Prog 24, 265–289 (1996). https://doi.org/10.1007/BF03356751

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03356751

Key Words

Navigation