Partitioning of structured programs
First Claim
1. A method for partitioning a run-time executable, comprising the steps of:
- building a graph of an execution history of the run-time executable such that the graph includes a set of nodes each corresponding to a software component of the run-time executable and a set of weighted edges that indicate a level of interaction among the software components;
determining a set of intermediate partitionings of the nodes in response to the weighted edges;
selecting one of the intermediate partitionings that meets a partitioning goal and partitioning the software components accordingly.
1 Assignment
0 Petitions
Accused Products
Abstract
Partitioning of programs that exploits the granularity of structured programs and enables partitioning and re-partitioning of a program at run-time. A run-time executable is partitioned according to the present techniques by building a graph of an execution history of the run-time executable such that the graph includes a set of nodes each corresponding to a software component of the run-time executable and a set of weighted edges that indicate a level of interaction among the software components. A set of intermediate partitionings of the nodes is then determined in response to the weighted edges and one of the intermediate partitionings is selected that meets a partitioning goal.
31 Citations
25 Claims
-
1. A method for partitioning a run-time executable, comprising the steps of:
-
building a graph of an execution history of the run-time executable such that the graph includes a set of nodes each corresponding to a software component of the run-time executable and a set of weighted edges that indicate a level of interaction among the software components;
determining a set of intermediate partitionings of the nodes in response to the weighted edges;
selecting one of the intermediate partitionings that meets a partitioning goal and partitioning the software components accordingly. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A software execution system, comprising:
-
platform for executing a run-time executable;
execution history that provides a record of interactions among a set of components of the run-time executable;
partitioner that partitions the run-time executable into a pair of partitions in response to the execution history by building a graph that includes a set of nodes corresponding to the software components and a set of weighted edges that indicate a level of interaction among the software components and determining a set of intermediate partitionings of the nodes in response to the weighted edges and selecting one of the intermediate partitionings that meets a partitioning goal. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for run-time partitioning of a run-time executable, comprising the steps of:
-
executing the run-time executable on an initial computing device;
recording an execution history of interactions among a set of components of the run-time executable as the run-time executable executes;
monitoring one or more factors that influence partitioning and detecting a trigger point;
partitioning the run-time executable into a pair of partitions in response to the execution history by building graph that includes a set of nodes corresponding to the software component and a set of weighted edges that indicate a level of interaction among the software components and determining a set of intermediate partitionings of the nodes in response to the weighted edges and selecting one of the intermediate partitionings in response to the trigger point;
relocating one of the partitions to another computing device. - View Dependent Claims (19, 20, 21)
-
-
22. A computer-readable storage media that contains a program that when executed by a computer partitions a run-time executable by performing the steps of:
-
executing the run-time executable on an initial computing device;
recording an execution history of interactions among a set of components of the run-time executable as the run-time executable executes;
monitoring one or more factors that influence partitioning and detecting a trigger point;
partitioning the run-time executable into a pair of partitions in response to the execution history by building graph that includes a set of nodes corresponding to the software component and a set of weighted edges that indicate a level of interaction among the software components and determining a set of intermediate partitionings of the nodes in response to the weighted edges and selecting one of the intermediate partitionings in response to the trigger point;
relocating one of the partitions to another computing device. - View Dependent Claims (23, 24, 25)
-
Specification