An Automated C++ Code and Data Partitioning Framework for Data Management of Data-Intensive Applications

An automated framework for code and data partitioning for the needs of data management is presented. The goal is to identify the main data types from the data management perspective and to separate them from the many smaller data in the code. First, static and dynamic analysis is performed on the initial C++ specification code. Based on the analysis results the data types of the application are characterized as crucial or non-crucial. Afterwards, the code is automatically rewritten in such a way that the crucial data types and the code portions that manipulate them are separated from the rest of the code. Thus, the complexity is reduced allowing the designer to easily focus on the important parts of the code to perform further refinements and optimizations. Experiments on well-known multimedia and telecom applications prove the correctness of the performed automated analysis and code rewriting as well as the applicability of the introduced framework in terms of execution time and memory requirements. Comparisons with Rational’s Quantify TM suite demonstrate the failure of Quantify to analyze correctly the initial code for the needs of data management.