Elastic execution of machine learning workloads using application-based profiling
By generating joint profiles and building execution models based on application-based analysis technology, the problem of insufficient relevance of resource usage and workload execution caused by resource analysis independence in the existing technology is solved, and efficient execution and resource management of machine learning applications is realized .
Patent Information
- Application Number
- CN202080076568.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-23
- Filing Date
- 2020-12-14
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-12-14
AI Technical Summary
The existing resource analysis methods for machine learning workloads are independent of application or workload execution, resulting in insufficient correlation between resource usage and workload execution, making it difficult to achieve efficient and effective resource allocation.
Using application-based analytical technology, through training and maintenance of machine learning application execution modelers, generate joint profiles, identify features and signatures, build machine learning execution models, and guide resource management components to resize resources to support the efficient use of machine learning applications. implement.
Improves the resource usage efficiency and execution performance of machine learning workloads, realizes fine-grained correlation at different parameter sets and iteration levels, and supports elastic execution and efficient resource allocation.
Smart Images

Figure CN114667507B_ABST
Abstract
Description
Background Art
[0001] The present embodiment relates to training a machine learning model to profile the execution of a machine learning workload. More specifically, the embodiment relates to generating a joint profile of application execution and resource usage, and utilizing an execution model encapsulated in a trained machine learning model to interact with a resource management system to support machine learning application execution and corresponding performance.
[0002] Artificial intelligence (AI) is a field of computer science that deals with the behavior of computers and humans. AI refers to the intelligence of machines when they are able to make decisions based on information that maximizes the chances of success in a given subject. More specifically, AI is able to learn from data sets to solve problems and provide relevant recommendations. For example, in the field of artificial intelligence computer systems, natural language systems (such as IBM Artificial intelligence computer systems (or other natural language question answering systems) process natural language based on the knowledge acquired by the system. To process natural language, the system can be trained using data derived from a knowledge corpus, but the results produced may have varying degrees of accuracy for various reasons.
[0003] Machine learning (ML) is a subset of artificial intelligence (AI) that uses algorithms to learn from data and create a look ahead based on the data. ML is an AI application that creates models, including neural networks that can demonstrate learning behavior by performing tasks that are not explicitly programmed. ML workloads require large data sets, fast and parallel access to data, and algorithms for training to support learning. Examples of hardware that support ML workloads include, but are not limited to, accelerators such as graphics processing units (GPUs), central processing units (CPUs) infrastructure, and storage solutions. Resource usage characteristics for ML workloads have resource profiles that are typically collected for debugging and execution timing studies. Resource profile collections currently use a timing framework that is independent of application or workload execution. It would be advantageous to use the same timing framework to jointly profile workload execution and resource usage to improve the correlation of workload execution and resource usage. In addition, joint profiling will enable fine-grained correlations such as at the task level or at the iteration level to be achieved using different ML parameter sets. Therefore, with the right amount of resources to support ML workloads, joint profiling can be a way to support effective and efficient resource usage and workload execution. Summary of the invention
[0004] Embodiments include systems, computer program products, and methods for employing an artificial intelligence platform to merge efficient and effective ML application execution with computational resource allocation.
[0005] In one embodiment, a system for use with an artificial intelligence (AI) platform is provided to train and maintain an ML application execution modeler to elastically execute machine learning workloads using application-based profiling. As shown, the system has a processing unit, such as a processor, operatively coupled to a memory, and an AI platform in communication with the processing unit. The AI platform is embedded with tools in the form of a profile manager, an ML manager, and a director. The profile manager is used to generate a joint profile including both ML application execution and resource usage data. The ML manager is used to identify one or more features and signatures from the joint profile and build an ML execution model for ML application execution and resource usage. The ML execution model utilizes (one or more) features and (one or more) signatures. The director is used to apply the ML execution model and provide one or more instructions for subsequent application execution. The application support of the director enables ML execution to elastically allocate and request one or more resources from a resource management component, wherein the elastic allocation supports application execution.
[0006] In another embodiment, a computer program product is provided to support elastic execution of ML workloads using application-based profiling. The computer program product includes a computer-readable storage medium having program code implemented therewith, wherein the program code is executable by a processor to train and maintain an ML application execution modeler to elastically execute ML workloads using application-based profiling. Program code is provided to generate a joint profile including both ML application execution and resource usage data. Program code is provided to identify one or more features and signatures from the joint profile and to build an ML execution model for ML application execution and resource usage. The ML execution model utilizes (one or more) features and (one or more) signatures. The program code applies the ML execution model and provides one or more instructions for subsequent application execution. The application of the program code supports and enables ML execution to elastically allocate and request one or more resources from a resource management component, wherein the elastic allocation supports application execution.
[0007] In yet another embodiment, a method for supporting elastic execution of ML workloads using application-based profiling is provided, including training and maintaining an ML execution model to elastically execute ML workloads using application-based profiling. A joint profile is generated that includes both ML application execution and resource usage data. One or more features and one or more signatures from the joint profile are identified, and an ML execution model for ML application execution and resource usage is constructed. The ML execution model utilizes the feature(s) and the signature(s). The ML execution model is applied, and the ML execution model provides one or more instructions to subsequent application execution. Application of the ML execution model supports and enables ML execution to elastically allocate and request one or more resources from a resource management component, wherein the elastic allocation supports application execution.
[0008] According to one aspect, a computer system is provided, comprising: a processing unit operatively coupled to a memory; an artificial intelligence (AI) platform in communication with the processing unit, having a tool for elastically executing one or more machine learning workloads using application-based profiling, the tool comprising: a profile manager for generating a joint profile including machine learning (ML) application execution and resource usage; a machine learning manager for identifying one or more features and one or more signatures from the generated joint profile, and building an ML execution model for ML application execution performance and resource usage, the ML execution model utilizing the identified one or more features and one or more signatures; and a director for applying the ML execution model and providing one or more instructions to subsequent application execution, including the ML execution model elastically allocating and requesting one or more resources from a resource management component to support application execution.
[0009] According to another aspect, a computer program product for supporting elastic execution of machine learning workloads using application-based profiling is provided, the computer program product including a computer-readable storage medium having program code implemented therewith, the program code executable by a processor to: generate a joint profile including machine learning (ML) application execution and resource usage; identify one or more features and one or more signatures from the generated joint profile, and build an ML execution model for ML application execution performance and resource usage, the ML execution model utilizing the identified one or more features and one or more signatures; and apply the ML execution model and provide one or more instructions for subsequent application execution, including elastically allocating and requesting one or more resources from a resource management component to support application execution.
[0010] According to another aspect, a method is provided, comprising: generating a joint profile including machine learning (ML) application execution and resource usage; identifying one or more features and one or more signatures from the generated joint profile, and constructing an ML execution model for ML application execution performance and resource usage, the ML execution model utilizing the identified one or more features and one or more signatures; applying the ML execution model and providing instructions for subsequent application execution, including elastically allocating and requesting one or more resources from a resource management component to support application execution.
[0011] These and other features and advantages will become apparent from the following detailed description of the currently preferred embodiments, taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings:
[0013] Figure 1A block diagram illustrating an overview of an ML federation profile for supporting efficient execution of ML applications and effective use of resources is depicted in accordance with a preferred embodiment.
[0014] Figure 2 A schematic diagram of a computer system with an artificial intelligence platform for supporting efficient execution of ML programs and effective allocation and use of computing resources is depicted according to a preferred embodiment.
[0015] Figure 3 According to a preferred embodiment, the diagram is depicted as Figure 2 A block diagram of the artificial intelligence platform and corresponding tools and their associated application programming interfaces shown and described in .
[0016] Figure 4 A flow chart illustrating a process for elasticity in ML modeling and computational resource allocation is depicted in accordance with a preferred embodiment.
[0017] Figure 5 A block diagram illustrating an example of a computer system / server of a cloud-based support system is depicted according to a preferred embodiment to implement the above-mentioned Figure 1-4 Describe the systems and processes.
[0018] Figure 6 A block diagram illustrating a cloud computer environment is depicted in accordance with a preferred embodiment.
[0019] Figure 7 A block diagram illustrating a set of functional abstraction model layers provided by a cloud computing environment is depicted in accordance with a preferred embodiment.
[0020] The features shown in the drawings are illustrative of some embodiments only, and not all embodiments, unless explicitly indicated otherwise. DETAILED DESCRIPTION
[0021] It is readily understood that the components of the present embodiments, as generally described and illustrated in the drawings herein, may be arranged and designed in a variety of different configurations. Therefore, the following detailed description of the embodiments of the apparatus, system, method, and computer program product of the present embodiments, as presented in the drawings, is not intended to limit the scope of the embodiments as claimed, but is merely representative of selected embodiments.
[0022] Throughout the specification, references to "a selected embodiment," "one embodiment," or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the phrases "a selected embodiment," "in one embodiment," or "in an embodiment" appearing in various places in this specification are not necessarily referring to the same embodiment.
[0023] The illustrated embodiments will be better understood by referring to the drawings, wherein like components are always represented by like reference numerals.The following description is intended to be exemplary only and only illustrates certain selected embodiments of devices, systems, and processes consistent with the embodiments claimed herein.
[0024] Machine learning follows the process of preparing data, training algorithms and generating machine learning models, and then making and refining predictions. Machine learning models generally fall into one of the following basic categories: supervised machine learning, unsupervised machine learning, enhanced machine learning, and deep learning. For example, deep learning uses neural networks as a model of the way the human brain processes information. The basic unit of a neural network is called a neuron, which is usually organized into layers. Neural networks work by simulating a large number of interconnected processing units that are abstract versions of neurons. There are usually three parts in a neural network, including an input layer with units representing the input field, one or more hidden layers, and an output layer with one or more units representing the target field. These units are connected with different connection strengths or weights. Input data is provided to the first layer, and values are propagated from each neuron to each neuron in the next layer. Finally, the results are delivered from the output layer. Deep learning complex neural networks are designed to mimic how the human brain works, so computers can be trained to support poorly defined abstractions and problems. Neural networks and deep learning are often used in image recognition, speech, and computer vision applications. Machine learning can learn and create foresight based on data. Machine learning can also use federated profiling data to gain insights into effectively allocating resources at fine-grained intervals to influence efficient workload execution.
[0025] It will be appreciated that ML models have a wide range of hardware requirements to appropriately support the processing needs of the models. Examples of such hardware resource requirements include, but are not limited to, RAM, disk space, GPU, and CPU. Management of resources can be allocated to support sharing of resources between multiple ML models. As shown and described herein and as illustrated in the accompanying drawings, ML workload information is associated with resource information to appropriately allocate resources to support application execution. Resource usage on ML routines is monitored and collected during execution and then used to predict and allocate resources for subsequent ML workloads. Thus, ML techniques are used for resource allocation for subsequent ML workloads.
[0026] refer to Figure 1, a block diagram (100) is provided to illustrate an overview of an ML joint profile that supports efficient execution of ML applications and effective use of resources. As shown, an ML execution model (110) is developed for ML application execution and resource usage. The ML execution model (110) uses machine learning techniques to learn, predict, and allocate resources for other ML applications. More specifically, the ML execution model (110) is a performance prediction model based on ML techniques. The execution model is constructed using historical data from previous executions of the ML application (120) and recently collected data from previous ML execution model iterations (130). The function of the ML execution model (110) is to correlate application execution performance with appropriate computing resources. As shown here, the ML execution model (110) interacts with a resource management system (140) to effectively and efficiently direct resources to one or more ML models for application execution (150). Therefore, as shown herein, the ML execution model (110) serves as a component for generating or collecting a joint profile for application and resource management.
[0027] refer to Figure 2 , depicting a schematic diagram of a computer system (200) having an artificial intelligence platform to support efficient execution of ML programs and efficient allocation and use of computing resources. As shown, a server (210) is provided that communicates with multiple computing devices (280), (282), (284), (286), (288), and (290) via a network connection (205). The server (210) is configured with a processing unit (212), such as a processor, which communicates with a memory (216) via a bus (214). The processor can be a CPU or a GPU. The server (210) is shown as having an artificial intelligence (AI) platform (250) to support collaboration to train machine learning models as a joint profile for application execution and resource use. The computing devices (280), (282), (284), (286), (288), and (290) communicate with each other and other devices or components via one or more wired and / or wireless data communication links, wherein each communication link can include one or more of a wire, a router, a switch, a transmitter, a receiver, etc. In this networked arrangement, the server (210) and network connection (205) enable communication detection, identification, and resolution.Other embodiments of the server (210) may be used with components, systems, subsystems, and / or devices other than those described herein.
[0028] The AI platform (250) is shown here as being configured to receive input (202) from various sources. For example, the AI platform (250) can receive input from a network (205) and utilize a data source (270), also referred to herein as a corpus or knowledge base, to create output or response content. The AI platform (250) is provided with tools to support and enable machine learning collaboration and to elastically execute machine learning workloads using application-based profiling.
[0029] The AI platform (250) serves as a platform to enable and support collaboration between application execution and resource allocation and management. In one embodiment, the AI platform (250) transmits the response output to a member operatively coupled to the server (210), such as one or more of the computing devices (280)-(290) across the network (205).
[0030] The AI platform (250) is shown here as having several tools to support neural model collaboration, including a profile manager (252), a machine learning (ML) manager (254), a mentor (256), and a resource manager (258). The profile manager (252) is used to generate or collect a joint profile including ML application execution and resource usage. The joint profile combines ML application execution details and resource usage data corresponding to the ML execution. Examples of ML application execution details include, but are not limited to, batch size, learning rate, number of iterations, model accuracy, etc. Examples of resources include, but are not limited to, the number of CPUs utilized, the type of CPU, the number of GPUs utilized, the type of GPU, etc. The profile manager (252) monitors or receives signals from the ML profile and collects resource usage of the corresponding ML model, and in one embodiment, collects resource usage of the ML routine that is part of the ML model. More specifically, it is understood in the art that ML model construction or training and the corresponding ML routine within the ML model require the use of computing resources including physical and virtual resources to support routine functions and corresponding processing. The profile manager (252) collects data associated with these resources and associated resource consumption from the corresponding ML model and the ML routines that are part of the ML model. The collected data is used to predict resource allocation for subsequent ML application executions, whether the subsequent application is the same, increased or decreased in comparison, or has a different set of parameters or configurations than the current workload. As shown here, the profile manager (252) utilizes at least one callback, shown here as a callback function A (252 A), to profile the application execution using one or more relevant parameters and to profile the resource usage information. In one embodiment, the creation of a profile of the resource usage information is the identification of computing resources used or required to support the execution of the application, and in one embodiment, a summary thereof. Thus, the profile manager (252) is used to capture the characteristics of the computing resources used and used in conjunction with the execution of the application using its parameter set.
[0031] As shown here, the server (210) is operably coupled to a data source (270). The data source (270) is shown here as having a library of ML models (272) obtained from an ML application. Although only one library is shown, it should be understood that the data source (270) can be configured with multiple libraries and the library (272) is for illustrative purposes. The library (272) is shown as having ML models, including ML models A (274 A ) and ML models B (274 B ). The number of ML models is for illustrative purposes and should not be considered limiting. In one embodiment, the ML models are organized in a library based on subject matter or functionality. Each of the ML models is shown as having an operationally coupled or associated profile, also referred to herein as a joint profile. More specifically, the ML models A (274 A ) Profile A (276 A ) shows that the ML model B (274 B ) Profile B (276 B ) is shown. The ML model (274) in the library (272) A ) and (274 B ) does not have to be coupled to a specific profile. An ML model can be constructed using multiple joint profiles. For example, as shown, the ML model (274N) is shown as a combination of profiles, e.g., profile X (276 C ), Profile Y (276 D ) and profile N (276 N ). Each profile combines the execution of a corresponding or operationally coupled model with resource usage or requirements to support the execution of the operationally coupled model. For example, in one embodiment, ML models can be built with the same parameters but different sets of computing resources. Although the resulting models are the same, the completed model convergence timing will be different due to resource constraints.
[0032] The ML manager (254) shown here is operatively coupled to the profile manager (252) for obtaining a profile (e.g., (276) A ) and (276 B )) to identify one or more features and signatures. Examples of features and signatures are machine learning framework, learning batch size, number of CPUs allocated, size of memory used, execution time per iteration, or algorithm convergence time. The ML manager (254) is shown here with an ML execution model (254) operatively coupled A ). More specifically, the model (254 A ) is an ML model that uses ML techniques to predict the use of computing resources for the execution of ML applications. The ML manager (254) builds and manages the model (254 A ), and execute the model (254 A ) to utilize the corresponding profile (e.g., (276 A )) to evaluate and predict the corresponding ML model (e.g., (274 A In one embodiment, user input is used to obtain the computational resource requirements for generating the joint profile and building the ML model (254 A ) features and characteristics (e.g., signatures). Thus, the ML manager (254) is used to create a model (274 A ) and (274 B ) to facilitate the allocation of computing resources to support ML model processing.
[0033] The instructor (256) is used to apply the ML execution model (254 A ), and using the output from the model (254 B ) to provide instructions for subsequent application execution. Output (254 B ) is a form of computing resources required to support efficient and effective execution of one or more ML applications. The allocation of resources is elastic, i.e., dynamic, and subject to change during execution. The director (256) utilizes a ML execution model (254) based on the ML execution model. A ) output (254 B ) to flexibly allocate and request one or more computing resources from the resource management component to support application execution. As shown here, the resource manager (258) is shown as being operatively coupled to the director (256). In one embodiment, the output (254 B ) is forwarded to the resource manager (258), which has instructions indicating computing resources and the assignment of resources to support application execution. As discussed herein, resource allocation is defined as being flexible, i.e., non-static. Similarly, corresponding to output (254 B) is a form of resource allocation action. ML execution model (254 A ) performs a resource allocation action, such as an instruction, to request available resources to support application processing. The resource allocation action may reduce or expand resources relative to previous application processing and execution, or in one embodiment, the resource allocation action may maintain a resource request. Similarly, the requested resources have corresponding attributes. The resource allocation action identifies resource attributes to support application processing and execution, similar to how resource allocation is elastic. Thus, the director (256) is used to support and process outputs from the ML model (254A).
[0034] Iteration is a term used in ML applications and indicates the number of times the algorithm parameters are updated. Training the corresponding neural network requires multiple iterations. With respect to the functionality described herein, the computational resource allocation may change across iterations based on the requirements of the ML execution model and the availability of resources. ML Execution Model (254 A ) responds to the dynamic characteristics and iterations of the ML model, and the corresponding output (254 B ) reflects this dynamic nature. The director (256) can change the allocation of computing resources across ML application iterations. In one embodiment, resource allocation changes can be based on application execution patterns, resource usage patterns, or a combination of both. Any changes to resource allocation are reflected in the output of the ML model iteration (254 B ), and corresponding resource allocation actions, such as in instructions.
[0035] In some demonstrative embodiments, the server (210) may be an IBM ® 4000 ® available from International Business Machines Corporation in Armonk, New York. The system may be augmented with the mechanisms of the illustrative embodiments described hereinafter. The system shown and described herein includes a tool for implementing machine learning based on an iterative optimization algorithm. The tool uses application-based profiling to implement elastic execution of ML workloads, thereby effectively and efficiently allocating computing resources to ML applications and their corresponding neural networks across multiple iterations of model building or training.
[0036] The profile manager (252), ML manager (254), director (256), and resource manager (258) (hereinafter collectively referred to as AI tools or AI platform tools) are shown as being implemented in or integrated into the AI platform (250) of the server (210). The AI tools may be implemented in a separate computing system (e.g., 290) connected to the server (210) across the network (205). Regardless of where embodied, the AI tools function in an iterative manner to support and enable corresponding elasticity of ML application execution modeling and resource allocation. Output (254) from the ML execution model (254) A) may be forwarded to the resource manager (258) to direct and assign computing resources to support the model (274 A ) and (274 B ) is in the form of executable instructions that represent the execution results of one or more models in the model.
[0037] The types of information processing systems that can utilize the AI platform (250) range from small handheld devices such as handheld computers / mobile phones (280) to large systems such as mainframe computers (282). Examples of handheld computers (280) include personal digital assistants (PDAs), personal entertainment devices such as MP4 players, portable televisions, and optical disc players. Other examples of information processing systems include pen or tablet computers (284), laptop or notebook computers (286), personal computer systems (288), and servers (290). As shown, various information processing systems can be networked together using a computer network (205). The types of computer networks (205) that can be used to interconnect various information processing systems include local area networks (LANs), wireless local area networks (WLANs), the Internet, public switched telephone networks (PSTNs), other wireless networks, and any other network topologies that can be used to interconnect information processing systems. Many information processing systems include non-volatile data storage devices, such as hard disk drives and / or non-volatile memories. Some information handling systems may use separate non-volatile data storage (eg, the server (290) uses non-volatile data storage (290) A ), while mainframe computers (282) use non-volatile data storage (282 A ). Non-volatile data storage (282 A ) can be a component external to the various information handling systems, or can be internal to one of the information handling systems.
[0038] The information processing system used to support the AI platform (250) can take many forms, some of which are Figure 2 For example, an information handling system may take the form of a desktop, server, portable computer, laptop computer, notebook computer, or other form factor computer or data processing system. In addition, an information handling system may take other form factors such as a personal digital assistant (PDA), a gaming device, an ATM machine, a portable telephone device, a communication device, or other devices that include a processor and memory.
[0039] An application programming interface (API) is understood in the art as a software intermediary between two or more applications. Figure 2 In the AI platform (250) shown and described in the accompanying drawings, one or more APIs may be used to support one or more of the tools (252)-(258) and their associated functionality. Figure 3 , a block diagram (300) showing tools (252)-(258) and their associated APIs is provided. As shown, multiple tools are embedded within an AI platform (305), wherein the tools include a profile manager (352) associated with API0 (312), an ML manager (354) associated with API1 (322), a director (356) associated with API2 (332), and a resource manager (358) associated with API3 (342). Each API can be implemented in one or more languages and interface specifications. API0 (312) provides functional support for generating a joint profile as a combination of application execution details and application execution resource usage; API1 (322) provides functional support for building and maintaining an ML execution model for characterizing and identifying ML application execution and computing resource usage; API2 (332) provides functional support for elastic application and requesting computing resources based on output from the ML execution model; and API3 (342) provides functional support for indicating and specifying computing resources to support execution generated by one or more models and their corresponding neural networks.
[0040] As shown, each of the APIs (312), (322), (332) and (342) are operatively coupled to an API coordinator (360), or coordination layer, which is understood in the art to be used as an abstraction layer to transparently bring together separate APIs as threads. In one embodiment, the functionality of the separate APIs may be combined or combined. Thus, the configuration of the APIs shown herein should not be considered restrictive. Therefore, as shown herein, the functionality of the tools may be implemented or supported by their respective APIs. In another embodiment, the separate APIs may be processed in a distributed computing resource to achieve resiliency, scalability, and availability.
[0041] refer to Figure 4, a flow chart (400) is provided to illustrate a process for elasticity of ML modeling and computational resource allocation. As shown, a request to execute an application, also referred to herein as a run request, is received (402), having parameters for application details and system profiling details. Execution instructions are created (404) based on the request received from step (402) and based on an ML execution modeler (450), which requires historical processing and application parameters of (one or more) models. In one embodiment, if historical executions are unknown or unavailable, user-specified inputs may be utilized separately. Possible execution instructions include, but are not limited to, setting limits on memory usage, and allocating resources for utilization. With respect to memory usage, limits may be set for application instances based on one or more previous iterations or historical data from one or more previous runs. With respect to resource utilization, previous historical data may contain information about resource utilization for the same tuning parameters for a trained model but on different computing platforms, such as having different numbers of CPUs, CPU types, different numbers of GPUs, GPU types, and NVLink (based on a wired communication protocol) connections. These instructions are for illustrative purposes and should not be considered limiting. Thus, instructions are created based on the ML execution model and parameters corresponding to the run request.
[0042] The instructions created at step (404) are used to interact with resource management to obtain the required resources to support the run request and perform resource allocation within the request parameters (406). More specifically, the instructions obtained at step (404) are used to allocate computing resources. For example, in one embodiment, the allocation can be to a container of a specified size to allow for flexible execution, thereby allowing for potential dynamic scaling with respect to the number of CPU cores, CPU memory, GPU type, and number of GPUs. Similarly, in one embodiment, the allocation can be to packaged containers on the same machine if possible or desired. In another embodiment, the allocation can be to GPU sharing. After the resources have been allocated, one or more ML applications are executed (408) and profile information of the executed ML applications is collected (410). In one embodiment, the collection uses a callback function for ML application details and resource usage information. The collected ML application execution data (referred to herein as dynamic application information) is transmitted to the ML execution modeler (450). After step (410) and profile information collection, it is determined whether a termination threshold has been reached (412). A negative response to the determination of step (410) is followed by a return to step (404), and an affirmative response ends the profile collection and development process.
[0043] The ML execution modeler (450) receives input from application execution and interaction with resource management. The ML execution modeler (450) receives both static input data (460) and dynamic input data (470). The static input data is in the form of input data information (462), tuning parameter ranges (464), and static computation information such as CPU and GPU architecture, memory and storage (466). The dynamic input data 470 is in the form of settings of parameters 472 and resource usage information 474. Thus, the ML execution modeler (450) utilizes the application execution information and resource information to identify optimal resources and build a forecast of the requirements to support the ML application.
[0044] like Figure 4 As shown, the callback function is used by the executed or executing ML application to identify ML application data and ML application resource usage, thereby generating a joint profile of ML workload and resource usage. In one embodiment, the joint profile may contain timestamp data with ML application specific features or signatures and resource usage. The ML execution model built in the ML execution modeler utilizes (one or more) generated joint profiles containing application execution details. More specifically, the ML execution model is dynamic because it receives and applies updates from (one or more) joint profiles. The ML execution model is built using data from a previously executed run or recently collected data from a previous iteration in the same run. The features and signatures contained in the joint profile and the updates dynamically applied within the joint profile provide instructions to the subsequent application execution of the iteration, and relate the application execution performance to the appropriate computing resources (in one embodiment, heterogeneous computing resources). In one embodiment, a set of APIs are used to support callback functions from the executed or executing ML program. The API set can be called from an application in any ML framework. Thus, the federated profile(s) are used to build the ML execution model in the ML execution modeler, and once built, the federated profile(s) are applied by the ML execution modeler to request effective resources from the resource management component for efficiently executing the ML application in various iterations.
[0045] The following is a sample trace output from the API to capture the details of how the application runs.
[0046] 2018-05-17 02:51:34.288301 Running on a machine with 28 cores and architecture type: x86_64
[0047] 2018-05-17 02:51:34.288305 Running on CPU core - [3] for the process: psutil.Process(pid=4954, name='python', started='22:51:26') CUDA_VISIBLE_DEVICES:[7]; CudaV.:384.81; Device [7] Type K80
[0048] 2018-05-17 02:51:34.288301 batch size 1024
[0049] 2018-05-17 02:51:34.288352 Period 1 starts
[0050] 2018-05-17 02:51:35.959277 CPU utilization: 68.4% x 1 core
[0051] 2018-05-17 02:51:35.959277 CPU memory utilization: 1562587136 (RSS) 567708688384 (VMS)
[0052] 2018-05-17 02:51:35.959277 GPU[7] Total memory: 11995578368
[0053] 2018-05-17 02:51:35.959277 GPU[7] Memory used: 11485577216
[0054] 2018-05-17 02:51:35.959277 GPU[7] utilization: 99%
[0055] 2018-05-17 02:51:35.959277 GPU[7] Memory utilization: 27%
[0056] 2018-05-17 02:51:35.960202 Elapsed time of period 1 - 0:00:01.671845; accuracy - 0.6077724358974359
[0057] As shown, the API captures details of how the application runs, including batch size, input information, data type, memory utilization, and time taken to execute ML application iterations. The API can be time or logic driven. Thus, the API shown in this example captures ML application execution data and resource usage, and transmits the captured data to the ML execution modeler for ML application instructions for subsequent ML application iterations.
[0058] Aspects of the functional tools (252)-(258) and their associated functionality may be embodied in a computer system / server at a single location, or in one embodiment, may be deployed in a cloud-based system that shares computing resources. Figure 5 , a block diagram (500) is provided showing an example of a computer system / server (502), which is hereinafter referred to as communicating with a cloud-based support system to implement the above referenced Figure 1-4 The host computer (502) of the process described herein can be operated with many other general or special computing system environments or configurations. Examples of known computing systems, environments and / or configurations suitable for use with the host computer (502) include, but are not limited to, personal computer systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and file systems (e.g., distributed storage environments and distributed cloud computing environments) including any of the above systems, devices, and their equivalents.
[0059] The host (502) can be described in the general context of computer system executable instructions, such as program modules, executed by the computer system. In general, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. The host (502) can be practiced in a distributed cloud computing environment (580), where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located in local and remote computer system storage media including memory storage devices.
[0060] like Figure 5As shown, the host (502) is shown in the form of a general-purpose computing device. The components of the host (502) may include, but are not limited to, one or more processors or processing units (504), such as a hardware processor, a system memory (506), and a bus (508) that couples various system components including the system memory (506) to the processor (504). The bus (508) represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. As examples and not limitations, these architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus. The host (502) typically includes various computer system readable media. Such media can be any available media that can be accessed by the host (502), and it includes volatile and non-volatile media, removable and non-removable media.
[0061] The memory (506) may include computer system readable media in the form of volatile memory, such as random access memory (RAM) (530) and / or cache memory (532). By way of example only, a storage system (534) may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, and commonly referred to as a "hard drive"). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk") may be provided, as well as an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM, or other optical media. In this case, each may be connected to the bus (508) via one or more data media interfaces.
[0062] A program / utility (540) having a set (at least one) of program modules (542) as well as an operating system, one or more application programs, other program modules, and program data may be stored in the memory (506) by way of example and not limitation. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. The program modules (542) generally perform the functions and / or methods of the embodiments to dynamically transmit assessment query identification and processing. For example, the set of program modules (542) may include, for example, Figure 1 Tools (252)-(258) described in.
[0063] The host (502) may also communicate with one or more external devices (514), such as a keyboard, pointing device, etc.; a display (524); one or more devices that enable a user to interact with the host (502); and / or any device that enables the host (502) to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface (522). In addition, the host (502) may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter (520). As described, the network adapter (520) communicates with other components of the host (502) via a bus (508). In one embodiment, multiple nodes of a distributed file system (not shown) communicate with the host (502) via the I / O interface (522) or via the network adapter (520). It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the host (502). Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems.
[0064] In this document, the terms "computer program medium," "computer usable medium," and "computer readable medium" are used to generally refer to media such as main memory (506), including RAM (530), cache (532), and storage systems (534), such as removable storage drives and hard disks installed in hard drives.
[0065] A computer program (also referred to as computer control logic) is stored in the memory (506). The computer program may also be received via a communication interface, such as a network adapter (520). When executed, such a computer program enables the computer system to perform the features of the present embodiment as discussed herein. In particular, when executed, the computer program enables the processing unit (504) to perform the features of the computer system. Thus, such a computer program represents a controller of the computer system.
[0066] Computer readable storage medium can be a tangible device capable of retaining and storing instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: a portable computer disk, a hard disk, a dynamic or static random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a magnetic storage device, a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a convex structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. Computer readable storage medium as used herein should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0067] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0068] The computer-readable program instructions for performing the operation of the present embodiment can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, programming languages include object-oriented programming languages, such as Java, Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server cluster. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In certain embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can be executed by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit, so as to perform the aspects of the embodiment.
[0069] In one embodiment, the host (502) is a node of a cloud computing environment. As is known in the art, cloud computing is a service delivery model for enabling convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with a service provider. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.
[0070] Examples of these features include:
[0071] On-demand self-service: Cloud consumers can unilaterally and automatically provision computing capabilities, such as server time and network storage, as needed without requiring manual interaction with the service provider.
[0072] Wide Area Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0073] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is a sense of location independence, as consumers typically do not control or know the exact location of the provided resources, but are able to specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0074] Rapid Elasticity: Capacity can be quickly and elastically provisioned, in some cases automatically, to scale up quickly, and quickly released to scale down quickly. To the consumer, the capacity available for provisioning often appears to be unlimited and can be purchased in any quantity at any time.
[0075] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some abstraction level appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.
[0076] The service model is as follows:
[0077] Software as a Service (SaaS): The capability provided to consumers is to use the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0078] Platform as a Service (PaaS): The capability provided to consumers is to deploy consumer-created or acquired applications onto the cloud infrastructure, where the applications are created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possible configuration of the application hosting environment.
[0079] Infrastructure as a Service (IaaS): The capability provided to consumers is the provisioning of processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0080] The deployment model is as follows:
[0081] Private Cloud: The cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0082] Community cloud: The cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0083] Public cloud: Cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services.
[0084] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community or public) that remain a unique entity but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0085] The cloud computing environment is service-oriented, with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure consisting of a network of interconnected nodes.
[0086] Reference now Figure 6 , illustrative cloud computing network (600). As shown, the cloud computing network (600) includes a cloud computing environment (650) having one or more cloud computing nodes (610), with which local computing devices used by cloud consumers can communicate. Examples of these local computing devices include, but are not limited to, personal digital assistants (PDAs) or cellular phones (654A), desktop computers (654B), laptop computers (654C), and / or automotive computer systems (654N). Individual nodes within a node (610) can also communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows the cloud computing environment (600) to provide infrastructure, platforms, and / or software as a service for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that Figure 6 The types of computing devices (654A-N) shown in are intended to be illustrative only, and the cloud computing environment (650) may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).
[0087] Reference now Figure 7 , showing that Figure 6 A set of functional abstraction layers (700) provided by the cloud computing network. It should be understood in advance that Figure 7The components, layers, and functions shown in are intended to be illustrative only, and embodiments are not limited thereto. As depicted, the following layers and corresponding functions are provided: hardware and software layer (710), virtualization layer (720), management layer (730), and workload layer (740).
[0088] The hardware and software layer (710) includes hardware and software components. Examples of hardware components include mainframes, in one example, System; A server based on RISC (Reduced Instruction Set Computer) architecture, in one example is System; IBM System; IBM systems; storage devices; network and networking components. Examples of software components include network application server software, in one example IBM application server software; and database software, in one instance IBM Database software. (IBM, zSeries, pSeries, xSeries, BladeCerter, WebSphere and DB2 are trademarks of International Business Machines Corporation, registered in many jurisdictions throughout the world).
[0089] The virtualization layer (720) provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients.
[0090] In one example, the management layer (730) may provide the following functionality: resource provisioning, metering and pricing, a user portal, service tier management, and SLA planning and fulfillment. Resource provisioning provides dynamic procurement of computing resources and other resources used to perform tasks within a cloud computing environment. Metering and pricing provide cost tracking when resources are utilized in a cloud computing environment, as well as billing or invoicing for consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. The user portal provides access to the cloud computing environment for consumers and system administrators. Service tier management provides cloud computing resource allocation and management so that the required service tier is met. Service tier agreement (SLA) planning and fulfillment provides pre-scheduling and procurement of cloud computing resources, where future demand is anticipated based on the SLA.
[0091] The workload layer (740) provides examples of functionality that can take advantage of a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include, but are not limited to: mapping and navigation; software development and lifecycle management; virtual classroom education delivery; data analytics processing; transaction processing; ML execution modeling.
[0092] It will be appreciated that disclosed herein is a system, method, apparatus, and computer program product for evaluating natural language input, detecting inquiries in corresponding communications, and resolving the detected inquiries with answers and / or supporting content.
[0093] Although specific embodiments of the present invention have been shown and described, it will be apparent to those skilled in the art that changes and modifications may be made based on the teachings herein without departing from the present invention and its broader aspects. Therefore, the appended claims will cover within their scope all such changes and modifications within the true spirit and scope of the embodiments. In addition, it should be understood that the embodiments are limited only by the appended claims. It will be understood by those skilled in the art that if the specific number of the introduced claim elements is intended, such intention will be explicitly stated in the claims, and in the absence of such a statement, there is no such limitation. For non-limiting examples, to aid understanding, the appended claims contain the use of the introductory phrases "at least one" and "one or more" to introduce claim elements. However, the use of such phrases should not be interpreted as implying that the introduction of a claim element by the indefinite article "one" or "an" will limit any particular claim containing such introduced claim element to an embodiment containing only one such element, even when the same claim includes the introductory phrases "one or more" or "at least one" and an indefinite article such as "one" or "an"; the same applies to the use of definite articles in the claims.
[0094] Embodiments of the present invention may be systems, methods, and / or computer program products. In addition, selected aspects of the present embodiments may take the form of a full hardware embodiment, a full software embodiment (including firmware, resident software, microcode, etc.), or a combination of software and / or hardware aspects, which embodiments may all be collectively referred to herein as "circuits," "modules," or "systems." In addition, aspects of embodiments of the present invention may take the form of a computer program product implemented in a computer-readable storage medium (or multiple media), which has computer-readable program instructions for causing a processor to perform aspects of embodiments of the present invention. The disclosed systems, methods, and / or computer program products so implemented are operable to improve the functionality and operation of an artificial intelligence platform to model ML application execution and resource usage, including efficient and effective ML application performance and resource management.
[0095] Computer readable storage medium can be a tangible device capable of retaining and storing instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: a portable computer disk, a hard disk, a dynamic or static random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a magnetic storage device, a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a convex structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. Computer readable storage medium as used herein should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0096] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0097] The computer-readable program instructions for performing the operation of the present embodiment can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, the programming language includes object-oriented programming languages, such as Java, Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" programming languages, and functional programming languages, such as Haskell, Lisp or similar programming languages. The computer-readable program instructions can be executed completely on the user's computer, partly on the user's computer, executed as an independent software package, partly on the user's computer and partly on a remote computer, or completely on a remote computer or server cluster. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In some embodiments, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuit so as to perform aspects of the present embodiment.
[0098] Various aspects of the present embodiment are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to the embodiments. It will be understood that each frame of the flowchart and / or block diagram and the combination of frames in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0099] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0100] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0101] Flowchart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to various embodiments of embodiments of the present invention.In this regard, each frame in flow chart or block diagram can represent the module, segment or part of instruction, which includes one or more executable instructions for realizing the specified logical function.In some alternative embodiments, the function mentioned in the frame may not occur in the order mentioned in the figure.For example, two frames shown continuously can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the function involved.It will also be noted that the combination of the frame in each frame of block diagram and / or flow chart illustration and block diagram and / or flow chart illustration can be realized by the dedicated hardware-based system that performs the specified function or action or performs the combination of special hardware and computer instruction.
[0102] It should be understood that although specific embodiments are described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the embodiments. Therefore, the scope of protection of the embodiments is limited only by the appended claims and their equivalents.
Claims
1. A computer system comprising: a processing unit operatively coupled to the memory; An artificial intelligence (AI) platform, in communication with the processing unit, having a tool for elastically executing one or more machine learning workloads using application-based profiling, the tool comprising: A profile manager for generating a joint profile including ML application execution and resource usage for one or more machine learning (ML) applications; a machine learning manager to identify one or more features and one or more signatures from the generated federated profile, and to construct an ML execution model configured to relate ML application execution performance to one or more computing resources, the ML execution model utilizing the identified one or more features and one or more signatures, wherein the ML execution model is configured to employ one or more ML techniques to assess one or more resource requirements of at least one of the one or more ML applications and to generate outputs to identify one or more computing resources to support execution of the one or more ML applications; and and a director that applies the ML execution model and provides one or more instructions using the generated output, including the ML execution model elastically allocating and requesting from a resource management component one or more resources to at least one of the one or more ML applications to support application execution, wherein the ML execution model is configured to receive and apply updates from the federation profile and subject the allocation to changes during execution of the one or more ML applications.
2. The computer system of claim 1 , wherein elastic allocation comprises the ML execution model performing resource allocation actions regarding resource availability and support for application processing, the resource allocation actions being used to reduce or expand any resource, and further, wherein the one or more resources reduced or expanded have the same or different attributes.
3. The computer system of claim 2, further comprising the director varying computation allocation across iterations of one or more ML applications, including invoking the resource allocation actions based on application execution patterns and resource usage patterns.
4. The computer system of claim 1 , wherein the federated profile generation further comprises the profile manager monitoring and collecting resource usage data about one or more ML routines and using the monitored data to predict allocations for future ML applications.
5. The computer system of claim 1, wherein the profile manager utilizes one or more callback functions to profile application execution using one or more application-related parameters and profile resource usage information.
6. The computer system of claim 5, wherein the generated federated profile is collected for a distributed ML application in a distributed computing system.
7. The computer system of claim 1, wherein identification of one or more features and one or more signatures for joint profile generation and construction of an execution model is obtained using user input.
8. A computer program product for supporting elastic execution of machine learning workloads using application-based profiling, the computer program product comprising a computer-readable storage medium having program code embodied therewith, the program code executable by a processor to: generating a joint profile for one or more machine learning (ML) applications including ML application execution and resource usage; identifying one or more features and one or more signatures from the generated joint profile, and constructing an ML execution model configured to relate ML application execution performance to one or more computing resources, the ML execution model utilizing the identified one or more features and one or more signatures, wherein The ML execution model is configured to employ one or more ML techniques to evaluate one or more resource requirements of at least one of the one or more ML applications and generate an output to identify one or more computing resources to support execution of the one or more ML applications; as well as Applying the ML execution model and providing one or more instructions using the generated output includes elastically allocating and requesting from a resource management component one or more resources to at least one of the one or more ML applications to support application execution, wherein the ML execution model is configured to receive and apply updates from the federation profile and subject the allocation to changes during execution of the one or more ML applications.
9. A computer program product according to claim 8, wherein elastic allocation includes program code for performing resource allocation actions regarding resource availability and support for application processing, wherein the resource allocation actions are used to reduce or expand any resources, and further, wherein the reduced or expanded resources have the same or different attributes.
10. The computer program product of claim 9, further comprising the processor being operable to vary computing resource allocation across one or more iterations of the ML application, including invoking the resource allocation action based on application execution patterns and resource usage patterns.
11. The computer program product of claim 8, wherein the joint profile generation further comprises program code for monitoring and collecting resource usage data about one or more ML routines and using the monitored data to predict allocations for future ML applications.
12. The computer program product of claim 8, wherein the program code to generate the joint profile utilizes one or more callback functions to profile application execution using one or more application-related parameters and profile resource usage information.
13. The computer program product of claim 12, wherein the generated federated profile is collected for a distributed ML application in a distributed computing system.
14. The computer program product of claim 8, wherein identification of the one or more features and the one or more signatures used in joint profile generation and construction of the execution model is obtainable using user input.
15. A method for supporting elastic execution of machine learning workloads using application-based profiling, comprising: generating a joint profile for one or more machine learning (ML) applications including ML application execution and resource usage; identifying one or more features and one or more signatures from the generated joint profile, and constructing an ML execution model configured to relate ML application execution performance to one or more computing resources, the ML execution model utilizing the identified one or more features and one or more signatures, wherein the ML execution model is configured to employ one or more ML techniques to evaluate one or more resource requirements of at least one of the one or more ML applications and generate output to identify one or more computing resources to support execution of the one or more ML applications; Applying the ML execution model and providing instructions using the generated output includes elastically allocating and requesting one or more resources from a resource management component to at least one of the one or more ML applications to support application execution, wherein the ML execution model is configured to receive and apply updates from the federation profile and subject the allocation to changes during execution of the one or more ML applications.
16. The method of claim 15, wherein elastic allocation comprises performing resource allocation actions regarding resource availability and support for application processing, wherein the resource allocation actions are used to reduce or expand any resource, and further, wherein the reduced or expanded resources have the same or different attributes.
17. The method of claim 16, further comprising varying computing resource allocation across one or more iterations of one or more ML applications, including invoking the resource allocation action based on application execution patterns and resource usage patterns.
18. The method of claim 15, wherein generating the federated profile further comprises monitoring and collecting resource usage data about one or more ML routines, and using the monitored data to predict allocations for future ML applications.
19. The method of claim 15, wherein generating the joint profile utilizes one or more callback functions to profile application execution using one or more application-related parameters and profile resource usage information.
20. The method of claim 19, wherein the generated federated profile is collected for a distributed ML application in a distributed computing system.
21. The method of claim 15, wherein identification of one or more features and one or more signatures for joint profile generation and construction of an execution model is obtained using user input.
Citation Information
Patent Citations
Determining an allocation of computing resources for a job
US10452441B1
Estimation of resources utilized by deep learning applications
US20190325307A1