IP Library Granted Patent US 12,664,018
Granted Patent B2
US 12,664,018 · App. 17/400,579 · Granted Jun 23, 2026

System and method for estimating job scalability on a computing device

Inventors: Max Alt (San Francisco, CA); Paulo Roberto Pereira de Souza filho (Maringa, BR)
Assignee: Advanced Micro Devices, Inc.
G06F9/5005G06F9/466
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,664,018
App. No.
17/400,579
Filed
Aug 12, 2021
Granted
Jun 23, 2026
Kind
B2
Art Unit
2195
USPC
718/101
Abstract

Systems and methods for estimating the scalability of applications in high performance computing and distributed computing environments and for configuring applications based on those estimates are disclosed. A model is disclosed that provides an estimate of the scalability behavior of an application based on basic parameters and a small number of runs on bare metal and cloud systems. The system may also be configured to use the estimated performance to recommend optimal configurations based on different policies, including best performance, lowest cost, and best performance per cost.

Claims (74)

1 . A method for estimating job scalability on a computing system, the method comprising:

determining available memory for multiple processing cores in the computing system being evaluated for executing a job;

calculating one or more estimated execution times for the job;

wherein the one or more estimated execution times are estimated based on (i) a serial time estimate for the job, (ii) a parallel time estimate that scales with a number of cores of the multiple processing cores being evaluated for executing the job, and (iii) a network overhead estimate for the job; and

wherein the serial time estimate, the parallel time estimate, and the network overhead estimate are derived from performance measurements taken from one or more prior executions of the job on other computer systems having similar cores and available memory per core as the computing system;

calculating a first estimated number of cores of the multiple processing cores for a performance option at which the one or more estimated execution times for the job is minimized;

calculating a second estimated number of cores of the multiple processing cores for a lowest cost option at which an estimated financial cost to execute the job is minimized;

displaying one or more numbers of cores including the first estimated number of cores and the second estimated number of cores;

scaling the job according to a selected number of cores of the one or more numbers of cores; and

executing the scaled job on the computing system using the selected number of cores.

2 . The method of claim 1 , wherein determining the available memory is performed on a per-core or per-thread basis.

3 . The method of claim 1 , further comprising estimating a problem size for the job, wherein the problem size is estimated from a previous run of the job based on a total RAM memory usage without the multiple processing cores paging.

4 . The method of claim 3 , further comprising determining a hard threshold restriction (H) that penalizes configurations where n>mP, where n is the size of the problem, m is the available memory per core and P is the number of cores of the multiple processing cores being evaluated for executing the job.

5 . The method of claim 1 , wherein:

the serial time estimate for the job is a fixed term that does not scale with the number of cores of the multiple processing cores in the computing system being evaluated for executing the job;

and

the network overhead estimate is proportional to the number of cores of the multiple processing cores in the computing system being evaluated for executing the job.

6 . The method of claim 1 , further comprising performing one or more test runs of the job with performance instrumentation, wherein if a number of test runs is less than three, calculating the serial time estimate based on a sum of time spent by the number of cores of the multiple processing cores being evaluated for executing the job sending or receiving messages plus time spent by the job in disk operations divided by the number of cores of the multiple processing cores being evaluated for executing the job, and calculating the parallel time estimate based on a total job time divided by the number of cores of the multiple processing cores being evaluated for executing the job minus the serial time estimate.

7 . The method of claim 1 , further comprising:

calculating a third estimated number of cores of the multiple processing cores for a best performance per financial cost option;

calculating an estimated financial cost for the performance option at which the one or more estimated execution times for the job is minimized;

calculating an estimated financial cost for the lowest cost option;

calculating an estimated financial cost for the best performance per financial cost option; and

displaying the estimated financial cost for the performance option at which the one or more estimated execution times for the job is minimized, the estimated financial cost for the lowest cost option, and the estimated financial cost for the best performance per financial cost option.

8 . The method of claim 1 , wherein the performance option is a best performance option.

9 . A system for estimating a job's scalability in a computer system, comprising:

a memory;

one or more processors configured to execute instructions in the memory, which when executed cause the one or more processors to:

determine available memory for each core in a computing system being evaluated for executing a job;

calculate one or more estimated execution times for the job;

wherein the one or more estimated execution times are estimated based on (i) a serial time estimate for the job, (ii) a parallel time estimate that scales with a number of cores being evaluated for executing the job, and (iii) a network overhead estimate for the job; and

wherein the serial time estimate, the parallel time estimate, and the network overhead estimate are based on performance measurements taken from one or more prior executions of the job on other computer systems having similar cores and available memory per core as the computing system;

calculate a first estimated number of cores of the computing system for a performance option at which the one or more estimated execution times for the job is minimized;

calculate a second estimated number of cores of the computing system for a lowest cost option at which an estimated financial cost to execute the job is minimized;

display one or more numbers of cores including the first estimated number of cores and the second estimated number of cores;

scale the job according to a selected number of cores of the one or more numbers of cores; and

execute the scaled job on the computing system using the selected number of cores.

