Skip to Main Content
In parallel programming model, MPI seems to have established its position, and OpenMP is extensively investigated as the next standard. However, OpenMP is not so efficient for clusters. Using OpenMP on clusters causes more performance degradation than using SDSMs directly, because most of the OpenMP implementations for clusters use SDSMs in their under layer. This paper presents the performance evaluation of new portable parallel programming interface MpC, Meta process C. It is a minimal extension of ANSI C and its API also becomes a universal API for various SDSMs and pthread. The MpC is based on meta process model. The meta process model is a parallel programming paradigm based on a hierarchical shared memory model and an explicit description of parallelism. The model introduces 'shared' data that can be accessed by all processes in one meta process and distinguishes process-local and process-shared data explicitly. Using a hierarchical data scope, the process-local data are practically prohibited to be accessed by other processes. The paper summarizes the model feature, and compares performance and productivity of MpC with other languages, OpenMP and UPC. It also proves good portability of MpC programs for clusters and shared memory machines.