IP Library Granted Patent US 9,021,477
Granted Patent B2
US 9,021,477 · App. 13/596,345 · Granted Apr 28, 2015

Method for improving the performance of high performance computing applications on Cloud using integrated load balancing

Inventors: Anamitra R. Choudhury (Vasant Kunj, IN); Thomas George (Gurgaon, IN); Monu Kedia (Vasant Kunj, IN); Yogish Sabharwal (Gurgaon, IN); Vaibhav Saxena (Vasant Kunj, IN)
Assignee: International Business Machines Corporation
G06F9/5027G06F9/45558G06F2009/4557G06F9/4843G06F9/5033G06F9/5072
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,021,477
App. No.
13/596,345
Granted
Apr 28, 2015
Kind
B2
Abstract

A computer-implemented method of load balancing including calculating an expected cost set associated with an application-specific task of an application executing on a processing resource in a cloud computing environment, and communicating the expected cost set from the processing resource to a cloud management system. Resource mapping of applications currently executing in the cloud computing environment are retrieved, the application-specific task is assigned to a specific computational resource in the cloud computing environment based on the expected cost set and the resource mapping of applications currently executing in the cloud computing environment. A task to VM (virtual machine) assignment is determined based on the assignment of the application-specific task to the specific computational resource. The task to VM assignment is transferred from the cloud management system to the application executing on the processing resource in the cloud computing environment.

Claims (54)

1. A computer-implemented method of load balancing processing resources, said method comprising:

calculating, by a first computing device located in an application executing environment, an expected cost set associated with an application-specific task of an application executing on a processing resource in a cloud computing environment, said first computing device being outside said cloud computing environment, said expected cost set comprising an expected computational cost and an expected communication cost;

communicating, by said first computing device, said expected cost set from said first computing device to a second computing device located in a cloud management system;

retrieving, by said second computing device, resource mapping of applications currently executing in said cloud computing environment;

assigning, by said second computing device, said application-specific task to a specific computational resource in said cloud computing environment based on said expected cost set and said resource mapping of applications currently executing in said cloud computing environment;

determining, by said second computing device, a task to VM (virtual machine) assignment based on said assigning said application-specific task to said specific computational resource in said cloud computing environment;

transferring, by said second computing device, information concerning said task to VM assignment from said cloud management system to said application executing on said processing resource in said cloud computing environment;

migrating, by said second computing device, VMs of existing applications onto different processing resources in said cloud computing environment based on said assigning said application-specific task to said specific computational resource in said cloud computing environment; and

redistributing, by said first computing device, data and said application-specific task of said application based on said transferring said information concerning said task to VM assignment from said cloud management system to said application executing on said processing resource of said cloud computing environment.

2. The computer-implemented method of load balancing according to claim 1 , said expected cost set associated with said application-specific task being represented in a directed task graph form.

3. The computer-implemented method of load balancing according to claim 2 , said directed task graph form comprising:

vertices that correspond to a task;

edges that correspond to a task dependency;

vertex weights that correspond to said expected computational cost; and

edge weights that correspond to said expected communication cost.

4. The computer-implemented method of load balancing according to claim 2 , said directed task graph form being generated by an application-specific coarsening of an original problem domain.

5. The computer-implemented method of load balancing according to claim 1 , said method of load balancing being performed a plurality of times in an iterative fashion.

6. A computer-implemented method of load balancing processing resources, said method comprising:

calculating, by a first computing device located in an application executing environment, an expected computational cost and an expected communication cost associated with an application-specific task of an application executing on a processing resource in a cloud computing environment, said first computing device being outside said cloud computing environment;

communicating, by said first computing device, said expected computational cost and said expected communication cost from said processing resource to a second computing device located in a cloud management system;

retrieving, by said second computing device, resource mapping of applications currently executing in said cloud computing environment;

assigning, by said second computing device, said application-specific task to a specific computational resource in said cloud computing environment based on said expected computational cost, said expected communication cost, and said resource mapping of said applications currently executing in said cloud computing environment;

