Method and apparatus for using virtual machine technology for managing parallel communicating applications
AssigneeInternational Business Machines Corporation
InventorsMarcel-Catalin Rosu, Dehanjan Saba, Sambit Sahu, Anees A. Shaikh
Life of this patent
Estimating the term…
Abstract
A method (and system) for managing a distributed-memory parallel application running on multiple servers, includes dynamically moving a plurality of executable program components, where each of the plurality of executable program components are running on one of a plurality of virtual machines, using migration of the virtual machines between physical servers. The load balancing is operated based on a workload of each of the virtual machines and servers, where a virtual machine, or a plurality of virtual machines, are transferred to balance the workload between each of the servers.
Claims34
A method of managing a distributed-memory parallel application running on multiple servers, the method comprising:
- partitioning the distributed-memory parallel application into a plurality of executable program components, the plurality of executable program components being configured to communicate with one another;
- packaging the executable program components separately into a plurality of virtual machines;
- assigning the plurality of virtual machines to one or more physical servers;
- and
- dynamically migrating the virtual machines between the one or more physical servers,
- wherein said partitioning comprises calculating said partitions according to semantics, and
- wherein a computational power applied to the plurality of executable program components is updated based on how much computational power each one of the plurality of executable program components requires.
A computer system including at least one processor for managing a distributed memory parallel application, comprising:
- multiple servers running the distributed-memory parallel application;
- means for partitioning the distributed-memory parallel application into a plurality of executable program components, the plurality of executable program components being configured to communicate with one another;
- means for packaging the executable program components separately into a plurality of virtual machines;
- means for assigning the plurality of virtual machines to one or more physical servers;
- and
- means for dynamically migrating the virtual machines between the one or more physical servers,
- wherein said means for partitioning comprises means for calculating said partitions according to semantics, and
- wherein a computational power applied to the plurality of executable program components is updated based on how much computational power each one of the plurality of executable program components requires.
A computer system including at least one processor for managing a distributed memory parallel application, comprising:
- an application design unit that designs the distributed-memory parallel application;
- an application partition unit that partitions said application into a plurality of executable program components;
- a packaging unit that packages said executable program components into one of said plurality of virtual machines;
- an assignment unit that assigns said plurality of virtual machines to one of a plurality of physical servers;
- a virtual machine monitoring unit that monitors an operation of said plurality of virtual machines;
- and
- a moving unit that shifts a first virtual machine of said plurality of virtual machines from a first physical server to a second physical server,
- wherein said application partition unit is configured to calculate said partitions according to semantics, and
- wherein a computational power applied to the plurality of executable program components is updated based on how much computational power each one of the plurality of executable program components requires.
A method of managing a distributed-memory parallel application running on multiple servers, the method comprising:
- partitioning the distributed-memory parallel application into a plurality of executable program components, the plurality of executable program components being configured to communicate with one another;
- packaging the executable program components separately into a plurality of virtual machines;
- assigning the plurality of virtual machines to one or more physical servers;
- and
- dynamically migrating the virtual machines between the one or more physical servers,
- wherein a computational power applied to the plurality of executable program components is updated based on how much computational power each one of the plurality of executable program components requires.
Dependencies are inferred from the claim text.