Skip to main content

Software Distributed Shared Memory

  • Reference work entry
  • 193 Accesses

Synonyms

Implementations of shared memory in software; Shared virtual memory; Virtual shared memory

Definition

Software distributed shared memory (SDSM) refers to the implementation of shared memory in software on systems that do not provide hardware support for data coherence and consistency across nodes (and the memory therein).

Discussion

Introduction

Executing an application in parallel requires the coordination of computation and the communication of data to respect dependences among tasks. Historically, multiprocessor machines provide either a shared memory or a message passing model for data communication in hardware (with models such as partitioned global address spaces that fall in between the two extremes). In the message passing model, communication and coordination across processes is achieved via explicit messages. In the shared memory model, communication and coordination is achieved by directly reading and writing memory that is accessible by multiple processes and...

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-0-387-09766-4_492
  • Chapter length: 8 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   1,600.00
Price excludes VAT (USA)
  • ISBN: 978-0-387-09766-4
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)

Bibliography

  1. Adve S, Hill M (1990) Weak ordering: a new definition. In: Proceedings of the 17th annual international symposium on computer architecture, May 1990. ACM, New York, pp 2–14

    Google Scholar 

  2. Amza C, Cox A, Dwarkadas S, Keleher P, Lu H, Rajamony R, Zwaenepoel W (1996) Tread-marks: shared memory computing on networks of workstations. IEEE Comput 29(2):18–28

    Google Scholar 

  3. Bal H, Kaashoek M, Tanenbaum A (1992) Orca: a language for parallel programming of distributed systems. IEEE Trans Softw Eng 18(3):190–205

    Google Scholar 

  4. Becchi M, Cadambi S, Chakradhar S (2010) Enabling legacy applications on heterogeneous platforms. Poster paper, 2nd USENIX workshop on hot topics in parallelism (HOTPAR), Berkley, June 2010

    Google Scholar 

  5. Bershad B, Zekauskas M (1991) Midway: shared memory parallel programming with entry consistency for distributed memory multiprocessors. Technical Report CMU-CS-91-170, Carnegie-Mellon University, Sept 1991

    Google Scholar 

  6. Bilas A, Jiang D, Singh JP (2001) Accelerating shared virtual memory via general-purpose network interface support. ACM Trans Comput Syst 19:1–35

    Google Scholar 

  7. Blumrich M, Li K, Alpert R, Dubnicki C, Felten E, Sandberg J (1994) Virtual memory mapped network interface for the SHRIMP multicomputer. In: Proceedings of the 21st annual international symposium on computer architecture. ACM, New York, pp 142–153

    Google Scholar 

  8. Carter J, Bennett J, Zwaenepoel W (1991) Implementation and performance of Munin. In: Proceedings of the 13th ACM symposium on operating systems principles, ACM Press, New York, pp 152–164

    Google Scholar 

  9. Chen D, Tang C, Chen X, Dwarkadas S, Scott ML (2001) Beyond S-DSM: shared state for distributed systems. Technical report  744, University of Rochester, Mar 2001

    Google Scholar 

  10. Chen D, Tang C, Chen X, Dwarkadas S, Scott ML (2002) Multi-level shared state for distributed systems. In: International conference on parallel processing, Aug 2002, Vancouver

    Google Scholar 

  11. Dwarkadas S, Cox A, Zwaenepoel W (1996) An integrated compile-time/run-time software distributed shared memory system. In: Proceedings of the 7th symposium on architectural support for programming languages and operating systems, pp 186–197, Oct 1996

    Google Scholar 

  12. Erlichson A, Nuckolls N, Chesson G, Hennessy J (1996) SoftFLASH: analyzing the performance of clustered distributed virtual shared memory. In: Proceedings of the 7th symposium on architectural support for programming languages and operating systems, Oct 1996. ACM Press, New York, pp 210–220

    Google Scholar 

  13. Fensch C, Cintra M (2008) An OS-based alternative to full hardware coherence on tiled CMPs. In: Proceedings of the fourteenth international symposium on high-performance computer architecture symposium, February 2008, Phoenix

    Google Scholar 

  14. Foster I, Kesselman C (1997) Globus: a metacomputing infrastructure toolkit. Int J Supercomputer Appl 11(2):115–128

    Google Scholar 

  15. Gharachorloo K, Lenoski D, Laudon J, Gibbons P, Gupta A, Hennessy J (1990) Memory consistency and event ordering in scalable shared-memory multiprocessors. In: Proceedings of the 17th annual international symposium on computer architecture, May 1990. ACM, New York, pp 15–26

    Google Scholar 

  16. Gillett R (1996) Memory channel: an optimized cluster interconnect. IEEE Micro 16(2):12–18

    Google Scholar 

  17. Hu Y, Lu H, Cox AL, Zwaenepoel W (1999) OpenMP for networks of SMPs. In: Proceedings of the 13th international parallel processing symposium (IPPS/SPDP), Apr 1999. IEEE, New York, pp 302–310

    Google Scholar 

  18. Hu YC, Yu W, Cox AL, Wallach D, Zwaenepoel W (2003) Run-time support for distributed sharing in sage languages. ACM Trans Comput Syst 21(1):1–35

    Google Scholar 

  19. Iftode L, Singh JP (1999) Shared virtual memory: progress and challenges. Proceedings of the IEEE 87(3):498–507

    Google Scholar 

  20. Iftode L, Singh JP, Li K (1996) Scope consistency: a bridge between release consistency and entry consistency. In: ACM symposium on parallelism in algorithms and architectures, June 1996. ACM Press, New York, pp 277–287

    Google Scholar 

  21. Association (2010) InfiniBand. http://www.infinibandta.org

  22. Keleher P, Cox AL, Zwaenepoel W (1992) Lazy release consistency for software distributed shared memory. In: Proceedings of the 19th annual international symposium on computer architecture, May 1992. ACM Press, New York, pp 13–21

    Google Scholar 

  23. Keleher P, Dwarkadas S, Cox A, Zwaenepoel W (1994) Treadmarks: distributed shared memory on standard workstations and operating systems. In: Proceedings of the 1994 winter Usenix conference, Jan 1994. USENIX Association, Berkeley, pp 115–131

    Google Scholar 

  24. Kelm JH, Johnson DR, Tuohy W, Lumetta SS, Patel SJ (2010) Cohesion: a hybrid memory model for accelerators. In: Proceedings of the international symposium on computer architecture (ISCA), June 2010, St Malo

    Google Scholar 

  25. Kontothanassis L, Hunt G, Stets R, Hardavellas N, Cierniak M, Parthasarathy S, Meira W, Dwarkadas S, Scott M (1997) VM-based shared memory on low-latency, remote-memory-access networks. In: 24th international symposium on computer architecture, June 1997. ACM Press, New York, pp 157–169

    Google Scholar 

  26. Lewis M, Grimshaw A (1996) The core legion object model. In: Proceedings of the 5th high performance distributed computing conference, Aug 1996, Syracuse

    Google Scholar 

  27. Li K (1986) Shared virtual memory on loosely coupled multiprocessors. Ph.D. thesis, Yale University

    Google Scholar 

  28. Li K, Hudak P (1989) Memory coherence in shared virtual memory systems. ACM Trans Comput Syst 7(4):321–359

    Google Scholar 

  29. Min S-J, Basumallik A, Eigenmann R (2003) Optimizing openmp programs on software distributed shared memory systems. Int J Parallel Prog 31:225–249

    MATH  Google Scholar 

  30. Protic J, Tomasevic M, Milutinovic V (1998) Distributed shared memory: concepts and systems. IEEE Computer Society Press, Piscataway, p 365

    Google Scholar 

  31. Rogerson D (1997) Inside COM. Microsoft Press, Redmond

    Google Scholar 

  32. Saha B, Zhou X, Chen H, Gao Y, Yan S, Rajagopalan M, Fang J, Zhang P, Ronen R, Mendelson (2009) A Programming Model for a Heterogeneous x86 Platform. In Proceedings of the ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation, June 2009

    Google Scholar 

  33. Scales D, Gharachorloo K, Aggarwal A (1998) Fine-grain software distributed shared memory on smp clusters. In: Proceedings of the fourth international symposium on high-performance computer architecture symposium, Feb 1998. ACM, New York, pp 125–136

    Google Scholar 

  34. Scales D, Gharachorloo K, Thekkath C (1996) Shasta: A low overhead, software-only approach for supporting fine-grain shared memory. In: Proceedings of the 7th symposium on architectural support for programming languages and operating systems, Oct 1996, pp 174–185

    Google Scholar 

  35. Schoinas I, Falsafi B, Lebeck AR, Reinhardt SK, Larus JR, Wood DA (1994) Fine-grain access control for distributed shared memory. In: Proceedings of the 6th symposium on architectural support for programming languages and operating systems, Oct 1994. ACM, New York, pp 297–306

    Google Scholar 

  36. Stets R, Dwarkadas S, Hardavellas N, Hunt G, Kontothanassis L, Parthasarathy S, Scott M (1997) Cashmere-2L: software coherent shared memory on a clustered remote-write network. In: Proceedings of the 16th ACM symposium on operating systems principles, Oct 1997. ACM, New York, pp 170–183

    Google Scholar 

  37. van Steen M, Homburg P, Tanenbaum AS (1999) Globe: a wide-area distributed system. IEEE Concurr 7(1):70–78

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Dwarkadas, S. (2011). Software Distributed Shared Memory. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_492

Download citation