Abstract

Migration of code from sequential environments to parallel processing environments is often done in an ad hoc manner. We present a reverse engineering method to facilitate systematic migration of code from sequential to parallel processing environments. The approach includes a three-phase method and the design and development of a reverse engineering toolkit (RETK), which serves to establish a working model for the method. The method consists of three phases: analysis, synthesis and transformation. The analysis phase uses a new design recovery technique. The synthesis phase is comprised of processes that compute the data and control dependences by using the design abstractions produced by the analysis phase to construct the program dependence graph. The transformation phase consists of processes that require knowledge-based analysis of the program and dependence information produced by the analysis and synthesis phases, respectively. Design recommendations for parallel environments are the key output of the transformation phase. The main components of RETK are an information extractor, a dependence analyser and a design assistant that implement the processes of the analysis, synthesis and transformation phases, respectively. The design and implementation of the design assistant using C Language Interface Production System (CLIPS) are described. In addition, experimental results of applying the method to test programs by RETK are presented. The results include analysis of a Numerical Aerodynamic Simulation (NAS) benchmark program. By combining research in reverse engineering, dependence analysis and knowledge-based analysis, the method provides a systematic approach for code migration from sequential to parallel environments.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call