Thread migration and its applications in distributed shared memory systems

Abstract In this paper we describe the way thread migration can be carried in distributed shared memory (DSM) systems. We discuss the advantages of multi-threading in DSM systems and the importance of preempted dynamic thread migration. The proposed solution is implemented in MILLIPEDE: an environment for parallel programming over a network of (personal) computers. MILLIPEDE implements transparent computation migration mechanism: a mobile computation thread in a MILLIPEDE application can be suspended almost at every point during its lifetime and be resumed on another host. This mechanism can be used to better utilize system resources and improve performance by balancing the load and solving ping-pong situations of memory objects, and to provide user ownership on his workstation. We describe how some of these are implemented in the MILLIPEDE system. MILLIPEDE, including its thread migration module, is fully implemented in user-mode (currently on Windows-NT) using the standard operating system APIs.

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

[2]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[3]  Anthony P. Reeves,et al.  Strategies for Dynamic Load Balancing on Highly Parallel Computers , 1993, IEEE Trans. Parallel Distributed Syst..

[4]  Edward R. Zayas,et al.  Attacking the process migration bottleneck , 1987, SOSP '87.

[5]  Edward D. Lazowska,et al.  Adaptive load sharing in homogeneous distributed systems , 1986, IEEE Transactions on Software Engineering.

[6]  Edward Mascarenhas,et al.  Ariadne: Architecture of a Portable Threads System Supporting Thread Migration , 1996 .

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

[8]  Larry Rudolph,et al.  ParC—An Extension of C for Shared Memory Parallel Processing , 1996 .

[9]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[10]  Jonathan Walpole,et al.  Adaptive load migration systems for PVM , 1994, Proceedings of Supercomputing '94.

[11]  Assaf Schuster,et al.  Supporting multiple parallel programming paradigms on top of the Millipede virtual parallel machine , 1997, Proceedings Second International Workshop on High-Level Parallel Programming Models and Supportive Environments.

[12]  Alan L. Cox,et al.  TreadMarks: Distributed Shared Memory on Standard Workstations and Operating Systems , 1994, USENIX Winter.

[13]  Thomas L. Casavant,et al.  A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems , 1988, IEEE Trans. Software Eng..

[14]  Phillip Krueger,et al.  A comparison of preemptive and non-preemptive load distributing , 1988, [1988] Proceedings. The 8th International Conference on Distributed.