Process Scheduling With Dynamic GPU Mapping and CPU Fallback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing job schedulers like Slurm inefficiently utilize GPUs due to continuous occupation, leading to jobs exceeding the number of GPUs being unable to execute simultaneously, and GPU preemption is difficult to implement without code changes to determine GPU usage.
Innovation Solution
A scheduling system that uses a driver program to modify the import mechanism of user programs to communicate through a relay module, allowing dynamic mapping of GPUs to processes based on availability and priority, with pull-type and push-type communications for efficient resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If GPUs are continuously occupied by jobs to ensure processing performance, then processing speed is improved, but resource utilization deteriorates because jobs exceeding the number of GPUs cannot execute simultaneously
Solution Approach 1:
The patent implements dynamic mapping that allows GPU assignment to change during process execution based on availability. Instead of static continuous occupation, the system dynamically reassigns GPUs to waiting processes when they become available, enabling both high-speed processing and improved resource utilization across multiple jobs
Solution Approach 2:
The system recovers GPUs from completed or paused processes and reallocates them to new processes. This recovery mechanism ensures that GPUs are not permanently occupied but are continuously reused across different jobs, improving overall productivity while maintaining processing speed through timely reassignment
2Productivity
If GPU preemption is implemented to improve resource allocation, then resource utilization is improved, but implementation complexity increases due to difficulty in determining GPU usage without code changes
Solution Approach 1:
The patent introduces a driver program as an intermediary between user programs and GPUs. This driver program includes a relay module that intercepts and monitors GPU-related function calls, enabling the system to determine GPU usage without modifying user program code. This intermediary approach simplifies preemption implementation while improving resource allocation efficiency
Solution Approach 2:
The system establishes feedback loops where the relay module continuously monitors GPU usage status and communicates with the mapping management unit. This feedback mechanism enables automatic preemption decisions based on real-time GPU availability, improving resource allocation without requiring complex manual intervention or code changes in user programs
3Adaptability or versatility
If a relay module is introduced to enable dynamic mapping communication, then adaptability is improved, but device complexity increases
Solution Approach 1:
The relay module is designed to handle multiple functions within a single component: intercepting function calls, determining GPU usage, managing communication between processes and the mapping system, and coordinating preemption events. This multi-functionality improves adaptability while minimizing the increase in system complexity by consolidating responsibilities in one universal module
Data Source
AI summary
A recording medium stores a program for causing a computer that includes a first computing resource and a second computing resource that has a processing performance lower than a processing performance of the first computing resource to execute a process including: activating a process; and managing a mapping state of the first computing resource. In the activating, execution of the process is registered as a target of the management of the mapping state of the first computing resource, it is determined whether there is the first computing resource mappable to the process when a notification that requests mapping of the first computing resource is output from the process, the process is mapped to the first computing resource in a case where there is the mappable first computing resource, and the process is mapped to the second computing resource in a case where there is not the mappable first computing resource.


