Dynamic Task Prioritization for Multiprocessor Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing microprocessor clusters are inefficiently utilized, leading to over-provisioning during peak loads and underutilization during non-peak times, resulting in excess computing power and unnecessary software licenses.
Innovation Solution
A method for managing computational resources by prioritizing software tasks, allocating low-priority tasks during non-peak times and high-priority tasks during peak times, using a design of experiment process that includes calculating a computational budget and implementing a Gaussian process regression model for optimized resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If computing clusters are sized to absorb peak loads, then the system can handle maximum demand, but the microprocessor cluster's computing power represents 120 to 150% of the computing power required outside of peak times
Solution Approach 1:
The patent implements dynamic task prioritization and resource allocation that adapts to current system conditions. The scheduling system dynamically adjusts between priority levels based on queue depth and resource availability, transforming the static resource allocation into a dynamic system that matches actual demand rather than peak demand
Solution Approach 2:
The system changes the operational parameters of task execution by introducing priority levels and conditional execution rules. By modifying how tasks are scheduled and executed based on real-time conditions, the system optimizes resource utilization without sacrificing the ability to handle peak loads
2Adaptability or versatility
If generic software is used to manage computational queues, then the system can operate, but it does not take into account any specific software tasks to be performed in a particular field or optimal priority management
Solution Approach 1:
The patent segments the task queue into multiple priority levels (first priority level for design of experiment tasks, second priority level for other tasks). This segmentation allows the system to handle different types of tasks differently, providing task-specific optimization while maintaining a manageable scheduling structure
Solution Approach 2:
The scheduling system acts as an intermediary between task submission and execution, introducing intelligent routing based on priority levels. This intermediary layer provides adaptability without requiring complete system redesign, bridging the gap between generic task management and specialized task optimization
3Productivity
If additional software licenses are available for peak load management, then the system can handle increased demand, but these licenses are under-utilised during non-peak times
Solution Approach 1:
The system implements self-service resource allocation where available licenses are automatically utilized by the scheduling system when resources are freed. The scheduling system monitors resource availability and automatically allocates tasks to available licenses without external intervention, ensuring maximum utilization of available software licenses during both peak and non-peak times
Data Source
AI summary
A system (1) includes a module (30) for calculating a design of experiment comprising a plurality of software tasks to be performed in order to solve a predetermined physical problem. The software tasks of the design of experiment have a first priority level. The system also includes a module (4) for scheduling the execution of software tasks by the computing system, configured to check for the presence of at least one software task with a second priority level higher than the first priority level waiting to be executed; in case of the presence of at least one such software task, obtaining freed-up computational resources for executing said at least one software task of a second priority level; in the absence of at least one such software task, allocate at least some of the software tasks of the first priority level to the available computational resources.


