Compile/run-time support for thread migration

Describes a generic mechanism to migrate threads in heterogeneous distributed environments. To maintain high portability and flexibility, thread migration is implemented at the language level. At compile-time, a pre-processor scans the C and C++ programs to build the thread state, detects possible thread migration points and transforms the source code accordingly. Run-time support helps to migrate the threads physically. Since the physical thread state is transformed into a logical form, and pointers and dynamically-allocated memory in a heap are supported, the proposed solution places no restriction on thread types and migration-enabled systems. We implemented this approach in Strings, a multithreaded-software distributed shared memory system. Some microbenchmarks and performance measurements on the SPLASH-2 suite are reported.

[1]  Thomas R. Gross,et al.  Transparent adaptive parallelism on NOWs using OpenMP , 1999, PPoPP '99.

[2]  Gabriel Antoniu,et al.  DSM-PM2: a portable implementation platform for multithreaded DSM consistency protocols , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[3]  Assaf Schuster,et al.  Thread migration and its applications in distributed shared memory systems , 1998, J. Syst. Softw..

[4]  Sumit Roy,et al.  Strings: a high-performance distributed shared memory for symmetrical multiprocessor clusters , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[5]  Joel H. Saltz,et al.  The utility of exploiting idle workstations for parallel computation , 1997, SIGMETRICS '97.

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

[7]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[8]  Edward Mascarenhas,et al.  Ariadne: Architecture of a Portable Threads system supporting Mobile Processes , 1995 .

[9]  Brian N. Bershad,et al.  Thread Management for Shared-Memory Multiprocessors , 2014, The Computer Science and Engineering Handbook.

[10]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[11]  Scott Milton Thread migration in distributed memory multicomputers , 1998 .

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

[13]  BlackAndrew,et al.  Fine-grained mobility in the Emerald system , 1988 .

[14]  Matthew Haines,et al.  Thread migration in the presence of pointers , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[15]  Vernon Rego,et al.  Arachne: A Portable Threads System Supporting Migrant Threads on Heterogeneous Network Farms , 1998, IEEE Trans. Parallel Distributed Syst..

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

[17]  Jürgen Quittek,et al.  Efficient fine-grain thread migration with active threads , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.