ABSTRACT

OpenMP (OpenMP 2009), the Open standard for shared memory MultiProcessing, was designed to facilitate the creation of programs that are able to exploit the features of parallel computers where memory is shared by the individual processor cores. Widely supported by mainstream commercial and several open source compilers, it is well suited to the task of creating or adapting application codes to execute on platforms with multiple cores (Intel 2009, Open64 2005, Portland 2009, Sun 2005). OpenMP is intended to facilitate the construction of portable parallel programs by enabling the application developer to specify the parallelism in a code at a high level, via an approach that moreover permits the incremental insertion of its constructs. However, it also permits a low-level programming style, where the programmer explicitly assigns work to individual threads.