Skip to main content

Transforming and parallelizing ANSI C programs using pattern recognition

  • Track C3: Computational Science
  • Conference paper
  • First Online:
High-Performance Computing and Networking (HPCN-Europe 1999)

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

Included in the following conference series:

Abstract

Code transformations are a very effective method of parallelizing and improving the efficiency of programs. Unfortunately most compiler systems require implementing separate (sub-)programs for each transformation. This paper describes a different approach. We designed and implemented a fully programmable transformation engine. It can be programmed by means of a transformation language. This language was especially designed to be easy to use and flexible enough to express most of the common and more advanced transformations. Its possible applications range from coarse-grain parallelism exploitation to optimizers for multimedia instruction sets. It has been successfully tested on various applications.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Marianne Baudinet and David MacQueen. Tree pattern matching for ML. Available from David MacQueen, AT & T Bell Laboratories, 600 Mountain Avenue, Murray, Hill, NJ 07974, 1986.

    Google Scholar 

  2. Aart J.C. Bik. A Prototype Restructuring Complier. Technical Report INF/SCR-92-11, Utrecht University, Utrecht, the Netherlands, November 1994.

    Google Scholar 

  3. Aart J.C. Bik and Harry A.G. Wijshoff. Mtl: An interactive prototype restructuring compiler. In Proceedings of the second annual conference of the Advanced School for Computing and Imaging, pages 78–83, June 1996.

    Google Scholar 

  4. Maarten Boekhold, Ireneusz Karkowski and Henk Corporaal. A Programmable ANSI C Code Transformation Engine. Technical Report no. 1-68340-44(1998)-08, Delft University of Technology, Delft, The Netherlands, August 1998.

    Google Scholar 

  5. Gerald Cheong and Monica S. Lam. An Optimizer for Multimedia Instruction Sets. In the Proceedings of the Second SUIF Compiler Workshop, Stanford University, USA, August 21–23, 1997.

    Google Scholar 

  6. P.M. Embree. C Language Algorithms for Real-Time DSP. Prentice-Hall. 1995.

    Google Scholar 

  7. MPEG Software Simulation Group. MPEG-2 Video Codec. http://www.mpeg.org/.

    Google Scholar 

  8. Dennis Gannon et al. Sage. http://www.extreme.indiana.edu/sage/, 1995.

    Google Scholar 

  9. Josef Grosch. Transformation of atttributed trees using pattern matching. Lecuture Notes in Computer Science, 641:1–15, 1992.

    Google Scholar 

  10. Christoph M. Hoffman and Michael J. O'Donnell. Pattern matching in trees. Journal of the ACM, 29(1): 68–95, 1982.

    Article  Google Scholar 

  11. Ireneusz Karkowski and Henk Corporaal. Design Space Exploration Algorithm For Heterogeneous Multi-processor Embedded System Design. In 35th Design Automation Conference Proceedings, June 1998, San Francisco, USA.

    Google Scholar 

  12. Ireneusz Karkowski and Henk Corporaal. Overcoming the limitations of the traditional loop parallelization. Future Generation Computer Systems, 13(4–5), 1998.

    Google Scholar 

  13. Troll Tech. The Qt toolkit. http://www.troll.no/products/qt.html, 1998.

    Google Scholar 

  14. Robert Wilson, Robert Franch, Christopher Wilson, Saman Amarasinghe, Jennifer Anderson, Steve Tjiang, Shin-Wei Liao, Chau-Wen Tseng, Mary Hall, Monica Lam, and John Hennessy. An. Overview of the SUIF Compiler System http://suif.stanford.edu/suif/suif.html, 1995.

    Google Scholar 

  15. Michael Wolfe. High Performance Compilers for Parallel Computing. Addison-Wesley Publishing Company, 1996.

    Google Scholar 

  16. Nikos D. Zervas, Kostas Masselos and C.E. Goutis. Code Transformations for Embedded Multimedia Applications: Impact on Power and Performance. In the Proceedings of the Power Driven Microarchitecture Workshop (in conj. with ISCA'98). June 1998, Barcelona, Spain.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Peter Sloot Marian Bubak Alfons Hoekstra Bob Hertzberger

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag

About this paper

Cite this paper

Boekhold, M., Karkowski, I., Corporaal, H. (1999). Transforming and parallelizing ANSI C programs using pattern recognition. In: Sloot, P., Bubak, M., Hoekstra, A., Hertzberger, B. (eds) High-Performance Computing and Networking. HPCN-Europe 1999. Lecture Notes in Computer Science, vol 1593. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0100628

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-48933-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics