Exploiting Loop-Level Parallelism for SIMD Arrays Using OpenMP

Con Bradley and Benedict R. Gaster

International Workshop on OpenMP (IWOMP’07). 2007.


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.