Job Scheduling via Complementary Resource Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current parallel computing systems experience inefficiencies due to uneven resource utilization across servers, leading to suboptimal workload throughput and increased operational costs.

Innovation Solution

A scheduling mechanism that identifies complementary jobs, which overload one resource and underutilize another, and allocates resources accordingly, ensuring efficient execution by matching tasks that complement each other's resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If jobs are executed in parallel on servers, then workload throughput is increased, but resource utilization becomes uneven leading to inefficiency

Engineering Contradiction:
Improveworkload throughputVSAvoidresource utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent combines multiple jobs with complementary resource usage patterns into a single execution unit. Specifically, it merges a first job that overloads a first resource but underutilizes a second resource with a second job that underutilizes the first resource but overloads the second resource, allowing them to be executed together on the same server to balance overall resource utilization.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies local quality by analyzing and matching specific resource usage characteristics of different jobs. It identifies jobs with opposite resource utilization patterns on specific resources (CPU, I/O, network) and pairs them together, so that each server receives a customized combination of jobs tailored to balance its resource consumption locally.

Inventive Principle:
Principle #3Local quality

2Productivity

If additional servers are added to handle workload, then processing capacity is increased, but capital expenditures and operating costs increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidnumber of servers
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent makes existing servers more universally useful by enabling them to efficiently execute multiple types of jobs simultaneously. By combining jobs with complementary resource patterns, each server can handle a diverse workload that fully utilizes its various resources (CPU, I/O, network), thereby increasing the effective capacity of the existing server fleet without adding new servers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of operation

If resources are allocated to all jobs equally, then simplicity is maintained, but high priority jobs do not receive sufficient resource allocation to improve completion time

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidjob completion time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent introduces dynamic resource allocation within job combinations by allowing the scheduler to adjust the proportion of resources allocated to each job based on priority, resource requirements, and current system state. This enables high-priority jobs to receive more resources when needed while maintaining the simplicity of the overall scheduling mechanism through automated dynamic adjustment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8959526B2Scheduling execution of complementary jobs based on resource usage
Publication Date: 2015.02.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8959526B2 patent drawing
  • US8959526B2 patent drawing
  • US8959526B2 patent drawing

AI summary

The subject disclosure is directed towards executing jobs based on resource usage. When a plurality of jobs is received, one or more jobs are mapped to one or more other jobs based on which resources are fully utilized or overloaded. The utilization of these resources by the one or more jobs complements utilization of these resources by the one or more other jobs. The resources are partitioned at one or more servers in order to efficiently execute the one or more jobs and the one or more other jobs. The resources may be partitioned equally or proportionally based on the resource usage or priorities.