A task management system, method and computer program product for
determining optimal placement of task components on multiple machines for
task execution, particularly for placing program components on multiple
computers for distributed processing. First, a communication graph is
generated representative of the computer program with each program unit
(e.g., an object) represented as a node in the graph. Nodes are connected
to other nodes by edges representative of communication between connected
nodes. A weight is applied to each edge, the weight being a measure of the
level of communication between the connected edges. Terminal nodes
representative of the multiple computers are attached to the communication
graph. Then, dominant edges are identified within the communication graph.
For any non-terminal node, a connected edge is dominant if it is at least
as heavy (its weight is greater than or equal to) as the sum of the
remaining non-terminal edges and the heaviest of the remaining terminal
edges. The min cut for the communication graph need not include any
dominant edges and so, dominant edges are removed from consideration for
the final min cut solution. Finally, program components which may be a
single program unit or an aggregate of units are placed on computers
according to the communication graph min cut solution.
Un producto del sistema de gerencia de tarea, del método y del programa de computadora para determinar la colocación óptima de los componentes de la tarea en las máquinas múltiples para la ejecución de la tarea, particularmente para poner componentes del programa en las computadoras múltiples para el proceso distribuido. Primero, un gráfico de la comunicación es representante generado del programa de computadora con cada unidad del programa (e.g., un objeto) representada como nodo en el gráfico. Los nodos son conectados con otros nodos por el representante de los bordes de la comunicación entre los nodos conectados. Un peso se aplica a cada borde, el peso que es una medida del nivel de la comunicación entre los bordes conectados. El representante terminal de los nodos de las computadoras múltiples se une al gráfico de la comunicación. Entonces, los bordes dominantes se identifican dentro del gráfico de la comunicación. Para cualquier nodo no terminal, un borde conectado es dominante si es por lo menos tan pesado (su peso es mayor que o igual) como la suma de los bordes no terminales restantes y el más pesado de los bordes terminales restantes. El corte del minuto para el gráfico de la comunicación no necesita incluir ninguna bordes dominante y por eso, los bordes dominantes se quitan de la consideración para la solución final del corte del minuto. Finalmente, los componentes del programa que pueden ser una sola unidad del programa o un agregado de unidades se ponen en las computadoras según el gráfico de la comunicación que el minuto cortó la solución.