IP Library Granted Patent US 12,645,501
Granted Patent B2
US 12,645,501 · App. 18/366,555 · Granted Jun 2, 2026

Systems and methods for edge resource demand load scheduling

Inventors: William Jeffery White (Plano, TX); Said Tabet (Austin, TX)
Assignee: DELL PRODUCTS L.P.
G06F9/5038G06F9/4881G06F9/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 12,645,501
App. No.
18/366,555
Granted
Jun 2, 2026
Kind
B2
Abstract

Managing the resource demand load for edge systems is significantly more complex than for other systems, such as cloud environments. Edge resource demand load scheduling systems and methods are disclosed that can ensure that edge systems operate smoothly and efficiently while balancing multiple scheduling objectives. Scheduling techniques disclosed herein may utilize heuristic rules for candidate edge system selection (e.g., utilizing ARMA/ARIMA averages and/or service level objectives) and modified best fit decreasing (mBFD) assignment/allocation techniques.

Claims (85)

1 . A processor-implemented method for orchestrating edge resource demand load scheduling, the method comprising:

given a set of application job requests comprising one or more application job requests, in which each application job comprises a respective set of tasks:

for each application job of the set of application job requests, generating a respective ordered list of tasks by sorting the respective set of tasks based on total resource demand load size for each task of the respective set of tasks; and

for each particular task of each respective ordered list of tasks for each application job of the set of application job requests:

identifying a respective critical resource demand load size for the particular task;

generating a respective ordered list of candidate systems by sorting a respective set of candidate systems associated with the particular task based on total assignable resource capacity for each candidate system of the respective set of candidate systems;

attempting to identify a target candidate system from the respective ordered list of candidate systems that comprises assignable critical resource capacity that satisfies the critical resource demand load size for the particular task;

if the target candidate system is identified, determining whether the target candidate system comprises assignable non-critical resource capacity that satisfies non-critical resource demand load size for the particular task; and

if the target candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to the target candidate system.

2 . The processor-implemented method of claim 1 , wherein the total resource demand load size, the respective critical resource demand load size, the non-critical resource demand load size, the total assignable resource capacity, the assignable critical resource capacity, and the assignable non-critical resource capacity are represented in a normalized resource vector framework in which resource demand load and assignable resource capacity are normalized based on reference values for different resource types.

3 . The processor-implemented method of claim 1 , wherein the respective set of candidate systems is determined by:

defining an initial set of candidate systems using a set of constraints associated with the particular task; and

defining the respective set of candidate systems based on an assessment of resource utilization trajectory for one or more candidate systems of the initial set of candidate systems.

4 . The processor-implemented method of claim 1 , wherein the total assignable resource capacity for each candidate system of the respective set of candidate systems is based at least in part on a selectively modifiable slack parameter.

5 . The processor-implemented method of claim 1 , wherein the respective ordered list of tasks is sorted in descending order based on the total resource demand load size for each task of the respective set of tasks, and wherein the respective ordered list of candidate systems is sorted in ascending order based on the total assignable resource capacity for each candidate system of the respective set of candidate systems.

6 . The processor-implemented method of claim 1 , further comprising:

if the target candidate system is not identified, assigning the particular task to a next backlog for processing in a next iteration; or

if the target candidate system fails to comprise assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, determining whether any subsequent candidate system in the respective ordered list of candidate systems comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, and (i) in response to determining that a subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to the subsequent candidate system, or (ii) in response to determining that no subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to a next backlog for processing in a next iteration.

7 . The processor-implemented method of claim 6 , further comprising:

in response to assigning the particular task to the target candidate system or the subsequent candidate system, updating the total assignable resource capacity for the target candidate system or the subsequent candidate system.

8 . The processor-implemented method of claim 1 , further comprising:

given a set of additional tasks comprising one or more individual tasks or one or more backlog tasks associated with a previous iteration:

generating an ordered list of additional tasks by sorting the set of additional tasks based on critical resource demand load size for each additional task of the set of additional tasks; and

for each particular additional task of the ordered list of additional tasks:

generating a respective ordered list of additional candidate systems by sorting a respective set of additional candidate systems associated with the particular additional task based on total assignable resource capacity for each additional candidate system of the respective set of additional candidate systems;

attempting to identify an additional target candidate system from the respective ordered list of additional candidate systems that comprises assignable critical resource capacity that satisfies the critical resource demand load size for the particular additional task;

if the additional target candidate system is identified, determining whether the additional target candidate system comprises assignable non-critical resource capacity that satisfies non-critical resource demand load size for the particular additional task;

