Shortening Time-to-Discovery with Dynamic Software Updates for Parallel High Performance Applications

Dong Kwan Kim, Eli Tilevich, Calvin J. Ribbens · VTechWorks (Virginia Tech) · 2009

Abstract. Despite using multiple concurrent processors, a typical high performance parallel application is long-running, taking hours, even days to arrive at a solution. To modify a running high performance parallel application, the programmer has to stop the computation, change the code, redeploy, and enqueue the updated version to be scheduled to run, thus wasting not only the programmer’s time, but also expensive com-puting resources. To address these inefficiencies, this article describes how dynamic software updates can be used to modify a parallel applica-tion on the fly, thus saving the programmer’s time and using expensive computing resources more productively. The net effect of updating paral-lel applications dynamically reduces their time-to-discovery metrics, the total time it takes from posing a problem to arriving at a solution. To explore the benefits of dynamic updates for high performance applica-tions, this article takes a two-pronged approach. First, we describe our experience in building and evaluating a system for dynamically updating applications running on a parallel cluster. We then review a large body of literature describing the existing state of the art in dynamic software updates and point out how this research can be applied to high per-formance applications. Our experimental results indicate that dynamic software updates have the potential to become a powerful tool in reducing the time-to-discovery metrics for high performance parallel applications. Key words: dynamic software updates; high performance applications; binary rewriting; HotSwap 1

Read the paper · More papers on PaperTik