Presentation Transcript
G-JavaMPI:A Grid Middleware for Distributed Java Computing with MPI Binding and Process Migration Supports : G-JavaMPI: A Grid Middleware for Distributed Java Computing with MPI Binding and Process Migration Supports Lin Chen, Cho-Li Wang, Francis C. M. Lau and Ricky K. K. Ma
Department of Computer Science and Information Systems
The University of Hong Kong
{lchen2+clwang+fcmlau+kk1ma}@csis.hku.hk
Outline: Outline Motivation
Overall system architecture
Detailed Issues
Related works
Conclusion andamp; Future Work
Motivation: Motivation Grid computing: large-scale resource sharing, high performance
Globus Project: basic services required by building and using a Grid
(authentication, security, resource allocation, remote data access, information services, etc.)
However
long-running applications ïƒ continuous computation
Better utilization of resource ïƒ scheduling and load balancing
Java process migration
architecture-independent bytecode makes migration easier
Motivation: Motivation Let the programmer write a grid application easily
no care about inter-site communication and intra-site communication (we must care about it if directly using globus communication libraries)
SPMD: one program can be executed in multiple places or sites
MPI paradigm
a group of distributed processes, they can do peer-to-peer or collective communication
Communication source or destination addresses are unrelated with the real physical network address (adaptable)
System Overview: System Overview
System overview: System overview
Layered design: Layered design Hardware Migration
Instructions
Java-MPI binding: Java-MPI binding Restorable communication layer
Daemon, a running MPICH-G2 process, providing MPI communication services
Communicate with JavaMPI process through IPC
Post-migration message
re-direction Restorable
Communication Process
space
Java Process Migration: Java Process Migration State capturing:
a probe attached in each JVM, saves the process context through JVMDI (JVM Debugger Interface)
All runtime data: PC register, stack frames, objects, method area (local variables), etc.
Event notification: method_entry, frame_pop, etc.
Use object serialization to package all reachable objects in heap
New JDK1.4.0 andamp; 1.4.1 released in Aug. 2002 support 'full-speed debugging' JVM probe JVMDI 1. Execution
state data
2. Event
notification
Java process migration: Java process migration State Restoration:
Exception handler inserted in bytecode (pre-processing before execution) to restore local variables and 'jump' to the original execution point
Re-allocate objects when re-starting JVM
Dynamic class loading
Information update: Information update Migration
Source
site Migration
Destination
site Other
sites Migration begin
Notify other sites
(including destination site)
The process arrives
the safe migration point
(consume all legacy messages)
Update local site of
the process’s new place
Begin process state capturation
Process Restart: Process Restart Original
Process New-started
Process creates a new user certificate proxy
(proxy_init_cred )
delegated to remote site
get the resource allocation
The new process can be started
(similar to normal globus job submit) JVM initialization
At the same time, the probe started
Process suspended in the beginning,
Probe read out context from dumpfile
Restoring the execution context
Process resumed and
continued from the last point
Experiment Results: Experiment Results Hardware
32-node Cluster 'ostrich'
configured as two grid points of 16 nodes
733MHz Pentium III processor
392MB of memory
connected by a 24-port Fast Ethernet switch
Software
Linux 2.2.14
Gloubs 2.0
Sun JDK 1.4.0_02 (supporting JVMDI with full-speed debugging mode)
MPICH 1.2.4 (MPICH-G2)
Experiment results: Experiment results Bandwidth comparison between inter-site and intra-site communication
with the installation of the MPI communication layer.
Experiment results: Experiment results Latency comparison for small messages between intra-site and inter-site communication
with the installation of the MPI communication layer.
Experiment results: Experiment results Time spent in capturing and restoring objects
Experiment results: Experiment results Time spent in capturing and restoring frames
Related Works: Related Works Java bindings for MPI: 'mpiJava', 'JavaMPI', 'MPIJ', etc.
Java process or thread migration:
Add additional backup codes in programs [Aglets[IBM96]]
Insert backup statements in the source or byte code, a backup object is used to store state [Wasp project [Funfrocken98]]
Extend the JVM, make state accessible from Java programs, support type recognition of Java stack [sara Bouchenak 2000]
Use JVMDI to capture state, insert bytecode instructions in program body to help restoring [Torsten2001]
JESSICA (supports thread migration in JVM)
Conclusion: Conclusion a new middleware for the Grid with Java-MPI communication and transparent process migration features.
write MPI-style programs in Java language
Java process migration mechanism supports the development of any dynamic load balancing policy or fault tolerance mechanism
Future Plan: Future Plan Develop some scientific and engineering applications on top of this middleware
Support of the transfer of other I/O (including file stage-in/out)
Load balancing algorithm for the grid environment (both CPU and network load)
The End: The End Thanks !