if the additional target candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to the additional target candidate system;

if the additional target candidate system is not identified, assigning the particular additional task to a next backlog for processing in a next iteration; and

if the additional target candidate system fails to comprise assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, determining whether any additional subsequent candidate system in the respective ordered list of additional candidate systems comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, and (i) in response to determining that an additional subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to the additional subsequent candidate system, or (ii) in response to determining that no additional subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to a next backlog for processing in a next iteration.

9 . The processor-implemented method of claim 1 , wherein the respective ordered list of tasks omits one or more low-priority tasks associated with the application job, and wherein the processor-implemented method further comprises:

for each particular low-priority task of the one or more low-priority tasks:

selecting a subset of candidate systems from a respective set of candidate systems associated with the particular low-priority task, wherein each candidate system of the subset of candidate systems comprises assignable resource capacity;

if a particular candidate system of the subset of candidate systems comprises assignable resource capacity that satisfies a resource demand load associated with the particular low-priority task, assigning the particular low-priority task to the particular candidate system;

if no particular candidate system of the subset of candidate systems comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task, selecting a new subset of candidate systems from the respective set of candidate systems to obtain a particular candidate system that comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task; and

if no particular candidate system of the new subset of candidate systems comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task, assigning the particular low-priority task to a next backlog for processing in a next iteration.

10 . One or more information handling systems collectively comprising:

one or more processors; and

one or more non-transitory computer-readable medium or media comprising one or more sets of instructions which, when executed by at least one of the one or more processors, cause steps to be performed comprising:

given a set of application job requests comprising one or more application job requests, in which each application job comprises a respective set of tasks:

for each application job of the set of application job requests, generating a respective ordered list of tasks by sorting the respective set of tasks based on total resource demand load size for each task of the respective set of tasks; and

for each particular task of each respective ordered list of tasks for each application job of the set of application job requests:

identifying a respective critical resource demand load size for the particular task;

generating a respective ordered list of candidate systems by sorting a respective set of candidate systems associated with the particular task based on total assignable resource capacity for each candidate system of the respective set of candidate systems;

attempting to identify a target candidate system from the respective ordered list of candidate systems that comprises assignable critical resource capacity that satisfies the critical resource demand load size for the particular task;

if the target candidate system is identified, determining whether the target candidate system comprises assignable non-critical resource capacity that satisfies non-critical resource demand load size for the particular task; and

if the target candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to the target candidate system.

11 . The one or more information handling systems of claim 10 , wherein the total resource demand load size, the respective critical resource demand load size, the non-critical resource demand load size, the total assignable resource capacity, the assignable critical resource capacity, and the assignable non-critical resource capacity are represented in a normalized resource vector framework in which resource demand load and assignable resource capacity are normalized based on reference values for different resource types.

12 . The one or more information handling systems of claim 10 , wherein the respective set of candidate systems is determined by:

defining an initial set of candidate systems using a set of constraints associated with the particular task; and

defining the respective set of candidate systems based on an assessment of resource utilization trajectory for one or more candidate systems of the initial set of candidate systems.

13 . The one or more information handling systems of claim 10 , wherein the respective ordered list of tasks is sorted in descending order based on the total resource demand load size for each task of the respective set of tasks, and wherein the respective ordered list of candidate systems is sorted in ascending order based on the total assignable resource capacity for each candidate system of the respective set of candidate systems.

14 . The one or more information handling systems of claim 10 , wherein the steps to be performed further comprise:

if the target candidate system is not identified, assigning the particular task to a next backlog for processing in a next iteration; or

if the target candidate system fails to comprise assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, determining whether any subsequent candidate system in the respective ordered list of candidate systems comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, and (i) in response to determining that a subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to the subsequent candidate system, or (ii) in response to determining that no subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to a next backlog for processing in a next iteration.

15 . The one or more information handling systems of claim 10 , wherein the steps to be performed further comprise:

given a set of additional tasks comprising one or more individual tasks or one or more backlog tasks associated with a previous iteration:

generating an ordered list of additional tasks by sorting the set of additional tasks based on critical resource demand load size for each additional task of the set of additional tasks; and

for each particular additional task of the ordered list of additional tasks:

generating a respective ordered list of additional candidate systems by sorting a respective set of additional candidate systems associated with the particular additional task based on total assignable resource capacity for each additional candidate system of the respective set of additional candidate systems;

attempting to identify an additional target candidate system from the respective ordered list of additional candidate systems that comprises assignable critical resource capacity that satisfies the critical resource demand load size for the particular additional task;

