Cluster 2005 START ConferenceManager    

Near Overhead-free Heterogeneous Thread-migration

Ronald Veldema Michael Philippsen

IEEE International Conference on Cluster Computing (Cluster 2005)
Boston, Massachusetts, USA, September 27 - 30, 2005


Abstract

Thread migration moves a single call-stack to another machine to improve load balancing or locality. Current approaches for checkpointing and thread migration are either not heterogeneous as they do not allow a call stack created using architecture X, to be restored on a machine with architecture Y, or they introduce large runtime overhead. In general, previous approaches add overhead by instrumenting each function in a program to constantly test if the current method invocation is invoked for normal or for restoration purposes. 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 in case no migration is called performed.

Our implementation does not instrument each function but rather generates meta-functions for each call-site. These compiler generated meta-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' (UDS) to enable heterogenous, 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 move the decision on when and where to migrate to the application programmer instead of implementing a fixed 'fits-all' heuristic as in previous approaches.


  
START Conference Manager (V2.49.7)
Maintainer: rrgerber@softconf.com