Shared-memory architecture: Difference between revisions

Content deleted Content added
 
(15 intermediate revisions by 12 users not shown)
Line 1:
{{Short description|Distributed computing architecture}}
{{one source|date=December 2012}}
A '''shared-memory architecture''' (SM) is a [[distributed computing]] [[Software architecture|architecture]] in which the nodes share the same memory as well as the same storage.<ref>{{Cite web |title=Memory: Shared vs Distributed - UFRC |url=https://help.rc.ufl.edu/doc/Memory:_Shared_vs_Distributed |access-date=2024-03-13 |website=help.rc.ufl.edu}}</ref>
In [[computer architecture]], '''shared memory architecture''' (SMA) refers to a [[multiprocessing]] design where several processors access globally [[shared memory]].<ref name=adv >''Advanced computer architecture and parallel processing'' by Hesham El-Rewini et al. 2005 ISBN 978-0-471-46740-3 pages 77-80</ref>
 
It contrasts with [[shared-nothing architecture]], in which each node has distinct memory and storage, and with [[shared-disk architecture]], in which the nodes share the same storage but not the same memory.
Shared memory architectures may use:<ref name=adv />
 
This is distinct from the use of [[shared memory]] between different programs or threads on a single node, with or without [[multiprocessing]].
:* [[Uniform Memory Access]] (UMA): all the processors share the physical memory uniformly.
 
== See also ==
:* [[Non-Uniform Memory Access]] (NUMA): memory access time depends on the memory ___location relative to a processor.
* [[Distributed database]]
 
:* [[Cache-only memory architecture]] (COMA): the local memories for the processors at a node is used as cache.
 
In a SMA system processors communicate by reading and writing memory locations.<ref name=adv /> The two key problems in scaling an SMA system are:<ref name=adv />
 
:* performance degradation due to "contention" when several processors try to access the same memory ___location.
 
:* lack of "coherence" if memory is cached and goes out of synch with the original values as modifications take place.
 
==See also==
* [[Shared memory]]
* [[Shared graphics memory]]
* [[Heterogeneous System Architecture]] – enables shared pointers
 
==References==
{{Reflist}}
 
== References ==
[[Category:Computer architecture]]
<references />
[[Category:Memory management]]
[[Category:ComputerDistributed computing architecture]]
 
== External links ==
{{computer-stub}}
* "[https://www.linkedin.com/pulse/case-shared-nothing-ricardo-jimenez-peris/ The Case for Shared Nothing]". ''www.linkedin.com''.
* Garrod, Charlie (2023). "[https://15445.courses.cs.cmu.edu/spring2023/notes/21-distributed.pdf Lecture #21: Introduction to Distributed Databases]" (PDF). ''Carnegie Mellon University - School of Computer Science''.