  Clusters of SMP nodes provide support for a wide diversity of parallel
programming paradigms. Combining both shared memory and message passing
parallelizations within the same application, the hybrid MPI-OpenMP paradigm is
an emerging trend for parallel programming to fully exploit distributed
shared-memory architecture. In this paper, we improve the performance of MPEG-2
encoder and n-body simulation by employing the hybrid MPI-OpenMP programming
paradigm on SMP clusters. The hierarchical image data structure of the MPEG
bit-stream is eminently suitable for the hybrid model to achieve multiple
levels of parallelism: MPI for parallelism at the group of pictures level
across SMP nodes and OpenMP for parallelism within pictures at the slice level
within each SMP node. Similarly, the work load of the force calculation which
accounts for upwards of 90% of the cycles in typical computations in the n-body
simulation is shared among OpenMP threads after ORB domain decomposition among
MPI processes. Besides, loop scheduling of OpenMP threads is adopted with
appropriate chunk size to provide better load balance of work, leading to
enhanced performance. With the n-body simulation, experimental results
demonstrate that the hybrid MPI-OpenMP program outperforms the corresponding
pure MPI program by average factors of 1.52 on a 4-way cluster and 1.21 on a
2-way cluster. Likewise, the hybrid model offers a performance improvement of
18% compared to the MPI model for the MPEG-2 encoder.
