Supporting Multiple Memory Consistency Models on a Shared Virtual Memory Parallel Programming Environment - Balaniuk, Alba Cristina Magalhães de Melo (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD); 1997: Anais do IX Simpósio Brasileiro de Arquitetura de Computadores e Processamento de Alto DesempenhoDO - 10.5753/sbac-pad.1997.22636, 1997)
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.