Towards Zero-Effort Legacy Application Modernisation

Nowadays the computing power in one’s pocket exceeds the computing power of supercomputers two decades ago. But in order to make use of this tremendous power, existing applications have to be rewritten, which is a very costly, if not impossible, task; it will require rewriting the original programs source codes so that they make use of the underlying many processors available in today’s computers. Unfortunately, even the original source code for this program might not be even available.

A joint research team from EJUST and INRIA, France, has developed necessary translation technology that does not require any programming effort to convert programs to run faster on modern computing platforms. The team has integrated a low-level application modification tool, Padrone, developed by INRIA, into a novel acceleration platform that enables modernizing legacy applications.

“Speeding up applications is tricky,” said Prof El-Mahdy, EJUST PI. “You need to make sure that the modified program is 100% correct, be ready to fix any wrong execution, while relying on very limited program information available at runtime; even more, we want to do that quickly enough!”

The team has developed a low-cost, software only technology that allows for ‘speculative’ processing, automatic program changing, as well as allowing for de-optimizing in cases where improvements actually degrade performance! All these technologies do not require waiting for the program to finish executing certain parts; it can happen virtually at any moment of execution. The technology leverages the state-of-the art in this area by providing for simple mechanisms, relying on operating system mechanisms for providing for speculation, engineering efficient code changes, and providing a de-modernization process where the generated codes running on multiple processors are merged into one code, without wasting what has already executed. Technical details are provided in these initial publications: paper 1, paper 2, paper 3.

[1] M. Yusuf, A. El-Mahdy, and E. Rohou, “Runtime, Speculative On-Stack Parallelization of For-Loops in Binary Programs,” IEEE Letters of the Computer Society, vol. 1, no. 1, pp. 13–16, Nov. 2018.
[2] M. Yusuf, A. El-Mahdy, and E. Rohou, “Runtime On-Stack Parallelization of Dependence-Free For-Loops in Binary Programs,” IEEE Letters of the Computer Society, vol. PP, no. 99, pp. 1–1, Feb. 2019.
[3] M. Yusuf, A. El-Mahdy, and E. Rohou, “Towards automatic binary runtime loop de-parallelization using on-stack replacement,” Information Processing Letters, vol. 145, pp. 53–57, May 2019.