2005 IEEE International Conference on Cluster Computing (2005)
Sept. 27, 2005 to Sept. 30, 2005
R. Veldema , Dept. of Comput. Sci., Erlangen-Nuremberg Univ., Erlangen
M. Philippsen , Dept. of Comput. Sci., Erlangen-Nuremberg Univ., Erlangen
Thread migration moves a single call-stack to another machine to improve either load balancing or locality. Current approaches for checkpointing and thread migration are either not heterogeneous or they introduce large runtime overhead. In general, previous approaches add overhead by instrumenting each function in a program. The instrumentation costs are then even incurred when no thread migration is performed. In this respect our system is near-overhead free: nearly no overhead is caused if no migration is performed. Our implementation instead generates meta-functions for each location in the code where a function is called. These functions portably save and rebuild activation records to and from a machine-independent format. Each variable of an activation record is described in terms of its usages in a machine-independent `usage descriptor string' to enable heterogeneous, near overhead free thread migration with as few as possible changes to a compiler. Our resulting thread migration solution is, for example, able to move a thread between an x86 machine (few registers, 32 bits) and an Itanium machine (many registers, 64 bits). Furthermore, we (optionally) move the decision on when and where to migrate to the application programmer instead of implementing a fixed 'fits-all' heuristics as in previous approaches
Itanium machine, near overhead-free heterogeneous thread-migration, thread migration, single call-stack, load balancing, load locality, checkpointing, large runtime overhead, machine-independent format, usage descriptor string, x86 machine
M. Philippsen and R. Veldema, "Near Overhead-free Heterogeneous Thread-migration," 2005 IEEE International Conference on Cluster Computing(CLUSTER), Burlington, MA, 2005, pp. 1-10.