System and method for application migration in a grid computing environment
First Claim
Patent Images
1. A system for assessing performance of a software application migrated to a grid infrastructure, the system comprising:
- a central processing unit (CPU) and a memory;
a grid code analyzer for generating a directed acyclic graph (DAG) corresponding to the software application by performing static and dynamic analysis;
a grid task generator for reducing the DAG generated by the grid code analyzer; and
a grid simulator for simulating performance of the software application on one or more predetermined grid infrastructures, the grid simulator accepting the reduced DAG as input and producing performance data as output;
wherein the grid code analyzer comprises;
a static analyzer for statically analyzing the software application, and comprising;
a parser for parsing the software application by analyzing dependencies between two or more sections of the software application and partitioning the software application into virtual blocks for removing dependency loops in the DAG corresponding to the software application, each node of the DAG representing at least one virtual block; and
code instrumentor for inserting instrument strings in the software application for capturing run time and dependency information; and
a dynamic analyzer for dynamically analyzing the software application, and comprising;
a CPU profiler for determining CPU time required for processing each virtual block for obtaining node weights corresponding to each node of the DAG, anda memory profiler for determining an amount of data exchanged between a pair of virtual blocks for obtaining edge weight of an edge linking the two nodes of the DAG corresponding to the pair of virtual blocks.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for assessing performance of a software application migrated to a grid infrastructure is provided. The system comprises a grid code analyzer for generating a directed acyclic graph (DAG) corresponding to the software application by performing static and dynamic analysis; a grid task generator for reducing the DAG generated by the grid code analyzer; and a grid simulator for simulating performance of the software application on one or more predetermined grid infrastructures. The grid simulator accepts the reduced DAG as input and produces performance data as output.
-
Citations
28 Claims
-
1. A system for assessing performance of a software application migrated to a grid infrastructure, the system comprising:
-
a central processing unit (CPU) and a memory; a grid code analyzer for generating a directed acyclic graph (DAG) corresponding to the software application by performing static and dynamic analysis; a grid task generator for reducing the DAG generated by the grid code analyzer; and a grid simulator for simulating performance of the software application on one or more predetermined grid infrastructures, the grid simulator accepting the reduced DAG as input and producing performance data as output; wherein the grid code analyzer comprises; a static analyzer for statically analyzing the software application, and comprising; a parser for parsing the software application by analyzing dependencies between two or more sections of the software application and partitioning the software application into virtual blocks for removing dependency loops in the DAG corresponding to the software application, each node of the DAG representing at least one virtual block; and code instrumentor for inserting instrument strings in the software application for capturing run time and dependency information; and a dynamic analyzer for dynamically analyzing the software application, and comprising; a CPU profiler for determining CPU time required for processing each virtual block for obtaining node weights corresponding to each node of the DAG, and a memory profiler for determining an amount of data exchanged between a pair of virtual blocks for obtaining edge weight of an edge linking the two nodes of the DAG corresponding to the pair of virtual blocks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for assessing performance of a software application migrated to a grid infrastructure, the method comprising the steps of:
-
generating a directed acyclic graph (DAG) corresponding to the software application by performing static and dynamic analysis; reducing the generated DAG; simulating performance of the software application by inputting the reduced DAG to one or more predetermined grid infrastructures and obtaining performance data as output; and analyzing the performance data for assessing the performance of the software application on the one or more predetermined grid infrastructures; wherein the step of generating a DAG comprises; statically analyzing the software application by; parsing the software application by determining dependencies between two or more sections of the software application and partitioning the software application into virtual blocks for removing dependency loops in the DAG, each node of the DAG representing at least one virtual block; and inserting instrument strings in the software application for capturing run time information by tracking the execution path and the data changes occurring during execution of the software application; dynamically analyzing the software application by; determining CPU time required for processing each virtual block for obtaining node weights corresponding to each node of the DAG, and determining amount of data exchanged between a pair of virtual blocks for obtaining edge weight of an edge linking the two nodes of the DAG corresponding to the pair of virtual blocks. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer program product comprising a non-transitory computer usable medium having a computer readable program code embodied therein for assessing performance of a software application migrated to a grid infrastructure, the computer program product comprising:
-
program instruction means for generating a directed acyclic graph (DAG) corresponding to the software application by performing static and dynamic analysis; program instruction means for reducing the generated DAG; program instruction means for simulating performance of the software application by inputting the reduced DAG to one or more predetermined grid infrastructures and obtaining performance data as output; and program instruction means for analyzing the performance data for assessing the performance of the software application on the one or more predetermined grid infrastructures; wherein the program instruction means for generating a DAG comprise; program instruction means for statically analyzing the software application by; parsing the software application by determining dependencies between two or more sections of the software application and partitioning the software application into virtual blocks for removing dependency loops in the DAG, each node of the DAG representing at least one virtual block; and inserting instrument strings in the software application for capturing run time information by tracking the execution path and the data changes occurring during execution of the software application; program instruction means for dynamically analyzing the software application by; determining CPU time required for processing each virtual block for obtaining node weights corresponding to each node of the DAG, and determining amount of data exchanged between a pair of virtual blocks for obtaining edge weight of an edge linking the two nodes of the DAG corresponding to the pair of virtual blocks. - View Dependent Claims (24, 25, 26, 27, 28)
-
Specification