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. Independent nets may be separated out of the communication graph. A
cut is made at each terminal node and the weights of the cut edges are
summed. The second heaviest terminal is identified from the cut and edges
connected to at least one internal node and not connected to the second
heaviest edge are compared against the weight of the second heaviest edge.
Any edge found in the comparison to be at least as heavy as the second
heaviest terminal node need not be included in the min cut for the
communication graph and so, is 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 prodotto del sistema di amministrazione di operazione, di metodo e di programma destinato all'elaboratore per la determinazione della disposizione ottimale dei componenti di operazione sulle macchine multiple per l'esecuzione di operazione, specialmente per la disposizione dei componenti di programma sui calcolatori multipli per elaborazione distribuita. In primo luogo, un grafico di comunicazione è rappresentante generato del programma destinato all'elaboratore con ogni unità di programma (per esempio, un oggetto) rappresentata come nodo nel grafico. I nodi sono collegati ad altri nodi dal rappresentante dei bordi della comunicazione fra i nodi collegati. Un peso è applicato ad ogni bordo, il peso che è una misura del livello della comunicazione fra i bordi collegati. Il rappresentante terminale di nodi dei calcolatori multipli è fissato al grafico di comunicazione. Le reti indipendenti possono essere separate dal grafico di comunicazione. Un taglio è fatto ad ogni nodo terminale ed i pesi dei bordi del taglio sono sommati. Il secondo terminale più pesante è identificato dal taglio ed i bordi collegati almeno ad un nodo interno e non collegati al secondo bordo più pesante sono confrontati contro il peso del secondo bordo più pesante. Tutto il bordo ha trovato nel confronto per essere almeno pesante come il secondo nodo terminale più pesante non deve essere incluso nei verbali tagliati per il grafico di comunicazione e così, è rimosso da considerazione per la soluzione finale del taglio di minuto. Per concludere, i componenti di programma che possono essere una singola unità di programma o un complesso delle unità sono disposti sui calcolatori secondo il grafico che di comunicazione il minuto ha tagliato la soluzione.