Information Technology Reference
In-Depth Information
A VE contains more components than a DVM. We have implemented
the DVM parser that can incarnate and deploy the DVM according to its
model. We need to establish the VM Incarnation and Deployment Service
and further extend current parsers to other components described in a
VM model, such as network connections and storages.
16.3.3 Virtual Machine Mobility
As described previously, the mobility challenges are addressed in three
major steps: reconstruction, runtime state migration, and communication
state transfer. The reconstruction request is fuli lled by the VM Incarnation
and Deployment Service. In this section, we address the runtime state
migration and communication state transfer issues.
16.3.3.1 Runtime State Transfer
High-Performance Computing Mobility (HPCM) is a user-level middle-
ware supporting process migration of legacy codes written in C, FORTRAN
or other stack-based programming languages via denoting the source code
[24]. It consists of several subsystems to support the main functionalities of
heterogeneous process migration including source code pre-compiling,
execution state collection and restoration, memory state collection and res-
toration, and I/O state redirection. We have developed several optimiza-
tion mechanisms to reduce the migration cost, including communication/
execution pipelining, and live variable analysis.
The input of HPCM is the source code of an application. The precompiler
or the user chooses some points (called poll-points) in the source code.
A poll-point is a point where a migration can occur. The precompiler anno-
tates the source code and outputs the migration capable code, namely the
annotated code. The annotated code is preinitialized on the destination
machine before a migration. When a migration is demanded, the migrat-
ing process i rst transfers the execution state, I/O state, communication
state, and partial memory state to the initialized destination. The preini-
tialized process resumes execution while the remaining memory state is
still in transmission. That is, the process states are transferred in a pipe-
lined manner. The concurrency saves signii cant time in a networked envi-
ronment, especially when a large amount of data needs to be transmitted.
To migrate an application over heterogeneous systems, we represent the
application's memory space by a memory space representation (MSR)
model [25], which is a machine-independent logical representation of
memory space. The snapshot of an application's memory space is mod-
eled as an MSR-directed graph. Each vertex in the graph represents a
memory block. Each edge represents a relationship between two blocks
when one of them contains a pointer, which points to a memory location
within another memory block. MSRLT (MSR lookup table) is a global
 
Search WWH ::




Custom Search