10 . The system of claim 9 , wherein the one or more processors calculate a third estimated number of cores of the computing system for a best performance per financial cost option.

11 . The system of claim 9 , wherein:

the one or more processors estimate a problem size for the job; and

the problem size is estimated from a previous run of the job based on a total RAM memory usage without paging.

12 . The system of claim 9 , wherein:

the serial time estimate for the job is a fixed term that does not scale with the number of cores in the computing system being evaluated for executing the job;

and

the network overhead estimate is proportional to the number of cores in the computing system being evaluated for executing the job.

13 . A system for estimating a job's scalability in a computer system, comprising:

a memory;

one or more processors configured to execute instructions in the memory, which when executed cause the one or more processors to:

determine available memory for a plurality of cores in the computing system being evaluated for executing a job;

determine one or more execution times for the job;

wherein the one or more execution times are estimated based on a serial time estimate for the job, a parallel time estimate that scales with a number of cores of the plurality of cores being evaluated for executing the job, and a network overhead estimate for the job; and

wherein at least one of: the serial time estimate, the parallel time estimate, and the network overhead estimate are based on performance measurements taken from one or more prior executions of the job on the computer system; and the serial time estimate, the parallel time estimate, and the network overhead estimate are based on performance measurements taken from one or more prior executions of the job on other computer systems having similar cores and available memory per core as the computing system;

calculate one or more numbers of cores including (i) a first estimated number of cores of the computing system for a performance option that minimizes the one or more execution times for the job and (ii) a second estimated number of cores of the computing system for a lowest financial cost option;

scale the job according to a selected number of cores of the one or more numbers of cores; and

execute the scaled job on the computing system using the selected number of cores; and

a display that displays one or more of (i) and (ii).

14 . The system of claim 13 , wherein:

the one or more processors run one or more test workloads to measure one or more performance metrics for one or more cloud environments; and

the one or more processors estimate the one or more execution times for the job based on the one or more performance metrics.

15 . The system of claim 14 , wherein:

the one or more processors collect the one or more performance metrics for the job once the job is being executed; and

the one or more processors estimate a second execution time for a second job based on the one or more performance metrics.

16 . The system of claim 13 , wherein:

the one or more numbers of cores further includes a third estimated number of cores of the computing system for a best performance per financial cost option; and/or

the serial time estimate for the job is a fixed term that does not scale with the number of cores of the plurality of cores in the computing system being evaluated for executing the job; and/or

the network overhead estimate is proportional to the number of cores of the plurality of cores in the computing system being evaluated for executing the job.

17 . The system of claim 13 , wherein the instructions, when executed, further cause the one or more processors to:

perform one or more test runs of the job with performance instrumentation; and

if the number of test runs is less than three:

calculate the serial time estimate based on a sum of time spent by the number of cores of the plurality of cores being evaluated for executing the job sending or receiving messages plus time spent by the job in disk operations divided by the number of cores of the plurality of cores being evaluated for executing the job; and

calculate the parallel time estimate based on a total job time divided by the number of cores of the plurality of cores being evaluated for executing the job minus the serial time.

18 . The system of claim 13 wherein the instructions, when executed, further cause the one or more processors to:

calculate a first estimated number of threads of the computing system for a best performance option at which the one or more estimated execution times for the job is minimized; and

