Skip to main content

Exploiting Loop-Level Parallelism for SIMD Arrays Using OpenMP

  • Conference paper
A Practical Programming Model for the Multi-Core Era (IWOMP 2007)

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

Included in the following conference series:

  • 676 Accesses

Abstract

Programming SIMD arrays in languages such as C or FORTRAN is difficult and although work on automatic parallelizing programs has achieved much, it is far from satisfactory. In particular, almost all ‘fully’ automatic parallelizing compilers place fundamental restrictions on the input language.

Alternatively OpenMP provides an approach to parallel programming that supports incremental improvements to applications that places restrictions in the context of preserving semantics of a parallelized section. OpenMP is limited to a thread based model that does not define a mapping for other parallel programming models.

In this paper, we describe an alternative approach to programming SIMD machines using an extended subset of OpenMP (OpenMP SIMD), allowing us to model naturally the programming of arbitrary sized SIMD arrays while retaining the semantic completeness of both OpenMP and the parent languages.

Using the CSX architecture we show how OpenMP SIMD can be implemented and discuss future extensions to both the language and SIMD architectures to better support explicit parallel programming.

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. ClearSpeed Technology Plc: White paper: CSX Processor Architecture (2004)

    Google Scholar 

  2. Buck, I.: Brook: A Streaming Programming Language. Stanford University (2001)

    Google Scholar 

  3. Frigo, M.: Portable High-Performance Programs. PhD thesis, MIT Department of Electrical Engineering and Computer Science (1999)

    Google Scholar 

  4. Gaster, B.R., Hickey, N., Stuttard, D.: The Cn Language Specification. ClearSpeed Technology Plc. (2006)

    Google Scholar 

  5. OpenMP Architecture Review Board: OpenMP Application Program Interface (2005)

    Google Scholar 

  6. Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005. Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pp. 519–538. ACM Press, New York (2005)

    Chapter  Google Scholar 

  7. International Standards Organization: ISO/IEC 98899 - Programming Language C. (1999)

    Google Scholar 

  8. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Specification, 3rd edn. Addison-Wesley, Reading (2005)

    Google Scholar 

  9. Ramanathan, R.: Intel white paper: Extending the world’s most popular processor architecture. Intel Corp. (2006)

    Google Scholar 

  10. Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann, San Francisco (2002)

    Google Scholar 

  11. Stroustrup, B.: The C++ Programming Language, 2nd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  12. Wilmott, P.: Quantitative Finance, 2nd edn. John Wiley & Sons Ltd., Chichester (2000)

    Google Scholar 

  13. Rose, J., Steele, G.: C*: An extended C language for data parallel programming. In: Internationl Conference on Supercomputing, vol. 2, pp. 72–76 (1987)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Barbara Chapman Weiming Zheng Guang R. Gao Mitsuhisa Sato Eduard Ayguadé Dongsheng Wang

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bradley, C., Gaster, B.R. (2008). Exploiting Loop-Level Parallelism for SIMD Arrays Using OpenMP . In: Chapman, B., Zheng, W., Gao, G.R., Sato, M., Ayguadé, E., Wang, D. (eds) A Practical Programming Model for the Multi-Core Era. IWOMP 2007. Lecture Notes in Computer Science, vol 4935. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69303-1_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69303-1_8

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-69303-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics