Process/thread migration and checkpointing are indispensable for resource sharing, cycle stealing, and other modes of interaction. To provide a flexible, transparent, and portable solution in heterogeneous environments, we have developed a multi-grained migration/checkpointing package, MigThread, which can migrate/checkpoint multiple threads to different machines or file systems simultaneously, and also perform single coarse-grained process migration/checkpointing. For scalability and portability, computation states are extracted out of their original places and abstracted to the language level. With the user-level stack/heap management, MigThread does not rely on any thread libraries and operating systems. For heterogeneity, a novel data conversion scheme is proposed to analyze data types automatically and convert data only on the receiver side. For safety, MigThread detects and overcomes "unsafe" factors to qualify virtually all C programs for migration/checkpointing. Some performance measurements are given to illustrate its effectiveness.
Citation:
Hai Jiang, Vipin Chaudhary, "Process/Thread Migration and Checkpointing in Heterogeneous Distributed Systems," hicss, vol. 9, pp.90282b, Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 9, 2004