This paper presents a prototype runtime system that serves as the backend of a source-to-source OpenMP compiler and enables the execution of OpenMP Fortran programs on SMPs, though hardware shared memory, and clusters of shared-memory multiprocessors, either through the hybrid (MPI+OpenMP) programming model or directly on top of Software Distributed Shared Memory (SDSM). Fork-Join multilevel parallelism is supported without modifications to the OpenMP model, since its "shared by default" philosophy has been adopted for the generated by the OpenMP compiler code. Specifically, the user-level thread stacks and the Fortran common blocks are allocated explicitly, though transparently to the programmer, in shared virtual memory. The internal runtime system operations are based on the combination of explicit communication and hardware shared-memory. The runtime system extends the Single Program Multiple Data (SPMD) execution model of existing SDSM libraries in a modular way, allowing their integration in our OpenMP execution environment. We report experimental results of OpenMP programs on both architectural platforms and two different operating systems.
Special Issue Papers