Skip to main content

Code Generation

  • Reference work entry
  • 215 Accesses

Synonyms

Polyhedra scanning

Definition

Parallel code generation is the action of building a parallel code from an input sequential code according to some scheduling and placement information. Scheduling specifies the desired order of the statement instances with respect to each other in the target code. Placement specifies the desired target processor for each statement instance.

Discussion

Introduction

Exhibiting parallelism in a sequential code may require complex sequences of transformations. When they come from an expert in program optimization, they are usually expressed by way of directives like tile or fuse or skew. When they come from a compiler, they are typically formulated as functions that map every execution of every statement of the program in “time” (scheduling), to order them in a convenient way, and in “space” (placement), to distribute them among various processors.

Parallel code generation is the step in any program restructuring tool or parallelizing compiler that...

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   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover 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

Bibliography

  1. Ancourt C, Irigoin F (1991) Scanning polyhedra with DO loops. In: 3rd ACM SIGPLAN symposium on principles and practice of parallel programming, Cologne, Germany, pp 39–50

    Google Scholar 

  2. Bastoul C (2004) Code generation in the polyhedral model is easier than you think. In: IEEE international conference on parallel architectures and compilation techniques (PACT’04), Juan-les-Pins, pp 7–16

    Google Scholar 

  3. Boulet P, Feautrier P (1998) Scanning polyhedra without do-loops. In: IEEE international conference on parallel architectures and compilation techniques (PACT’98), Paris, France, pp 4–11

    Google Scholar 

  4. Feautrier P (1992) Some efficient solutions to the affine scheduling problem, part II: multidimensional time. Int J Parallel Program 21(6):389–420

    Article  MATH  MathSciNet  Google Scholar 

  5. Griebl M, Lengauer C, Wetzel S (1998) Code generation in the polytope model. In: Proceedings of the international conference on parallel architectures and compilation techniques (PACT’98), pp 106–111

    Google Scholar 

  6. Größlinger A (2009) The challenges of non-linear parameters and variables in automatic loop parallelisation. Doctoral thesis, Fakultät für Informatik und Mathematik, Universität Passau

    Google Scholar 

  7. Kelly W, Maslov V, Pugh W, Rosser E, Shpeisman T, Wonnacott D (1996) The Omega library. Technical report, University of Maryland

    Google Scholar 

  8. Kelly W, Pugh W (1993) A framework for unifying reordering transformations. Technical Report UMIACS-TR-92-126.1, University of Maryland Institute for Advanced Computer Studies

    Google Scholar 

  9. Kelly W, Pugh W, Rosser E (1995) Code generation for multiple mappings. In: Frontiers’95 Symposium on the frontiers of massively parallel computation, McLean, VA

    Google Scholar 

  10. Le Fur M (1996) Scanning parameterized polyhedron using Fourier-Motzkin elimination. Concurrency – Pract Exp 8(6):445–460

    Article  Google Scholar 

  11. Le Verge H (1995) Recurrences on lattice polyhedra and their applications, April 1995. Unpublished work based on a manuscript written by H. Le Verge just before his untimely death in 1994

    Google Scholar 

  12. Le Verge H, Van Dongen V, Wilde D (1994) Loop nest synthesis using the polyhedral library. Technical Report 830, IRISA

    Google Scholar 

  13. Li W, Pingali K (1994) A singular loop transformation framework based on non-singular matrices. Int J Parallel Program 22(2):183–205

    Article  MATH  MathSciNet  Google Scholar 

  14. Quilleré F, Rajopadhye S, Wilde D (2000) Generation of efficient nested loops from polyhedra. Int J Parallel Program 28(5): 469–498

    Article  Google Scholar 

  15. Schrijver A (1986) Theory of linear and integer programming. Wiley, New York

    MATH  Google Scholar 

  16. Vasilache N, Bastoul C, Cohen A (2006) Polyhedral code generation in the real world. In: Proceedings of the international conference on compiler construction (ETAPS CC’06), LNCS 3923, Vienna, Austria, pp 185–201

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Bastoul, C. (2011). Code Generation. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_67

Download citation

Publish with us

Policies and ethics