Method partitioning - runtime customization of pervasive programs without design-time application knowledge

Method Partitioning is a dynamic technique for customizing performance-critical message-based interactions between program components, at runtime and without the need for design-time application knowledge. The technique partitions program units that implement message handling, with low costs and high levels of flexibility. It consists of (a) static analysis of a message handling method to produce candidate partitioning plans for the method, (b) cost models for evaluating the cost/benefits of different partitioning plans, (c) a Remote Continuation mechanism that "connects" the distributed parts of a partitioned method at runtime, and (d) Runtime Profiling and Reconfiguration which monitors actual costs of candidate plans and dynamically selects "best" plans from candidates. Experiments with prototypical implementation of Method Partitioning in the JECho distributed event system demonstrate significant performance improvements for both communication-bound and compute-intensive applications, with both applications having dynamic factors that are not predictable at design time.

[1]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[2]  Vijay Karamcheti,et al.  Partitionable services: A framework for seamlessly adapting distributed applications to heterogeneous environments , 2002, Proceedings 11th IEEE International Symposium on High Performance Distributed Computing.

[3]  Anand R. Tripathi,et al.  Mobile agent programming in Ajanta , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[4]  Gregory R. Ganger,et al.  Dynamic Function Placement for Data-Intensive Cluster Computing , 2000, USENIX Annual Technical Conference, General Track.

[5]  Björn Þór Jónsson,et al.  Performance tradeoffs for client-server query processing , 1996, SIGMOD '96.

[6]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[7]  Gruia-Catalin Roman,et al.  A fine-grained model for code mobility , 1999, ESEC/FSE-7.

[8]  Liviu Iftode,et al.  Cooperative computing for distributed embedded systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[9]  Susan Horwitz,et al.  Fast and accurate flow-insensitive points-to analysis , 1997, POPL '97.

[10]  Dong Zhou,et al.  Eager Handlers: Communication Optimization in Java-based Distributed Applications with Fine-grained Code Migration , 2001 .

[11]  Karsten Schwan,et al.  Opportunistic Channels: Mobility-Aware Event Delivery , 2003, Middleware.

[12]  B. R. Badrinath,et al.  Transformer Tunnels: A Framework for Providing Route Specific Adaptations , 1998, USENIX Annual Technical Conference.

[13]  Karsten Schwan,et al.  JECho-interactive high performance computing with Java event channels , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[14]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[15]  Wolfram Burgard,et al.  Collaborative multi-robot exploration , 2000, Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065).

[16]  Kurt Rothermel,et al.  Estimating the Benefit of Location-Awareness for Mobile Data Management Mechanisms , 2002, Pervasive.

[17]  Mahadev Satyanarayanan,et al.  Agile application-aware adaptation for mobility , 1997, SOSP.

[18]  Marcos K. Aguilera,et al.  Matching events in a content-based subscription system , 1999, PODC '99.

[19]  Liviu Iftode,et al.  Cooperative Computin for Distributed Embedded Systems , 2002, ICDCS 2002.

[20]  Eric A. Brewer,et al.  Adapting to network and client variation using infrastructural proxies: lessons and perspectives , 1998, IEEE Wirel. Commun..

[21]  Dong Zhou,et al.  Eager handlers - communication optimization in java-based distributed applications with reconfigurable fine-grained code migration , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[22]  Laurie Hendren,et al.  Soot---a java optimization framework , 1999 .

[23]  Dharma P. Agrawal,et al.  A message segmentation technique to minimize task completion time , 1991, [1991] Proceedings. The Fifth International Parallel Processing Symposium.

[24]  Christian Poellabauer,et al.  Power-aware video decoding using real-time event handlers , 2002, WOWMOM '02.

[25]  Robbert van Renesse,et al.  Operating system support for mobile agents , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[26]  Amy L. Murphy,et al.  Reliable Communication for Highly Mobile Agents , 2004, Autonomous Agents and Multi-Agent Systems.

[27]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[28]  Calton Pu,et al.  Active Streams - an approach to adaptive distributed systems , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[29]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[30]  Karsten Schwan,et al.  FARA-a framework for adaptive resource allocation in complex real-time systems , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[31]  Karsten Schwan,et al.  A middleware toolkit for client-initiated service specialization , 2001, OPSR.

[32]  Yannis Smaragdakis,et al.  J-Orchestra: Automatic Java Application Partitioning , 2002, ECOOP.

[33]  Karsten Schwan,et al.  Adaptive Parallelization of Model-Based Head Tracking , 1999, International Conference on Parallel and Distributed Processing Techniques and Applications.