Exploiting Loop-Level Parallelism for SIMD Arrays Using OpenMP

  • Con Bradley
  • Benedict R. Gaster
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4935)


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.


Poly Execution Parallel Programming Parallel Construct Master Thread European Option Price 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    ClearSpeed Technology Plc: White paper: CSX Processor Architecture (2004)Google Scholar
  2. 2.
    Buck, I.: Brook: A Streaming Programming Language. Stanford University (2001)Google Scholar
  3. 3.
    Frigo, M.: Portable High-Performance Programs. PhD thesis, MIT Department of Electrical Engineering and Computer Science (1999)Google Scholar
  4. 4.
    Gaster, B.R., Hickey, N., Stuttard, D.: The Cn Language Specification. ClearSpeed Technology Plc. (2006)Google Scholar
  5. 5.
    OpenMP Architecture Review Board: OpenMP Application Program Interface (2005)Google Scholar
  6. 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)CrossRefGoogle Scholar
  7. 7.
    International Standards Organization: ISO/IEC 98899 - Programming Language C. (1999)Google Scholar
  8. 8.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Specification, 3rd edn. Addison-Wesley, Reading (2005)Google Scholar
  9. 9.
    Ramanathan, R.: Intel white paper: Extending the world’s most popular processor architecture. Intel Corp. (2006)Google Scholar
  10. 10.
    Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann, San Francisco (2002)Google Scholar
  11. 11.
    Stroustrup, B.: The C++ Programming Language, 2nd edn. Addison-Wesley, Reading (2000)Google Scholar
  12. 12.
    Wilmott, P.: Quantitative Finance, 2nd edn. John Wiley & Sons Ltd., Chichester (2000)Google Scholar
  13. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Con Bradley
    • 1
  • Benedict R. Gaster
    • 1
  1. 1.ClearSpeed Technology PlcBristolUK

Personalised recommendations