Distinguishing sharing types to minimize communication in software distributed shared memory systems

Abstract Using thread migration to redistribute threads to processors is a common scheme for minimizing communication needed to maintain data consistency in software distributed shared memory (DSM) systems. In order to minimize data-consistency communication, the number of shared pages is used to identify the pair of threads that will cause the most communication. This pair of threads is then co-located on the same node. Thread pairs sharing a given page can be classified into thee types, i.e., read/read (r/r), read/write (r/w) and write/write (w/w). Based on memory-consistency protocol, these three types of sharing generate distinct amounts of data-consistency communication. Ignoring this factor will mispredict the amount of communication caused by cross-node sharing and generate wrong decisions in thread migration. This paper presents a new policy called distinguishing of types sharing (DOTS) for DSM systems. The basic concept of this policy is to classify sharing among threads as r/r, r/w or w/w, each with a different weight, and then evaluate communication cost in terms of these weights. Experiments show that considering sharing types is necessary for minimization of data-consistency communication in DSM. Using DOTS for thread mapping produces more communication reduction than considering only the number of shared pages.

[1]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, ISCA '90.

[2]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[3]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

[4]  Brian N. Bershad,et al.  The Midway distributed shared memory system , 1993, Digest of Papers. Compcon Spring.

[5]  Alan L. Cox,et al.  Message passing versus distributed shared memory on networks of workstations , 1995 .

[6]  Peter J. Keleher,et al.  Thread migration and communication minimization in DSM systems , 1999 .

[7]  Ce-Kuen Shieh,et al.  Load balancing in distributed shared memory systems , 1997, 1997 IEEE International Performance, Computing and Communications Conference.

[8]  Alan L. Cox,et al.  An Evaluation of Software-Based Release Consistent Protocols , 1995, J. Parallel Distributed Comput..

[9]  Allen Gersho,et al.  Vector quantization and signal compression , 1991, The Kluwer international series in engineering and computer science.

[10]  Weisong Shi,et al.  JIAJIA: A Software DSM System Based on a New Cache Coherence Protocol , 1999, HPCN Europe.

[11]  Su-Cheong Mac,et al.  Multi-Threaded Design for a Software Distributed Shared Memory System , 1999 .

[12]  W. Hu,et al.  JIA-JIA : An SVM System Based on A New Cache Coherence Protocol , 1999 .

[13]  Peter J. Keleher,et al.  Active correlation tracking , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[14]  Roy Friedman,et al.  MILLIPEDE: Easy Parallel Programming in Available Distributed Environments , 1997 .

[15]  Su-Cheong Mac,et al.  Cohesion: an efficient distributed shared memory system supporting multiple memory consistency models , 1995, Proceedings the First Aizu International Symposium on Parallel Algorithms/Architecture Synthesis.

[16]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[17]  Kai Li,et al.  IVY: A Shared Virtual Memory System for Parallel Computing , 1988, ICPP.

[18]  Assaf Schuster,et al.  Using Remote Access Histories for Thread Scheduling in Distributed Shared Memory Systems , 1998, DISC.

[19]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.