Other meanings of Distributed memory
Computer architecture
Distributed memory is a computer architecture in which each processor, or processing element, has its own local memory rather than access to one universally shared address space. Processors cooperate by explicitly exchanging messages across an interconnect, making the model central to clusters and high-performance computing.
Distributed memory separates computation from memory ownership: a process can directly read and write its own address space, but it must communicate to obtain data held elsewhere. The interconnection network therefore becomes part of the programming model, alongside processors and memory. A typical cluster contains multicore nodes, each with local random-access memory, connected by an Ethernet or specialized high-speed fabric. The distinction is logical rather than purely physical: even when several processors occupy one server, software may expose them as separate processes with private memory. The Message Passing Interface (MPI) standard defines portable operations for sending data, receiving it, synchronizing processes, and forming groups or communicators.1
Programs usually divide a problem into subdomains and assign each subdomain to a process. Computation on local data is comparatively inexpensive; exchanging boundary values, reducing partial results, or redistributing uneven workloads incurs communication and synchronization costs.
Distributed-memory performance depends on minimizing communication while keeping all processors productively occupied. MPI is the dominant general-purpose interface: point-to-point operations support direct exchanges, while collective operations implement broadcasts, reductions, gathers, and barriers across a communicator.1 Implementations such as MPICH and Open MPI translate these operations into network activity appropriate to the cluster.2
Two recurring design concerns are latency and bandwidth. Small messages can be limited by the time required to initiate communication, whereas large transfers are limited more by link capacity. Nonblocking communication can overlap transfer with computation, but only when the application and implementation provide enough independent work. Algorithms are also judged by strong scaling, which holds the problem size constant, and weak scaling, which grows the problem with processor count. Poor partitioning, synchronization delays, and network contention can make additional processors reduce efficiency.
Distributed memory is well suited to simulations and data-intensive workloads whose data can be partitioned across nodes. Climate and fluid models, astrophysical calculations, molecular dynamics, seismic imaging, computational chemistry, and large-scale linear algebra commonly use this approach. The NAS Parallel Benchmarks were created to provide representative tests of parallel computational performance, including communication-heavy kernels and numerical applications.3
The architecture offers aggregate memory and processing capacity that can grow beyond a single machine, and it can use commodity nodes instead of one specialized shared-memory system. Its costs are software complexity, explicit data movement, sensitivity to network topology, and more difficult debugging. A distributed program must also address failures and workload imbalance: one stalled or failed process can delay a collective computation unless the application or runtime has a recovery strategy. Hybrid designs combine distributed-memory MPI between nodes with shared-memory threading, often using OpenMP within each node.4
Distributed memory is not synonymous with geographically distributed computing or with a particular hardware technology. It describes the address-space model; a tightly coupled supercomputer, a laboratory cluster, and a cloud deployment may all present it to applications. Some systems use one-sided communication, in which a process directly initiates an operation on another process's memory, while retaining distributed address spaces and explicit synchronization. MPI also supports derived datatypes, virtual topologies, and communicator isolation, features that help applications describe noncontiguous data and organize irregular scientific workloads.1
Historically, message-passing ideas preceded modern commodity clusters, but the Beowulf cluster project helped establish the practical pattern of linking inexpensive computers for scientific computation. Today, the largest systems are commonly measured by the TOP500 list using the LINPACK benchmark, although that benchmark captures only one class of workload and does not fully represent communication-bound applications.5 Network-aware algorithms, topology mapping, checkpointing, and resilient collectives remain active areas of research.
The term here refers to the parallel-computing architecture, not distributed data storage, distributed databases, or the psychological concept of distributed memory.
Help improve the encyclopedia. Reports go straight to the site manager.