Performance benchmarking and characterization for cloud and bare metal systems
AssigneeAdvanced Micro Devices, Inc.
InventorsMax Alt, Paulo Roberto Pereira De Souza filho
Life of this patent
Estimating the term…
Abstract
A system and method for benchmarking the performance of computing resources in a distributed computing system is disclosed. The system may comprise a performance database, a training program, and a machine learning engine. The training program may be configured to create a training data set by running a plurality of workloads multiple times on a plurality of different cloud computing systems using a plurality of different configurations. The training data may be stored in the performance database, and the machine learning engine may be configured to use the training data to create a model usable to predict the performance of future jobs on different cloud computing systems and bare metal systems.
Claims20
A method for predicting performance of a job, the method comprising:
- creating a training data set by running different test applications on different cloud computing systems using different configurations, wherein the different test applications are selected to test specific performance characteristics of the cloud computing systems and configurations, and the training data set includes performance feature vectors associated with individual test applications and configurations;
- training a machine learning engine using the training data set, the training incorporating performance feature data extracted from the different test applications and associating the performance feature data with specific configurations;
- predicting a performance level for a first future job using the machine learning engine, wherein the prediction comprises comparing one or more performance characteristics of the first future job against corresponding performance characteristics of previously executed test applications stored in a performance database;
- generating a ranked list of computing system configurations based on the predicted performance level for the first future job, wherein the ranked list is ordered according to one or more performance-limiting factors identified for the first future job, including at least one of CPU utilization, memory bandwidth, GPU capability, or I/O throughput;
- generating, using the ranked list, one or more recommendations of computing system configurations for the first future job;
- configuring and deploying the first future job on a computing system in accordance with a computing system configuration selected from the one or more recommendations;
- calculating a level of confidence for the predicted performance level;
- detecting whether there is insufficient data present in the training data set to achieve a predetermined level of confidence in the predicting;
- and
- in response to insufficient data being present, creating a list of additional test application and cloud computing system combinations for testing that will enable achieving the predetermined level of confidence.
A system for managing computing jobs, the system comprising:
- a performance database;
- at least one processor;
- a training program configured to create a training data set by running different test applications on different cloud computing systems using different configurations, wherein the training program is configured to store the training data set in the performance database, and the different test applications are selected to test specific performance characteristics of the cloud computing systems and configurations, and the training data set includes performance feature vectors associated with individual test applications and configurations;
- a machine learning engine configured to read the training data set from the performance database and predict a performance level for a first future job based on the training data set, wherein the prediction comprises comparing one or more performance characteristics of the first future job against corresponding performance characteristics of previously executed test applications stored in the performance database;
- a ranking module configured to generate a performance ranking based on CPU in response to a predicted performance level of the first future job being below a predetermined minimum confidence level;
- wherein the machine learning engine is configured to generate a ranked list of computing system configurations based on the predicted performance level for the first future job and generate, using the ranked list, one or more recommendations of computing system configurations for the first future job;
- wherein the machine learning engine is further configured to detect whether there is sufficient data present in the performance database to achieve the predetermined minimum confidence level in performance prediction, and in response to insufficient data being present, cause the training program to execute additional tests on additional cloud computing system combinations to achieve the predetermined minimum confidence level;
- wherein the ranked list is ordered according to one or more performance-limiting factors identified for the first future job, including at least one of CPU utilization, memory bandwidth, GPU capability, or I/O throughput;
- and
- wherein the at least one processor is configured to configure and deploy the first future job on a computing system in accordance with a computing system configuration selected from the one or more recommendations.
Dependencies are inferred from the claim text.