Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
First Claim
1. A method for providing parallel execution of computing tasks in a heterogeneous computing environment having a plurality of computing hosts, comprising:
- partitioning a computing task into small tasks;
assigning each of the small tasks to mobile agents stored at a central server;
monitoring the computing hosts for detecting an indication that migration needs to be initiated;
determining available computing hosts in the heterogeneous computing environment;
automatically transferring said mobile agents to determined available computing hosts responsive to a detected indication that migration needs to be initiated;
executing said mobile agents at the available computing hosts using execution code from the central server in response to a request from the available computing hosts; and
maintaining, at a second computing host at which none of said mobile agents are executing, stack trace and state information about each of said mobile agents to allow one or more of said mobile agents to be reconstructed at an alternate computing host using said stack trace and state information.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus is provided for breaking down computing tasks within a larger application and distributing such tasks across a network of heterogeneous computers for simultaneous execution. The heterogeneous computers may be connected across a wide or local area network. The invention supports mobile agents that are self-migrating and can transport state information and stack trace information as they move from one host to another, continuing execution where the mobile agents may have left off. The invention includes a server component for providing an execution environment for the agents, in addition to sub-components which handle real-time collaboration between the mobile agents as well as facilities monitoring during execution. Additional components provide realistic thread migration for the mobile agents. Real-time stack trace information is stored as the computing tasks are executed, and if over-utilization of the computing host occurs, execution of the computing task can be halted and the computing task can be transferred to another computing hosts where execution can be seamlessly resumed using the stored, real-time state information and stack trace information.
-
Citations
38 Claims
-
1. A method for providing parallel execution of computing tasks in a heterogeneous computing environment having a plurality of computing hosts, comprising:
-
partitioning a computing task into small tasks; assigning each of the small tasks to mobile agents stored at a central server; monitoring the computing hosts for detecting an indication that migration needs to be initiated; determining available computing hosts in the heterogeneous computing environment; automatically transferring said mobile agents to determined available computing hosts responsive to a detected indication that migration needs to be initiated; executing said mobile agents at the available computing hosts using execution code from the central server in response to a request from the available computing hosts; and maintaining, at a second computing host at which none of said mobile agents are executing, stack trace and state information about each of said mobile agents to allow one or more of said mobile agents to be reconstructed at an alternate computing host using said stack trace and state information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for providing parallel computing using mobile agents in a heterogeneous computing environment having a plurality of computing hosts, comprising:
-
assigning a computing task to one or more mobile agents stored at a central server; monitoring the computing hosts for detecting an indication that migration needs to be initiated; transferring the one or more mobile agents to one or more available computing hosts responsive to a detected indication that migration needs to be initiated; transferring execution code from the central server to the one or more available computing hosts in response to a request from the available computing hosts; executing the one or more mobile agents at the one or more available computing hosts using the execution code; and storing stack trace and real-time state information about the one or more mobile agents at a first alternate computing host on which none of the one or more mobile agents are executing to allow the one or more mobile agents to be reconstructed at a second alternate computing host. - View Dependent Claims (17, 18, 19)
-
-
20. A method for migrating a software application running in a virtual machine from a primary host to a secondary host comprising;
-
constructing an application using a plurality of mobile agents stored in a central server; transferring the plurality of mobile agents to a first computing host; executing the plurality of mobile agents at said first computing host; maintaining stack trace and state information about each of the plurality of mobile agents at a second computing host on which none of the plurality of mobile agents are executing; detecting an indication to migrate the application, wherein said indication comprises one of the group consisting of;
network latency, hostile attack, hacking,network failure and computer hardware failure; in response to a detected indication, automatically migrating the application in its entirety from said first computing host to a third computing host without modifying the virtual machine at said third computing host by reconstructing each of the plurality of mobile agents at said third computing host using said stack trace and state information; and executing the plurality of mobile agents at the third computing host using execution code provided by the central server in response to a request from the third computing host. - View Dependent Claims (21, 22, 23)
-
-
24. A computer system for providing parallel execution of computing tasks in a heterogeneous computing environment comprising at least two computing hosts, said system comprising;
-
a dispatcher for partitioning the computing task into a plurality of small tasks and dispatching the small tasks; mobile agents for receiving small tasks from the dispatcher; means for monitoring execution of the mobile agents at the computing hosts; means for detecting over-utilization of one of the computing hosts and for issuing a warning when one of the computing hosts is over-utilized, computing resources on a network including virtual machines for executing mobile agent software code; means for transferring the mobile agents to the computing resources; and means for automatically transferring execution code as well as stack trace and state information about each of the mobile agents responsive to detected over-utilization of one of the computing hosts from a central server to the computing resources, the computing resources receiving and executing one of the small tasks assigned to a mobile agent in the virtual machines using the execution code from the central server in response to a request from the available computing resources and the means for transferring execution code maintaining stack trace and state information about each of the mobile agents at a first computing host where none of the mobile agents are executing to allow each of the mobile agents to be reconstructed at a second computing host. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A method for providing realistic thread migration which comprises:
-
instantiating a mobile agent thread at a first computing host; processing said mobile agent thread at said first computing host; storing stack trace and state information about said mobile agent thread at a second computing host at which said mobile agent thread is not executing as said mobile agent thread executes at said first computing host; detecting an indication to migrate said mobile agent thread and in response to said indication; stopping execution of said mobile agent thread; automatically transferring the execution code for said mobile agent thread from a central server to a third computing host; and automatically transferring said stack trace and state information about said mobile agent thread to said third computing host. - View Dependent Claims (36, 37, 38)
-
Specification