A Fully Compliant OpenMP Implementation on Software Distributed Shared Memory
OpenMP is a relatively new industry standard for programming parallel computers with a shared memory programming model. Given that clusters of workstations are a cost-effective solution for building parallel platforms, it would of course be highly interesting if the OpenMPmo del could be extended to these systems as well as to the standard shared memory architectures for which it was originally intended.
We present in this paper a fully compliant implementation of the OpenMP specification 1.0 for C targeting networks of workstations. We have used an experimental software distributed shared memory system called Coherent Virtual Machine to implement a run-time library which is the target of a source-to-source OpenMPt ranslator also developed in this project.
The system has been evaluated using an OpenMPm icro-benchmark suite as to evaluate the effect of some memory coherence protocol improvements. We have also used OpenMPv ersions of three Splash-2 applications concluding in reasonable speedups on an IBM SP2 machine. This also is the first study to investigate the subtle mechanisms of consistency in OpenMPon software distributed shared memory systems.
KeywordsShared Memory Parallel Region Home Node Shared Memory System Page Request
Unable to display preview. Download preview PDF.
- S. V. Adve, K. Gharachorloo, Shared memory consistency models: a tutorial, IEEE Computer, Volume: 29 Issue: 12, Dec. 1996 pp. 66–76. 199Google Scholar
- C. Amza, A. L. Cox, S. Dwarkadas, P. Keleher, H. Lu, R. Rajamony, W. Yu and W. Zwaenepoel. TreadMarks: Shared Memory Computing on Networks of Workstations, IEEE Computer, Vol. 29, no. 2, pp. 18–28, February 1996. 195, 198Google Scholar
- J. M. Bull, Measuring Synchronization and Scheduling Overheads in OpenMP, in Proceedings of the First European Workshop on OpenMP, Sept. 1999, pp. 99–105. http://www.it.lth.se/ewomp99. 201
- Y. C. Hu, H. Lu, A. L. Cox, and W. Zwaenepoel, OpenMPf or Networks of SMPs, in Proceedings of IPPS/SPDP’99, April 1999, pp. 302–310. 204Google Scholar
- S. Karlsson, et al., A Free OpenMP Compiler and Run-Time Library Infrastructure for Research on Shared Memory Parallel Computing, Technical Report, Deptartment of Microelectronics and Information Technology, KTH, Royal Institute of Technology, 2002. 196, 197Google Scholar
- S. Karlsson, and M. Brorsson, Producer-push-a protocol enhancement to pagebased software distributed shared memory systems Proceedings of 1999 International Conference on Parallel Processing, September 1999, pp. 291–300. 195Google Scholar
- S. Karlsson, and M. Brorsson, A comparative characterization of communication patterns in applications using MPI and shared memory on an IBM SP2, in Network-Based Parallel Computing. Communication, Architecture, and Applications. Second International Workshop, CANPC’ 98, January 1998 pp. 189–201. 196Google Scholar
- P. Keleher, The CVM Manual, Technical report, Computer Science Deptartment, University of Maryland, May 1995. 195, 196, 198Google Scholar
- K. Li, IVY: A shared Virtual Memory System for Parallel Computing. In Proceedings of 1988 International Conference on Parallel Processing, 1988, pp. 94–101. 195Google Scholar
- H. Lu. Y. C. Hu, and W. Zwaenepoel. OpenMPon Networks of Workstations, in Proceedings of Supercomputing’98, Nov. 1998. 204Google Scholar
- Message Passing Interface Forum, MPI: A Message-Passing Interface Standard, version 1.1, June 12, 1995. 196Google Scholar
- H. W. Meuer, E. Strohmaier, J. J. Dongarra, and H. D. Simon, TOP500 Supercomputer Sites, 18th ed., Technical report, Lawrence Berkely National Laboratory LBNL-49122, Nov. 2001. 195Google Scholar
- OpenMPcon sortium, OpenMP: A Proposed Standard API for Shared Memory Programming, White paper, http://www.openmp.org. 195
- OpenMPcon sortium, OpenMP C and C++ Application Program Interface, Version 1.0, October 1998. 195, 204Google Scholar
- R. Samanta, A. Bilas, L. Iftode, and J. P. Singh, Home-based SVM protocols for SMPc lusters: Design and performance, in Proceedings of the 4th IEEE Symposium on High-Performance Computer Architecture (HPCA-4), Las Vegas, Nevada, January 1998, pp. 113–124. 195Google Scholar
- D. M. Sato, Design of OpenMPC ompiler for an SMP Cluster, in Proceedings of First European Workshop on OpenMP, Sept. 1999. http://www.it.lth.se/ewomp99. 204
- D. J. Scales, K. Gharachorloo, and C. A. Thekkath, Shasta: A Low Overhead, Software-Only Approach for Supporting Fine-Grained Shared Memory, in Proceedings of the Seventh International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’96), October 1996, pp. 174–185. 195Google Scholar
- J. P. Singh, A. Gupta and M. Levoy, Parallel Visualization Algorithms: Performance and Architectural Implications, IEEE Computer Magazine, July 1994, pp. 45–55. 195Google Scholar
- T. Sterling, D. Becker, D. Savarese, et al., BEOWULF: A Parallel Workstation for Scientific Computation, in Proceedings of the 1995 International Conference on Parallel Processing (ICPP), Vol. 1, August 1995, pp. 11–14. 195Google Scholar
- S. C. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta. The SPLASH-2 Programs: Characterization and Methodological Considerations, in Proceedings of the 22nd International Symposium on Computer Architecture, Santa Margherita Ligure, Italy, June 1995, pp. 24–36. 200Google Scholar
- Y. Zhou, L. Iftode, and K. Li, Performance evaluation of two home-based lazy release consistency protocols for shared virtual memory systems, in Proceedings of the 2nd Symposium on Operating System Design and Implementation, October 1996, pp. 75–88. 198Google Scholar