Open In App

Heterogeneous and other DSM systems | Distributed systems

A distributed shared memory is a system that allows end-user processes to access shared data without the need for inter-process communication. The shared-memory paradigm applied to loosely-coupled distributed-memory systems is known as Distributed Shared Memory (DSM). 
Distributed shared memory (DSM) is a type of memory architecture in computer science that allows physically distinct memories to be addressed as one logically shared address space. Sharing here does not refer to a single central memory, but rather to the address space. 
In other words, the goal of a DSM system is to make inter-process communications transparent to end-users.

Need for Heterogeneous DSM (HDSM):

Many computing environments have heterogeneity, which is almost always unavoidable because hardware and software are generally tailored to a certain application area. Supercomputers and multiprocessors, for example, excel at compute-intensive tasks but struggle with user interface and device I/O. Personal computers and workstations, on the other hand, are frequently equipped with excellent user interfaces. 



Many applications necessitate complex user interfaces, specific I/O devices, and large amounts of computational power. Artificial intelligence, CAM, interactive graphics, and interactive simulation are all examples of such applications. As a result, integrating diverse machines into a coherent distributed system and sharing resources among them is very desirable. 
HDSM is beneficial for distributed and parallel applications that need to access resources from numerous hosts at the same time. 

Heterogeneous DSM:

In a heterogeneous computing environment, applications can take advantage of the best of several computing architectures. Heterogeneity is typically desired in distributed systems. With such a heterogeneous DSM system, memory sharing between machines with different architectures will be conceivable. The two major issues in building heterogeneous DSM are : 
(i) Data Compatibility and conversion
(ii) Block Size Selection



Data compatibility & conversion:

The data comparability and conversion is the initial design concern in a heterogeneous DSM system. Different byte-ordering and floating-point representations may be used by machines with different architectures. Data that is sent from one machine to another must be converted to the destination machine’s format. The data transmission unit (block) must be transformed according to the data type of its contents. As a result, application programmers must be involved because they are familiar with the memory layout. In heterogeneous DSM systems, data conversion can be accomplished by organizing the system as a collection of source language objects or by allowing only one type of data block.

Block size selection :

The choice of block size is another difficulty in creating heterogeneous DSM systems. In a DSM system, heterogeneous machines can have varying virtual memory page sizes. As a result, any of the following algorithms can be used to choose the right block size :

  1. DSM managed by the OS : This area of data cache management by the OS includes distributed operating systems like Ivy and Mirage. Each node has its own memory, and a page fault sends a trap to the operating system, which then employs exchange messages to identify and fetch the required block. The operating system is in charge of data placement and migration.
  2. DSM managed by the MMU hardware : Memory caching is managed by the MMU hardware and cache in this technique. To keep cache consistency, snooping bus protocols are utilized. DEC Firefly, for example, uses memory hardware. Directories can be used to keep track of where data blocks and nodes are located. MMU locates and transfers the requested page in the event of a page fault.
  3. DSM managed by the language runtime system : The DSM is organized as a set of programming language elements, such as shared variables, data structures, and shared objects, in this system. The programming language and the operating system handle the placement and migration of these shared variables or objects at runtime. Features to indicate the data utilization pattern can be added to the programming language. Such a system can support several consistency protocols and can be applied to the granularity of individual data. But this technique imposes extra burden on the programmer. Examples o such systems are Munin and Midway , which uses shared variables, while Orca and Linda uses shared Objects.

 Advantages of DSM:

Difference between a Homogeneous DSM & Heterogeneous DSM:

When distributed application components share memory directly through DSM, they are more tightly connected than when data is shared through DSM. As a result, extending a DSM to a heterogeneous system environment is difficult. 

The performance of a homogeneous DSM is slight better than a heterogeneous DSM. Despite a number of challenges in data conversion, Heterogeneous DSM can be accomplished with functional and performance transparency that is comparable to homogeneous DSM. 


Article Tags :