calculate a second estimated number of threads of the computing system for a lowest cost option at which an estimated financial cost to execute the job is minimized using the second estimated number of threads.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Aug 28, 2024
From: B. RILEY COMMERCIAL CAPITAL, LLC
To: CORE SCIENTIFIC, INC.; CORE SCIENTIFIC OPERATING COMPANY
Reel/Frame 068803/0146 →
RELEASE OF SECURITY INTEREST Recorded Jan 26, 2024
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: CORE SCIENTIFIC OPERATING COMPANY; CORE SCIENTIFIC ACQUIRED MINING LLC
Reel/Frame 066375/0324 →
SECURITY INTEREST Recorded Mar 1, 2023
From: CORE SCIENTIFIC, INC.; CORE SCIENTIFIC OPERATING COMPANY
To: B. RILEY COMMERCIAL CAPITAL, LLC
Reel/Frame 062899/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2023
From: CORE SCIENTIFIC OPERATING COMPANY; CORE SCIENTIFIC, INC.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 062669/0293 →
RELEASE OF SECURITY INTEREST Recorded Feb 3, 2023
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: CORE SCIENTIFIC INC.; CORE SCIENTIFIC OPERATING COMPANY
Reel/Frame 063272/0450 →
SECURITY INTEREST Recorded Dec 23, 2022
From: CORE SCIENTIFIC OPERATING COMPANY; CORE SCIENTIFIC INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 062218/0713 →
CHANGE OF NAME Recorded Jun 2, 2022
From: CORE SCIENTIFIC, INC.
To: CORE SCIENTIFIC OPERATING COMPANY
Reel/Frame 060258/0485 →
SECURITY INTEREST Recorded Feb 10, 2022
From: CORE SCIENTIFIC OPERATING COMPANY; CORE SCIENTIFIC ACQUIRED MINING LLC
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 059004/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2022
From: ALT, MAX; DE SOUZA FILHO, PAULO ROBERTO PEREIRA
To: CORE SCIENTIFIC, INC.
Reel/Frame 058816/0827 →
Continuity (2)
Provisional Application 63064589 · Aug 12, 2020
Related Publication 20220050718A1 · Feb 17, 2022
References Cited (44)
US 5072371A · Benner · 1991 [cited by examiner]
US 6772106B1 · Mahlke · 2004 [cited by examiner]
US 7617498B1 · Lumsden · 2009 [cited by applicant]
US 8286177B2 · Hollingsworth · 2012 [cited by applicant]
US 9298493B1 · Harel · 2016 [cited by examiner]
US 10248400B1 · Coleman · 2019 [cited by examiner]
US 10891290B2 · Morris · 2021 [cited by examiner]
US 20080082933A1 · Howard · 2008 [cited by examiner]
US 20080178127A1 · Dewkett · 2008 [cited by examiner]
US 20090006070A1 · Sasatani et al. · 2009 [cited by applicant]
US 20110191782A1 · Kim · 2011 [cited by examiner]
US 20140089917A1 · Attalla et al. · 2014 [cited by applicant]
US 20160217003A1 · Ailamaki · 2016 [cited by examiner]
US 20170236072A1 · Rendle · 2017 [cited by examiner]
US 20180113965A1 · Harris · 2018 [cited by examiner]
US 20180210762A1 · Inada · 2018 [cited by examiner]
US 20200042338A1 · Poothia · 2020 [cited by examiner]
US 20200073739A1 · Rungta et al. · 2020 [cited by applicant]
US 20200081740A1 · Wada · 2020 [cited by examiner]
US 20200241929A1 · Arrasjid · 2020 [cited by examiner]
US 20210157660A1 · Hershkovitz · 2021 [cited by examiner]
US 20210216330A1 · Raghavan · 2021 [cited by examiner]
US 20220021589A1 · Song · 2022 [cited by examiner]
US 20220083709A1 · Mohan · 2022 [cited by examiner]
CN 111104198A · 2020 [cited by examiner]
JP 2001125784A · 2001 [cited by examiner]
JP 2002358201A · 2002 [cited by examiner]
JP 2004341750A · 2004 [cited by examiner]
JP 2007058253A · 2007 [cited by examiner]
KR 20080052339A · 2008 [cited by examiner]
WO WO2016114771A1 · 2016 [cited by examiner]
WO WO2017022077A1 · 2017 [cited by examiner]
Fukushi et al, JP2001125784A Description Translation, May 11, 2001, [database online], [retrieved on Feb. 23, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publication Details/descri… [cited by examiner]
Jinguji, JP2002358201A Description Translation, Dec. 13, 2002, [database online], [retrieved on Feb. 23, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publication Details/description… [cited by examiner]
Lee et al, KR20080052339A Desription Translation, Jun. 11, 2008, [database online], [retrieved on Feb. 23, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publicationDetails/descriptio… [cited by examiner]
Monteil, Thierry, Coupling profile and historical methods to predict execution time of parallel applications, Nov. 12, 2015, [retrieved on Feb. 23, 2023] Retrieved from <URL:https://hal.science/hal-01228236/document>, p… [cited by examiner]
Lobachev et al. Estimating Parallel Performance, A Skeleton-Based Approach, Sep. 25, 2010, Retrieved from <URL:https://dl.acm.org/doi/pdf/10.1145/1863482.1863489>, pp. 25-33 (Year: 2010). [cited by examiner]
Boyd-Wickizer et al. An Analysis of Linux Scalability to Many Cores, Oct. 4, 2010, Retrieved from <URL:https://www.usenix.org/legacy/events/osdi10/tech/full_papers/Boyd-Wickizer.pdf>, pp. 1-16 (Year: 2010). [cited by examiner]
Fujii et al. JP2007058253A Description Translation, Mar. 8, 2007, [database online], [retrieved on Feb. 23, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publicationDetails/descripti… [cited by examiner]
Qi, Zengtian CN111104198A Description Translation, May 5, 2020, [database online], [retrieved on Feb. 23, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publication Details/descriptio… [cited by examiner]
Sato et al. WO2017022077A1 Description Translation, Feb. 9, 2017 [database online], [retrieved on Sep. 8, 2023] Retrieved from Espacenet using Internet <URL:https://worldwide.espacenet.com/publication Details/descriptio… [cited by examiner]
Bhatia, Performance Analysis, Oct. 11, 2011, <http://www.cs.umsl.edu/˜sanjiv/classes/cs5740/lectures/>, pp. 1-10 (Year: 2011). [cited by examiner]
Shigeo, JP2004341750A Translation, Dec. 2, 2004, <https://www.j-platpat.inpit.go.jp/s0100>, pp. 1-29 (Year: 2004). [cited by examiner]
International Search Report and Written Opinion dated Nov. 15, 2021 for International Patent Application No. PCT/US21/44347. [cited by applicant]