IP Library Granted Patent US 9,632,836
Granted Patent B2
US 9,632,836 · App. 14/741,751 · Granted Apr 25, 2017

Scheduling applications in a clustered computer system

Inventors: Eric Michel (Saint Aunes, FR); Nicolas Tallet (Montpellier, FR); Francois Thomas (Alencon, FR); Pascal Vezolle (Villeneuve les Maguelone, FR)
Assignee: International Business Machines Corporation
G06F9/505
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,632,836
App. No.
14/741,751
Granted
Apr 25, 2017
Kind
B2
Abstract

Disclosed is a method for scheduling applications for a clustered computer system having a plurality of computers and at least one resource, the clustered computer system executing one or more applications. A method includes: monitoring hardware counters in at least one of the resources and the plurality of computers of the clustered computer system for each of the applications; responsive to said monitoring, determining the utilization of at least one of the resources and the plurality of computers of the clustered computer system by each of the applications; for each of the applications, storing said utilization of at least one of the resource and plurality of computers of the clustered computer system; and upon receiving a request to schedule an application on one of said computers, scheduling a computer to execute the application based on stored utilization for the application and stored utilizations of other applications executing on the computers.

Claims (34)

1. A method for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, the method comprising the steps of:

monitoring one or more hardware counters in at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications;

responsive to said step of monitoring, determining the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications;

for each of the one or more applications, storing said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system; and

upon receiving a request to schedule an application on one of said plurality of computers, scheduling a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application;

wherein applications are deemed compatible if each application utilizes predominately different resources.

2. The method as claimed in claim 1 , wherein responsive to the application for which a scheduling request is received being an application being executed on the clustered computer system for the first time, the method further comprises the step of estimating the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system.

3. The method as claimed in claim 1 , wherein utilization data from a plurality of resources and a plurality of computers of the clustered computer system is consolidated in a plurality of master agents before communication to a collector agent which carries out said step of storing said utilization data.

4. The method as claimed in claim 1 , wherein said step of scheduling a computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers schedule a computer currently executing an application having complementary utilization of resources.

5. The method as claimed in claim 1 , further comprising the step of estimating the effect on utilization rate and throughput of changes to the allocation of said at least one resource and said plurality of computers.

6. The method as claimed in claim 1 , wherein said step of scheduling a computer to execute the application comprises correlating the stored utilization data and hardware utilization time series, available resources, the applications running on each computer in the cluster of computers with their current cluster resource consumption rates and history, the submission policies and user requirements.

7. A system for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, at least one of the at least one resource and the plurality of computers having one or more hardware counters for monitoring hardware utilization, the system comprising:

a memory and a processor;

an agent, executable by the processor, for monitoring said one or more hardware counters for each of the one or more applications;

an application monitoring subsystem, executable by the processor, for determining the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications; and

an engine, executable by the processor, and repository for storing said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications and for, upon receiving a request to schedule an application on one of said plurality of computers, scheduling a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application;

wherein applications are deemed compatible if each application utilizes predominately different resources.

8. The system as claimed in claim 7 , wherein the engine, responsive to the application for which a scheduling request is received being an application being executed on the clustered computer system for the first time, for estimating the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system.

9. The system as claimed in claim 7 , further comprising a plurality of master agents for consolidating utilization data from a plurality of resources and a plurality of computers of the clustered computer system before communication to the application monitoring system.

10. The system as claimed in claim 7 , wherein said engine schedules the application to execute on a computer currently executing an application having complementary utilization of resources, based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers.

11. The system as claimed in claim 7 , further wherein the engine estimates the effect on utilization rate and throughput of changes to the allocation of said at least one resource and said plurality of computers.

12. The system as claimed in claim 7 , wherein said engine for scheduling a computer to execute the application correlates the stored utilization data and hardware utilization time series, available resources, the applications running on each computer in the cluster of computers with their current cluster resource consumption rates and history, the submission policies and user requirements.

13. A computer program product for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, the computer program product comprising:

a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code adapted to:

monitor one or more hardware counters in at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications;

determine the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications;

for each of the one or more applications, store said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system; and

in response to receiving a request to schedule an application on one of said plurality of computers, schedule a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application;

wherein applications are deemed compatible if each application utilizes predominately different resources.

14. The computer program product as claimed in claim 13 , wherein responsive to the application for which a scheduling request is received being an application being executed on the clustered computer system for a first time, estimate the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system.

15. The computer program product as claimed in claim 13 , wherein utilization data from a plurality of resources and a plurality of computers of the clustered computer system is consolidated in a plurality of master agents before communication to a collector agent which carries out said storing said utilization data.

16. The computer program product as claimed in claim 13 , wherein scheduling a computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers schedule a computer currently executing an application having complementary utilization of resources.

17. The computer program product as claimed in claim 13 , further comprising estimating the effect on utilization rate and throughput of changes to the allocation of said at least one resource and said plurality of computers.

18. The computer program product as claimed in claim 13 , wherein scheduling a computer to execute the application comprises correlating the stored utilization data and hardware utilization time series, available resources, the applications running on each computer in the cluster of computers with their current cluster resource consumption rates and history, the submission policies and user requirements.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2015
From: MICHEL, ERIC; TALLET, NICOLAS; THOMAS, FRANCOIS; VEZOLLE, PASCAL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035854/0012 →
Priority Claims (1)
GB 1411757.6 · Jul 2, 2014 · national
Continuity (1)
Related Publication 20160004567A1 · Jan 7, 2016