OpenMP: Experiences, Implementations and Applications

Main Article Content

Ami Marowka


The rapid emergence of OpenMP as a preferred parallel programming paradigm for small-to-medium scale parallelism is attracting the scientific community. OpenMP is an industry standard interface for shared-memory programming of parallel computer applications. This standard offers a way to write portable applications to a wide range of shared-memory machines or, through hybrid (OpenMP + MPI) programming model, to cluster of share-memory nodes. This special issue features six papers that explore the experiences of application developers in the use of the language and parallelization of applications with OpenMP.

The first paper, MPI and OpenMP Paradigms on Cluster of SMP Architectures: the Vacancy Tracking Algorithm for Multi-Dimensional Array Transposition by Yun He and Chris H. Q. Ding, investigates remapping multi-dimensional arrays on a cluster of SMP architectures under OpenMP, MPI, and hybrid paradigms. The traditional method of array transpose needs an auxiliary array of the same size and a copy-back stage. The authors developed an in-place method using vacancy tracking cycles. The vacancy tracking algorithm outperforms the traditional 2-array method as demonstrated by extensive comparisons.

In the second, paper Comparing MPI and OpenMP implementations of the 0-1 Knapsack Problem, Isabel Dorta, Coromoto Leon and Casiano Rodriguez present and compare two parallel implementations of the 0-1 Knapsack Problem. Using the C ++ programming language, two exact algorithms based on the Branch-and-Bound technique have been implemented. MPI has been used to develop the Message Passing algorithm and for the Shared Memory the OpenMP has been chosen.

V. Blanco, L. Garcia, J. A Gonzalez, C. Rodriguez and G. Rodriguez, in their paper, A Performance Model for the Analysis of OpenMP Programs, attempt to build a bridge between theoretical complexity models and the performance analysis and tuning of OpenMP programs. They start with the assumption that the theoretical analysis of an OpenMP code produces a complexity function that gives an approach to the asymptotic number of operations performed by the algorithm. The shared-memory platform is characterized by a number of parameters that are computed through a benchmarking program. The authors propose an algorithm that determines the algorithmic constants associated with the complexity formula in terms of the architecture parameters. To predict the performance for a new computing platform, they use the parameters characterizing the platform to solve a random linear equation system.

P. E. Handjidoukas, E. D. Polychronopoulos, and T. S. Papatheodorou present in their paper, A Modular OpenMP Implementation for Clusters of Multiprocessors, a prototype runtime system that provides support at the backend of the NANOS OpenMP compiler. This enables the execution of unmodified OpenMP Fortran programs on both SMPs and clusters of multiprocessors, either through the hybrid (MPI + OpenMP) programming model or directly on top of Software Distributed Shared Memory.

F. Garcia Lopez and N. L. Frais Arrocha propose in their paper, Expanding the Synchronization Model for OpenMP, an extension to the OpenMP model consisting of a new and efficient synchronization model based on the Monitor model. The motivation behind this proposal is to support an application based on backtracking, branch and bound, and dynamic programming approaches.

Finally, Mohammad Towhidul Islam, Parimala Thulasiraman, and Ruppa K. Thulasiram, in their paper Implementation of Ant Colony Optimization Algorithm for Mobile Ad Hoc Network Applications: OpenMP Experiences, present experiences in design, development and implementation of a parallel algorithm for mobile ad hoc networks (MANETs) using the Ant Colony Optimization technique on a shared memory architecture with OpenMP. They have experimented with three scheduling policies provided by OpenMP for varying data sizes and compare performance results with MPI.

I would like to thank each of the participating reviewers for their help in ensuring the quality of the papers in this issue.

Ami Marowka
School of Computer Science and Engineering
The Computer Aided Design Laboratory
The Hebrew University of Jerusalem

Article Details

Introduction to the Special Issue