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.