if the additional target candidate system is identified, determining whether the additional target candidate system comprises assignable non-critical resource capacity that satisfies non-critical resource demand load size for the particular additional task;

if the additional target candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to the additional target candidate system;

if the additional target candidate system is not identified, assigning the particular additional task to a next backlog for processing in a next iteration; and

if the additional target candidate system fails to comprise assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, determining whether any additional subsequent candidate system in the respective ordered list of additional candidate systems comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, and (i) in response to determining that an additional subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to the additional subsequent candidate system, or (ii) in response to determining that no additional subsequent candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular additional task, assigning the particular additional task to a next backlog for processing in a next iteration.

16 . The one or more information handling systems of claim 10 , wherein the respective ordered list of tasks omits one or more low-priority tasks associated with the application job, and wherein the steps to be performed further comprise:

for each particular low-priority task of the one or more low-priority tasks:

selecting a subset of candidate systems from a respective set of candidate systems associated with the particular low-priority task, wherein each candidate system of the subset of candidate systems comprises assignable resource capacity;

if a particular candidate system of the subset of candidate systems comprises assignable resource capacity that satisfies a resource demand load associated with the particular low-priority task, assigning the particular low-priority task to the particular candidate system;

if no particular candidate system of the subset of candidate systems comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task, selecting a new subset of candidate systems from the respective set of candidate systems to obtain a particular candidate system that comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task; and

if no particular candidate system of the new subset of candidate systems comprises assignable resource capacity that satisfies the resource demand load associated with the particular low-priority task, assigning the particular low-priority task to a next backlog for processing in a next iteration.

17 . A non-transitory computer-readable medium or media comprising one or more sequences of instructions which, when executed by at least one processor, cause steps to be performed comprising:

given a set of application job requests comprising one or more application job requests, in which each application job comprises a respective set of tasks:

for each application job of the set of application job requests, generating a respective ordered list of tasks by sorting the respective set of tasks based on total resource demand load size for each task of the respective set of tasks;

for each particular task of each respective ordered list of tasks for each application job of the set of application job requests:

identifying a respective critical resource demand load size for the particular task;

generating a respective ordered list of candidate systems by sorting a respective set of candidate systems associated with the particular task based on total assignable resource capacity for each candidate system of the respective set of candidate systems;

attempting to identify a target candidate system from the respective ordered list of candidate systems that comprises assignable critical resource capacity that satisfies the critical resource demand load size for the particular task;

if the target candidate system is identified, determining whether the target candidate system comprises assignable non-critical resource capacity that satisfies non-critical resource demand load size for the particular task; and

if the target candidate system comprises assignable non-critical resource capacity that satisfies the non-critical resource demand load size for the particular task, assigning the particular task to the target candidate system.

18 . The non-transitory computer-readable medium or media of claim 17 , wherein the total resource demand load size, the respective critical resource demand load size, the non-critical resource demand load size, the total assignable resource capacity, the assignable critical resource capacity, and the assignable non-critical resource capacity are represented in a normalized resource vector framework in which resource demand load and assignable resource capacity are normalized based on reference values for different resource types.

19 . The non-transitory computer-readable medium or media of claim 17 , wherein the respective set of candidate systems is determined by:

defining an initial set of candidate systems using a set of constraints associated with the particular task; and

defining the respective set of candidate systems based on an assessment of resource utilization trajectory for one or more candidate systems of the initial set of candidate systems.

