OpenMP for Networks of SMPs
نویسندگان
چکیده
In this paper, we present the first system that implements OpenMP on a network of shared-memory multiprocessors. This system enables the programmer to rely on a single, standard, shared-memory API for parallelization within a multiprocessor and between multiprocessors. It is implemented via a translator that converts OpenMP directives to appropriate calls to a modified version of the TreadMarks software distributed memory system (SDSM). In contrast to previous SDSM systems for SMPs, the modified TreadMarks uses POSIX threads for parallelism within an SMP node. This approach greatly simplifies the changes required to the SDSM in order to exploit the intra-node hardware shared memory. We present performance results for six applications (SPLASH-2 Barnes-Hut and Water, NAS 3D-FFT, SOR, TSP and MGS) running on an SP2 with four four-processor SMP nodes. A comparison between the threaded implementation and the original implementation of TreadMarks shows that using the hardware shared memory within an SMP node significantly reduces the amount of data and the number of messages transmitted between nodes, and consequently achieves speedups up to 30% better than the original versions. We also compare SDSM against message passing. Overall, the speedups of multithreaded TreadMarks programs are within 7–30% of the MPI versions.
منابع مشابه
An Introduction to Balder - An OpenMP Run-time Library for Clusters of SMPs
In this paper a run-time library, called Balder, for OpenMP 2.0 is presented. OpenMP 2.0 is an industry standard for programming shared memory machines. The run-time library presented can be used on SMPs and clusters of SMPs and it will provide a shared address space on a cluster. The functionality and design of the library is discussed as well as some features that are being worked on. The per...
متن کاملToward Enhancing OpenMP's Work-Sharing Directives
OpenMP provides a portable programming interface for shared memory parallel computers (SMPs). Although this interface has proven successful for small SMPs, it requies greater flexibility in light of the steadily growing size of individual SMPs and the recent advent of multithreaded chips. In this paper, we describe two application development experiences that exposed these expressivity problems...
متن کاملAn Implementation and Evaluation of Thread Subteam for OpenMP Extensions
OpenMP provides a portable programming interface on shared memory multiprocessors (SMPs). The set of features in the current OpenMP specification provides essential functionality that was selected mostly from existing shared-memory parallel application programming interfaces (APIs). Although this interface has proven successful for small SMPs, it requires greater flexibility in light of the ste...
متن کاملIntone — Tools and Environments for OpenMP on Clusters of SMPs1
Clusters of small-scale SMP computers are becoming more and more common as high-performance computing needs have arised, not only in national scientific laboratories, but also in enterprises of various kinds. An SMP-cluster represents a sweet-spot of cost-efficiency compared to a larger SMP system or to a cluster with smaller nodes. With the emergance of OpenMP, shared memory computing has also...
متن کاملEfficient Dynamic Parallelism with OpenMP on Linux SMPs
In this paper we present an integrated environment for the efficient support of dynamic parallelism with OpenMP on top of Linux-based SMPs. This environment consists of an OpenMPcompliant Fortran77 compiler, a run-time threads library and a modified Linux kernel. The functionality provided by our run-time threads library is used by the NanosCompiler, which converts OpenMP Fortran77 programs to ...
متن کامل