Preemptible Coprocessing for GPU Resource Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud computing systems face inefficiencies due to unused coprocessing resources, particularly in data centers where CPUs are engaged while GPUs and other specialized processors remain idle, leading to reduced overall efficiency.

Innovation Solution

Implementing a system that supports preemptible coprocessing by containerizing compute jobs and sub-tasks, allowing for efficient provisioning, de-provisioning, and migration of resources, including GPUs and FPGAs, to utilize available coprocessors more effectively and improve resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a cloud computing system employs servers with multiple processors including GPUs, then the system can provide high quality of service, but the GPUs may remain idle when the CPU is in use, resulting in unused computing capacity

Engineering Contradiction:
Improvequality of serviceVSAvoidcomputing capacity utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system enables GPUs to serve multiple purposes: they can be shared between different compute jobs and can handle various types of computing tasks. The GPU virtualization layer allows the same physical GPU to be allocated to different virtual machines and workloads dynamically, transforming a single-function resource into a multi-functional asset that improves both service quality and utilization efficiency

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

Solution Approach 2:

The system implements dynamic resource allocation where GPU assignments are not fixed but can be adjusted in real-time based on workload demands. The virtualization layer and scheduling mechanisms allow GPUs to be dynamically provisioned, de-provisioned, and re-allocated between different compute jobs, enabling the system to adapt to changing requirements and maximize resource utilization while maintaining service quality

Inventive Principle:
Principle #15Dynamics

2Productivity

If the system allocates dedicated GPUs to each compute job, then the compute job can execute efficiently, but the GPU cannot be utilized by other compute jobs, reducing overall data center efficiency

Engineering Contradiction:
Improvecompute job execution efficiencyVSAvoidunused computing capacity
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system merges multiple compute jobs that require GPU resources into a shared infrastructure. By combining resource demands from multiple jobs and using virtualization to divide and allocate GPU capacity dynamically, the system ensures that GPUs remain actively utilized across different workloads rather than sitting idle between dedicated assignments, thereby reducing energy waste while maintaining job efficiency

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system implements self-service mechanisms where the virtualization layer and resource management system automatically allocate, monitor, and re-allocate GPU resources based on actual workload needs without manual intervention. This self-adjusting capability ensures that computing capacity is continuously optimized and utilized efficiently across multiple compute jobs

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10235207B2Method and system for preemptible coprocessing
Publication Date: 2019.03.19 BULL SA
  • US10235207B2 patent drawing
  • US10235207B2 patent drawing
  • US10235207B2 patent drawing

AI summary

Methods, computer program products, and systems supporting preemptible coprocessing are disclosed. The method includes executing at least a portion of a first compute job, and executing at least a portion of a second compute job. The method further includes, prior to completing execution of the at least the portion of the second compute job, interrupting the execution of the second compute job, and scheduling at least a portion of a third compute job.