Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Programming distributed memory machines  





2 Distributed shared memory  





3 Shared memory vs. distributed memory vs. distributed shared memory  





4 See also  





5 References  














Distributed memory






العربية
فارسی
Français

Македонски
Српски / srpski
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


An illustration of a distributed memory system of three computers.

Incomputer science, distributed memory refers to a multiprocessor computer system in which each processor has its own private memory.[1] Computational tasks can only operate on local data, and if remote data are required, the computational task must communicate with one or more remote processors. In contrast, a shared memory multiprocessor offers a single memory space used by all processors. Processors do not have to be aware where data resides, except that there may be performance penalties, and that race conditions are to be avoided.

In a distributed memory system there is typically a processor, a memory, and some form of interconnection that allows programs on each processor to interact with each other. The interconnect can be organised with point to point links or separate hardware can provide a switching network. The network topology is a key factor in determining how the multiprocessor machine scales. The links between nodes can be implemented using some standard network protocol (for example Ethernet), using bespoke network links (used in for example the transputer), or using dual-ported memories.

Programming distributed memory machines

[edit]

The key issue in programming distributed memory systems is how to distribute the data over the memories. Depending on the problem solved, the data can be distributed statically, or it can be moved through the nodes. Data can be moved on demand, or data can be pushed to the new nodes in advance.

As an example, if a problem can be described as a pipeline where data x is processed subsequently through functions f, g, h, etc. (the result is h(g(f(x)))), then this can be expressed as a distributed memory problem where the data is transmitted first to the node that performs f that passes the result onto the second node that computes g, and finally to the third node that computes h. This is also known as systolic computation.

Data can be kept statically in nodes if most computations happen locally, and only changes on edges have to be reported to other nodes. An example of this is simulation where data is modeled using a grid, and each node simulates a small part of the larger grid. On every iteration, nodes inform all neighboring nodes of the new edge data.

Distributed shared memory

[edit]

Similarly, in distributed shared memory each node of a cluster has access to a large shared memory in addition to each node's limited non-shared private memory.

Shared memory vs. distributed memory vs. distributed shared memory

[edit]

Distributed shared memory hides the mechanism of communication, it does not hide the latency of communication.

See also

[edit]

References

[edit]
  1. ^ Pardo, David; Matuszyk, Paweł J.; Puzyrev, Vladimir; Torres-Verdín, Carlos; Nam, Myung Jin; Calo, Victor M. (2021). "Parallel implementation". Modeling of Resistivity and Acoustic Borehole Logging Measurements Using Finite Element Methods. Elsevier. doi:10.1016/C2019-0-02722-7. ISBN 978-0-12-821454-1 – via ScienceDirect. Distributed memory refers to a computing system in which each processor has its memory. Computational tasks efficiently operate with local data, but when remote data is required, the task must communicate (using explicit messages) with remote processors to transfer data. This type of parallel computing is standard on supercomputers equipped with many thousands of computing nodes.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Distributed_memory&oldid=1204195354"

Categories: 
Parallel computing
Distributed computing architecture
Hidden categories: 
Articles with short description
Short description matches Wikidata
Use British English from February 2024
Use dmy dates from February 2024
Articles needing additional references from February 2024
All articles needing additional references
 



This page was last edited on 6 February 2024, at 16:38 (UTC).

Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Code of Conduct

Developers

Statistics

Cookie statement

Mobile view



Wikimedia Foundation
Powered by MediaWiki