20 . The non-transitory computer-readable medium or media of claim 17 , wherein the respective ordered list of tasks is sorted in descending order based on the total resource demand load size for each task of the respective set of tasks, and wherein the respective ordered list of candidate systems is sorted in ascending order based on the total assignable resource capacity for each candidate system of the respective set of candidate systems.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2024
From: WHITE, WILLIAM JEFFERY; TABET, SAID
To: DELL PRODUCTS L.P.
Reel/Frame 067158/0513 →
Continuity (3)
Continuation In Part 18355351 · Jul 19, 2023
Provisional Application 63450237 · Mar 6, 2023
Related Publication 20240303130A1 · Sep 12, 2024
References Cited (62)
US 8386495B1 · Sandler et al. · 2013 [cited by applicant]
US 10169101B2 · Banerjee et al. · 2019 [cited by applicant]
US 10698717B2 · Tang et al. · 2020 [cited by applicant]
US 10977078B2 · Rehman · 2021 [cited by examiner]
US 11171831B2 · Patel et al. · 2021 [cited by applicant]
US 11228527B2 · Bangalore Krishnamurthy · 2022 [cited by applicant]
US 11356349B2 · Cui et al. · 2022 [cited by applicant]
US 11836656B2 · Cai et al. · 2023 [cited by applicant]
US 11966788B2 · MacDonald et al. · 2024 [cited by applicant]
US 12250159B2 · Chaurasia et al. · 2025 [cited by applicant]
US 20040103387A1 · Teig et al. · 2004 [cited by applicant]
US 20230138568A1 · Singh · 2023 [cited by examiner]
US 20230185472A1 · Higginson et al. · 2023 [cited by applicant]
US 20230244537A1 · Wang · 2023 [cited by applicant]
US 20230409871A1 · Xu et al. · 2023 [cited by applicant]
US 20240095090A1 · Saito et al. · 2024 [cited by applicant]
US 20240205165A1 · Smith · 2024 [cited by examiner]
US 20240220639A1 · Sahu et al. · 2024 [cited by applicant]
US 20240259879A1 · Ranganath et al. · 2024 [cited by applicant]
US 20240303121A1 · White et al. · 2024 [cited by applicant]
US 20240303124A1 · White et al. · 2024 [cited by applicant]
US 20240303127A1 · White et al. · 2024 [cited by applicant]
US 20240303128A1 · White et al. · 2024 [cited by applicant]
US 20240303129A1 · White et al. · 2024 [cited by applicant]
US 20240303130A1 · White et al. · 2024 [cited by applicant]
US 20240303134A1 · White et al. · 2024 [cited by applicant]
US 20240305535A1 · White et al. · 2024 [cited by applicant]
Notice of Allowance mailed Sep. 3, 2025 for U.S. Appl. No. 18/366,490, 20 pages. [cited by applicant]
Non-Final Office Action (2676), including List of Ref. Cited by Examiner and Considered by Examiner, dated Jan. 23, 2026, in U.S. Appl. No. 18/366,507 (24 pgs). [cited by applicant]
Non-Final Office Action (2677), including List of Ref. Cited by Examiner and Considered by Examiner, dated Jan. 23, 2026, in U.S. Appl. No. 18/366,520 (23 pgs). [cited by applicant]
Non-Final Office Action (2678), including List of Ref. Cited by Examiner and Considered by Examiner, dated Jan. 23, 2026, in U.S. Appl. No. 18/366,538 (23 pgs). [cited by applicant]
Liu, M., Wan, Y., Lin, Z., Lewis, F.L., Xie, J., Jalaian, B.A. (2021). Computational Intelligence in Uncertainty Quantification for Learning Control and Differential Games In: Vamvoudakis, K.G., Wan, Y., Lewis, F.L., Ca… [cited by applicant]
Ghorbani, Amir, Yifan Wang, Yanzhi Xue, Massoud Pedram, and Paul Bogdan. “Prediction and Control of Bursty Cloud Workloads: A Fractal Framework.” University of Southern California, 2014. https://dx.doi.org/10.1145/26560… [cited by applicant]
Ali-Eldin, Ahmed, et al. “The Hidden Cost of the Edge: A Performance Comparison of Edge and Cloud Latencies.” Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis … [cited by applicant]
Tirmazi, Muhammad, et al. “Borg: the Next Generation.” Proceedings of the Fifteenth European Conference on Computer Systems (EuroSys '20), Apr. 27-30, 2020, Heraklion, Greece ACM, New York, NY, USA, 2020, pp. 1-14. http… [cited by applicant]
Feng, Yihui, et al. “Scaling Large Production Clusters with Partitioned Synchronization.” Proceedings of the 2021 USENIX Annual Technical Conference (USENIX ATC '21) Jul. 14-16, 2021. https://www.usenix.org/conference/a… [cited by applicant]
Xie, Junfei, et al. “M-PCM-OFFD: An effective output statistics estimation method for systems of high dimensional uncertainties subject to low-order parameter interactions.” Mathematics and Computers in Simulation, vol.… [cited by applicant]
Wiki contributors. “Erlang distribution.” Wikipedia, The Free Encyclopedia, Mar. 21, 2025, https://en.wikipedia.org/wiki/Erlang_distribution. Accessed Mar. 21, 2025. (6 pages). [cited by applicant]
Toczé, Klervie, et al. “Edge Workload Trace Gathering and Analysis for Benchmarking.” Proceedings of the 2022 IEEE 6th International Conference on Fog and Edge Computing (ICFEC), 2022, pp. 34-41. https://doi.org/10.1109… [cited by applicant]
Qiu, Haoran, et al. “FIRM: An Intelligent Fine-grained Resource Management Framework for SLO-Oriented Microservices.” Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2020,… [cited by applicant]
Wang et al. “The Cost of Cloud, a Trillion Dollar Paradox.” Andreessen Horowitz, May 27, 2021, https://a16z.com/the-cost-of-cloud-a-trillion-dollar-paradox/ (12 pages). [cited by applicant]
Kolosov, Oleg, et al. “Benchmarking in the Dark: On the Absence of Comprehensive Edge Datasets.” Proceedings of the 2nd USENIX Workshop on Hot Topics in Edge Computing (HotEdge), 2020. https://www.usenix.org/conference/… [cited by applicant]
Wiki contributors. “Jensen-Shannon divergence.” Wikipedia, The Free Encyclopedia, Mar. 21, 2025, https://en.wikipedia.org/wiki/Jensen%E2%80%93Shannon_divergence. Accessed Mar. 21, 2025. (6 pages). [cited by applicant]
Salem, Osman, Farid Nait-Abdesselam, and Ahmed Mehaoua. “Anomaly Detection in Network Traffic using Jensen-Shannon Divergence.” Proceedings of the IEEE International Conference on Communications (ICC), 2012, pp. 5200-52… [cited by applicant]
Soos, Gabor, Daniel Ficzere, and Pal Varga. “Towards Traffic Identification and Modeling for 5G Application Use-Cases.” Electronics, vol. 9, No. 4, 2020, p. 640. https://doi.org/10.3390/electronics9040640. (32 pages). [cited by applicant]
Sisworo. “On Holder Exponents.” Jurnal Matematika dan Sains (JMS), vol. 4, No. 3, 1999, pp. 244-259. https://www.researchgate.net/publication/309421576_On_Holder_Exponents. (3 https://www.researchgate.net/publication/30… [cited by applicant]
Response to Non-Final Office Action, filed Jan. 25, 2026, U.S. Appl. No. 18/366,507. (18 pgs). [cited by applicant]
Response to Non-Final Office Action, filed Jan. 25, 2026, U.S. Appl. No. 18/366,520. (16 pgs). [cited by applicant]
Response to Non-Final Office Action, filed Jan. 25, 2026, U.S. Appl. No. 18/366,538. (17 pgs). [cited by applicant]
Non-Final Office Action (2674), including List of Ref. Cited by Examiner and Considered by Examiner, dated Dec. 12, 2025, in U.S. Appl. No. 18/366,461 (22 pgs). [cited by applicant]
Response to Non-Final Office Action, filed Dec. 14, 2025, U.S. Appl. No. 18/366,461. (15 pgs). [cited by applicant]
Non-Final Office Action (2673), including List of Ref. Cited by Examiner and Considered by Examiner, dated Jan. 28, 2026, in U.S. Appl. No. 18/355,351 (47 pgs). [cited by applicant]
Notice of Allowance (2nd) mailed Feb. 13, 2025 for U.S. Appl. No. 18/366,490, 10 pages. [cited by applicant]
Notice of Allowance (2nd) mailed Feb. 25, 2026 for U.S. Appl. No. 18/366,461, 7 pages. [cited by applicant]
Notice of Allowance (2nd) mailed Feb. 25, 2026 for U.S. Appl. No. 18/366,549, 13 pages. [cited by applicant]
Notice of Allowance mailed Feb. 13, 2026 for U.S. Appl. No. 18/366,549, 32 pages. [cited by applicant]
Notice of Allowance mailed Feb. 3, 2026 for U.S. Appl. No. 18/366,461, 7 pages. [cited by applicant]
Response to Non-Final Office Action, filed Feb. 22, 2026, U.S. Appl. No. 18/355,351. (20 pgs). [cited by applicant]
Notice of Allowance, including References Considered by Examiner, mailed Mar. 13, 2026 for U.S. Appl. No. 18/366,507, 15 pages. [cited by applicant]
Notice of Allowance, including References Considered by Examiner, mailed Mar. 13, 2026 for U.S. Appl. No. 18/366,520, 20 pages. [cited by applicant]
Notice of Allowance, including References Considered by Examiner, mailed Mar. 13, 2026 for U.S. Appl. No. 18/366,538, 20 pages. [cited by applicant]
Supplemental Notice of Allowance (3rd) mailed Mar. 10, 2026 for U.S. Appl. No. 18/366,461, 2 pages. [cited by applicant]