Dynamic Software Updates for Accelerating Scientific Discovery

Distributed parallel applications often run for hours or even days before arriving to a result. In the case of such long-running programs, the initial requirements could change after the program has started executing. To shorten the time it takes to arrive to a result when running a distributed computationally-intensive application, this paper proposes leveraging the power and flexibility of dynamic software updates. In particular, to enable flexible dynamic software updates, we introduce a novel binary rewriting approach that is more efficient than the existing techniques. While ensuring greater flexibility in enhancing a running program for new requirements, our binary rewriting technique incurs only negligible performance overhead. We validate our approach via a case study of dynamically changing a parallel scientific simulation.

[1]  Thomas R. Gross,et al.  Dynamic Updating of Software Systems Based on Aspects , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[2]  Elisa Bertino,et al.  ECOOP 2000 — Object-Oriented Programming , 2000, Lecture Notes in Computer Science.

[3]  Gavin M. Bierman,et al.  UpgradeJ: Incremental Typechecking for Class Upgrades , 2008, ECOOP.

[4]  Uwe Assmann,et al.  Runtime Evolution as an Aspect , 2004 .

[5]  Paola Inverardi,et al.  Software Engineering Education in the Modern Age , 2008 .

[6]  Seyed Masoud Sadjadi,et al.  An aspect-oriented approach to dynamic adaptation , 2002, WOSS '02.

[7]  Jan Vitek,et al.  ECOOP 2008 - Object-Oriented Programming, 22nd European Conference, Paphos, Cyprus, July 7-11, 2008, Proceedings , 2008, ECOOP.

[8]  Yueh-Feng Lee,et al.  Java-based component framework for dynamic reconfiguration , 2005, IEE Proc. Softw..

[9]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[10]  Todd D. Millstein,et al.  Statically scoped object adaptation with expanders , 2006, OOPSLA '06.

[11]  Jason Maassen,et al.  Ibis: a flexible and efficient Java‐based Grid programming environment , 2005, Concurr. Pract. Exp..

[12]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[13]  J. Ortega Introduction to Parallel and Vector Solution of Linear Systems , 1988, Frontiers of Computer Science.

[14]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[15]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[16]  Alessandro Orso,et al.  A technique for dynamic updating of Java software , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[17]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[18]  Robert Pawel Bialek,et al.  Dynamic Updates of Existing Java Applications Ph.D. Dissertation , 2006 .

[19]  Yannis Smaragdakis,et al.  Binary refactoring: improving code behind the scenes , 2005, ICSE.

[20]  Dong Kwan Kim,et al.  Overcoming JVM HotSwap constraints via binary rewriting , 2008, HotSWUp '08.

[21]  Yuanyuan Zhou,et al.  Rx: treating bugs as allergies---a safe method to survive software failures , 2005, SOSP '05.

[22]  Jason Maassen,et al.  Ibis: a flexible and efficient Java-based Grid programming environment: Research Articles , 2005 .

[23]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[24]  C. H. Flood,et al.  The Fortress Language Specification , 2007 .

[25]  D. C. Rapaport,et al.  The Art of Molecular Dynamics Simulation , 1997 .

[26]  Berend Smit,et al.  Molecular Dynamics Simulations , 2002 .