Supporting Multiple Memory Consistency Models on a Shared Virtual Memory Parallel Programming Environment

  • Alba Cristina Magalhães de Melo Balaniuk UnB

Resumo


In order to make shared memory programming possible in parallel or distributed architectures where no physical shared memory exists, we must create a shared memory abstraction that parallel processes can access. The behavior of this abstraction is dictated by the memory consistency model. It has been observed that simulating exactly the real shared memory behavior in such architectures creates a huge network traffic. Several relaxed memory models have been proposed to reduce this traffic. We claim that no single memory model will be able to provide both performance and ease of programming for all classes of parallel applications. Hence, we must allow programmers to choose the memory model that best fits to his parallel application needs. This article describe the design and implementation of a shared virtual memory system that supports multiple user-defined memory consistency models. The idea here is to allow programmers to choose the memory model that best fits to its parallel application sharing patterns. The programmer can also define a memory model by his own. This article is divided in three parts. In the first part, we introduce the problem of memory consistency model definition and define formally what is a memory consistency model. In the second part, we describe the design of a general model manager that supports multiple memory models. In the last part, we present the implementation of a prototype of the system in a parallel machine and examine some preliminary results.

Referências

S. V. Adve, Designing Multiple Memory Consistency Models for Shared-Memory Multiprocessors. PhD thesis, University of Wisconsin-Madison, 1993.

M. Ahamad, P. Hutto, R. John, lmplementing and Programming Causal Distributed Shared Memory. Technical Report GIT-CC-90/49, Georgia lnstitute of Technology, 1990.

M. Ahamad et al., The Power of Processor Consistency. Technical report GIT-CC-92134, Georgia lnstitute of Technology, 1992.

A. Balaniuk, Conception d'un Système Supportant des Modèles de Cohérence Multiples pour les Machines Parallèles à  Mémoire Virtuelle Partagée, PhD Thesis, Institui National Polytechnique de Grenoble, France, 1996.

A. Balaniuk and T. Muntean, Programming with Shared Data in Parallel Loosely Coupled Machines: the Shared Virtual Memory Approach, In IEEE/USP lnternational Workshop on High Performance Computing, pages 129-142, 1994.

A. Balaniuk and T. Muntean, Adaptive Page Replacement in tht DIVA Shared Virtual Memory Parallel Server, In Journées des Jeunes Chercheurs en Architectures de Machines et Systèmes, Tunísia, 1994.

B. Bershad and M. Zekauskas, Midway: Shared Memory Parallel Programming with Entry Consistency for Distributed Memory Multiprocessors. Technical Repont CMU-CS-91170, CMU, 1991.

B. Bershad and M. Zekauskas, The Midway Distribured Shared Memory System. COMPCON'93, pages 34-42, 1993.

J. Caner, Efficient Distribured Shared Memory Based on Multi-Protocol Release Consistency, PhD Thesis, Rice University, 1993.

B. Fleisch and G. Popek, Mirage: a Coherent Distributed Shared Memory Design, In 14th ACM Symposium on Operating Systems Principies, pages 211-221, 1989.

A. Heddaya and H. Sinha, An lmplementation of Mernera: a Shared Memory System that Mixes Coherence with Non-Coherence, Technical Report BU-CS-93-006, Boston University, 1993.

Intel Corporation. Paragon System Administrator's Guide, 1993.

R. John and M. Ahamad, Causal memory: lmplementation, Programming Support and Experiences, Technical Report GIT-CC-93/10, Georgia lnstitute of Technology, 1993.

P. Kelcher et al. Lazy Release Consistency for Software Distributed Shared Memory, In 19th Symposium on Computer Architecture, pages 13-21,1992.

P. Kohli, G. Neiger, M. Ahamad, A Characterization of Scalable Shared Memories. Technical Report GITCC- 93104, Georgia lnstitute of Technology, 1993.

L. Lamport, Time, Clocks and Ordering of Events in a Distributed System, Communications of the ACM, pages 558-565, 1978.

L. Lampon, How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs, IEEE Transactions on Computers, pages 690-691,1979.

K. Li, Shared Virtual Memory on Loosely Coupled Architectures, PhD thesis, Yale University, 1996.

Z. Lahjomri and T. Priol, KOAN: a Shared Virtual Memory for the iPSC/2 Hypercube, Lecture Notes on Computer Science 634, pages 442-452, 1992.

D. Lenosky et al. The DASH Prototype: Logic Overhead and Performance, IEEE Transactions on Parallel and Distributed Systems, January, 1993.

D. Mosberger, Memory Consistency Models. Operating Systems Review, pages 18-26, 1993.

B. Nitzberg and V. Lo. Distributed Shared Memory: A Survey of Issues and Algorithms, IEEE Computer, pages 52-60. 1991.

Open Software Foundation and CMU. Mach 3 Server Writer's Guide. 1992.

M. Raynal and A. Schiper, A Suite of Formal Definitions for Consistency Criteria in Distributed Shared Memories, Technical Report PI-968, IRISA, France, 1995.
Publicado
07/10/1997
BALANIUK, Alba Cristina Magalhães de Melo. Supporting Multiple Memory Consistency Models on a Shared Virtual Memory Parallel Programming Environment. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 9. , 1997, Campos do Jordão/SP. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1997 . p. 365-379. DOI: https://doi.org/10.5753/sbac-pad.1997.22636.