determining, by said second computing device, a task to VM (virtual machine) assignment based on said assigning of said application-specific task to said specific computational resource;

transferring, by said second computing device, said task to VM assignment from said cloud management system to said application executing on said processing resource in said cloud computing environment;

migrating, by said second computing device, VMs of existing applications onto different processing resources in said cloud computing environment based on said assigning said application-specific task to said specific computational resource; and

redistributing, by said first computing device, data and said application-specific task of said application based on said transferring said task to VM assignment from said cloud management system to said application executing on said processing resource of said cloud computing environment.

7. The computer-implemented method of load balancing according to claim 6 , said expected computational cost and said expected communication cost associated with said application-specific task being represented in a directed task graph form.

8. The computer-implemented method of load balancing according to claim 7 , said directed task graph form comprising:

vertices that correspond to a task;

edges that correspond to a task dependency;

vertex weights that correspond to said expected computational cost; and

edge weights that correspond to said expected communication cost.

9. The computer-implemented method of load balancing according to claim 7 , said directed task graph form being generated by an application-specific coarsening of an original problem domain.

10. The computer-implemented method of load balancing according to claim 6 , said method of load balancing being performed a plurality of times in an iterative fashion.

11. The computer-implemented method of load balancing according to claim 6 , said assigning said application-specific task to said specific computational resource in said cloud computing environment being further based on modeling resource capacity from monitored historical values.

12. The computer-implemented method of load balancing according to claim 6 , said assigning said application-specific task to said specific computational resource in said cloud computing environment being further based on task information from multiple applications.

13. A computer-implemented method of load balancing processing resources, said method comprising:

calculating, by a first computing device located in an application executing environment, an expected computational cost and an expected communication cost associated with an application-specific task of an application executing on a processing resource in a cloud computing environment, said first computing device being outside said cloud computing environment;

communicating, by said first computing device, said expected computational cost and said expected communication cost from said processing resource to a second computing device located in a cloud management system;

retrieving, by said second computing device, resource mapping of applications currently executing in said cloud computing environment;

modeling resource capacity from monitored historical values and task information from multiple applications;

assigning, by said second computing device, said application-specific task to a specific computational resource in said cloud computing environment based on said expected computational cost, said expected communication cost, and resource availability for applications currently executing in said cloud computing environment and based on said modeling said resource capacity from monitored historical values and task information from multiple applications;

determining, by said second computing device, a task to VM (virtual machine) assignment based on said assigning of said application-specific task to said specific computational resource;

transferring, by said second computing device, said task to VM assignment from said cloud management system to said application executing on said processing resource in said cloud computing environment;

migrating, by said second computing device, VMs of existing applications onto different processing resources in said cloud computing environment based on said assigning said application-specific task to said specific computational resource; and

redistributing, by said first computing device, data and said application-specific task of said application based on said transferring said task to VM assignment from said cloud management system to said application executing on said processing resource of said cloud computing environment.

14. The computer-implemented method of load balancing according to claim 13 , said expected computational cost and said expected communication cost associated with said application-specific task being represented in a directed task graph form.

15. The computer-implemented method of load balancing according to claim 14 , said directed task graph form comprising:

vertices that correspond to a task;

edges that correspond to a task dependency;

vertex weights that correspond to said expected computational cost; and

edge weights that correspond to said expected communication cost.

16. The computer-implemented method of load balancing according to claim 14 , said directed task graph form being generated by an application-specific coarsening of an original problem domain.

17. The computer-implemented method of load balancing according to claim 13 , said method of load balancing being performed a plurality of times in an iterative fashion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: CHOUDHURY, ANAMITRA R.; GEORGE, THOMAS; KEDIA, MONU; SABHARWAL, YOGISH; SAXENA, VAIBHAV
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 034729/0951 →
Continuity (2)
Continuation 13192536 · Jul 28, 2011
Related Publication 20130031550A1 · Jan 31, 2013