Resource exchange processing method and apparatus, equipment, storage medium, and program product

The P4P system addresses inefficiencies in software licensing by using a resource estimation model to predict performance and optimize resource allocation, ensuring timely and cost-effective execution of software tasks.

JP2025016699AActive Publication Date: 2025-02-04IERUS TECH
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024193564
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-21
Filing Date
2024-11-05
Publication Date
2025-02-04
Estimated Expiration
2043-03-22

AI Technical Summary

Technical Problem

Current software licensing models, particularly for Modeling & Simulation (M&S) software, lack the ability to predict performance accurately and adjust resource allocation based on actual measurement time, leading to inefficiencies and unpredictable costs in cloud and on-premises environments.

Method used

A 'Pay for Performance' (P4P) system that uses a resource estimation model to analyze software work requirements, predict actual measurement time, and optimize resource allocation, providing users with a price range based on performance and demand, allowing for timely and cost-effective execution.

Benefits of technology

Enables users to optimize performance and pricing by predicting actual measurement time and resource needs, ensuring efficient use of cloud and on-premises resources, reducing costs, and providing accurate performance adjustments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025016699000001_ABST
    Figure 2025016699000001_ABST
Patent Text Reader

Abstract

To provide a system and a method for optimizing prices based on the time it takes a customer to complete a computer-based service.SOLUTION: A method provides a range of prices for performance actually measured computer processing time estimate values for performing a desired software task. If a user uploads data for a desired software task to a service provider, the service provider analyzes the data using a resource estimation model to determine resource options, converts the resource options into the range of prices and corresponding performance actually measured time estimate value for performing the desired software task, and allows the user to select a particular price and corresponding performance actually measured time estimate value, and the user requests for performing the selected software task using the resource options associated with the selected price and the corresponding actually measured time.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Priority is claimed to U.S. patent application Ser. No. 17 / 699,316, filed March 21, 2022, the entire contents of which are incorporated herein by reference.

[0002] The disclosed invention relates generally to computer-implemented systems and methods for providing computer-based services, and more particularly to systems and methods for providing a price range to a customer for customizable delivery of computer-based service performance, where the price can be optimized based on the time it takes the customer to complete the computer-based service. [Background technology]

[0003] Traditionally, customers access software based on two primary licensing models: perpetual and term licenses. With perpetual licenses, customers typically pay a fixed fee to access a set number of instances of the software. Companies using perpetual licensing models also tend to offer customers the option to pay a maintenance fee (usually on an annual basis) to maintain technical support and access to the latest versions of the software. With term licenses, customers are limited to accessing a set number of instances for a set period of time and may be billed to customers as a monthly or annual subscription.

[0004] In either case, licenses are further subdivided into user-locked, node-locked, key-locked, and floating. User-locked licenses are intended to restrict the software to a single user and are usually enforced by checking for a specific username. Node-locked licenses similarly function under the assumption that the license is locked to a specific computer. Key-locked licenses are tied to a hardware license enforcement device, such as a USB key, that can be moved from computer to computer. Finally, floating licenses allow users to access the software from anywhere on the network by checking the number of instances they are entitled to on the license server. An example of user-locked, node-locked, and floating licensed software is MATLAB (registered trademark) by Mathworks.

[0005] These methods have more or less defined the status quo of software licensing for decades. More recently, the widespread use of web-based technologies, the proliferation of cloud computing solutions, and the near-ubiquitous availability of Internet access has led to the popularity of the Software-as-a-Service (SaaS) business model. SaaS licensing models most often work similarly to time-limited licensing approaches, where a user receives a certain level of access for a certain period of time. A common example of this is the SaaS model, which allows software features to be added for a monthly fee per user or group of users. Similar examples provide a customer with access to a given volume (i.e., the number of users using the software simultaneously or the number of concurrently running instances of the software) for a period of time.

[0006] Modeling & Simulation (M&S) software has historically been limited to traditional licensing schemes due to the need for specialized IT hardware and infrastructure. Many types of M&S software, such as Computational Fluid Dynamics (CFD), Computational Electromagnetics (CEM) and structural analysis, are computationally intensive and can require significant investments in computer resources for individual workstations or cluster configurations. The computational burden can result from the large size of individual simulations in terms of memory and runtime, or from the amount of simulations required (e.g. high-dimensional parametric analysis and optimization).

[0007] In this model, users of Computational Physics (CP) M&S software are limited in the overall achievable throughput of their simulations due to (1) a lack of computing resources and (2) a lack of licenses that scale across many resources. The seemingly infinite computational scale of cloud computing resources provided through services such as Amazon Web Services, Microsoft Azure, and Google Cloud offers a way to solve the first problem. Users can choose from individual instances with a variety of processing, memory, Graphical Processing Unit (GPU), network, and storage capabilities to instantiate almost any configuration, whatever the volume required. In this case, users are limited only by organizational and project budgets for cloud computing resources and the affordability of licenses.

[0008] However, this last issue remains significant. To date, there are two Modeling & Simulation SaaS cloud business models. In the first, customers can lease the software for a fixed usage amount. This is similar to buying a fixed number of time-limited floating licenses, which undermines the true potential of SaaS cloud computing. The second approach is a more flexible (and predictable) usage-based model that is best suited to address surge M&S needs.

[0009] The usage-based licensing model allows users to enjoy the benefits of SaaS cloud-based modeling and simulation. However, users have no way to determine in advance the cost of running a simulation, nor can they predict diminishing returns when adding additional processors or GPUs. Furthermore, users cannot pay in a timely manner when they need it.

[0010] Currently, there is no general way to request services from a cloud provider to get a given desired performance. The best a user can do at present is to choose to allocate more resources than the minimum required and hope for better performance compared to choosing fewer resources. This requires extensive usage experience with a particular set of resources to develop a feel for the relationship between performance and number of resources.

[0011] Currently, without expertise in both high performance computing and the modeling and simulation software in question, users cannot tune performance based on the price they are willing to pay. This multi-domain expertise prevents even advanced users from achieving optimal job performance, because "optimal" can mean a particular balance between wall-clock time and price. While some may acquire this multi-domain expertise, the results of the tuning exercise may not be quantifiable and may be inaccurate. Moreover, existing licensing models do not allow for this type of performance tuning, preventing users from even attempting it.

[0012] Current software does not utilize historical performance data when utilizing on-premise or cloud-based resources. Due to the wide variety of resource options available via cloud providers, it is unlikely that current software can effectively use data collected in another computing environment. What is needed is a method and system that provides customers with better information regarding quoted prices, providing the opportunity for customers to optimise prices based on the need for a more timely solution or a desire to minimise costs. Summary of the Invention

[0013] The disclosed invention is a computer-implemented system and method in which a service provider offers a range of prices for a range of performance-based computer processing time projections to execute a desired software task. A user of the system and method prepares data for the desired software task using a computer-implemented pre-processing method offered by the service provider. The user, via a computer system, uploads the data to the service provider's computer system and requests the service provider's services to execute the desired software task at the selected performance-based time projections.

[0014] The service provider analyzes the data using the resource estimation model at the service provider's computer system to determine resource options. The resource options are converted into price ranges and corresponding performance time estimates for performing the desired software tasks. The service provider presents to the user, via the service provider's computer system, a list of price ranges and corresponding performance time estimates for performing the desired software tasks.

[0015] The user selects a particular price and corresponding performance time estimate, and requests that the service provider perform the desired software work using resource options associated with the selected price and corresponding time. The service provider performs the desired software work using resource options associated with the selected price and corresponding time. The service provider provides the results of the execution of the desired software work to the user, bills the user for the results, and receives payment for the results from the user.

[0016] Performance actual time prediction data may be collected from a resource estimation model during execution of the desired software activity. Using the resource estimation model includes identifying components that impact the actual time of the desired software activity and identifying potential resources. Performance actual time data is collected for each potential resource component. The resource estimation model is optimized to determine the actual performance time, and the resource estimation model is executed to predict the actual performance time required to complete execution of the desired software activity.

[0017] Gathering performance actual time prediction data on potential resources for each component of the desired software activity further includes instantiating a particular set of input values ​​from the desired software activity and instantiating a particular set of resources from the list of resource options. The desired software activity is executed on the potential resources and performance actual time prediction data is extracted. The input parameters and actual time data are saved. These steps are repeated to optimize the accuracy of the resource estimation model in predicting actual times.

[0018] Optimizing the resource estimation model to predict the performance actual time forecast value further includes selecting an initial resource estimation model and initializing each control parameter of the initial resource estimation model. The resource estimation model is run on a set of input values ​​and a resource estimation model error is evaluated to determine whether the resource estimation model error is less than a threshold at which optimization is completed.

[0019] Executing the resource estimation model to predict performance time to complete execution of the desired software activity further includes obtaining a list of available resources, selecting an initial resource set, and obtaining user input data. The optimized resource estimation model is executed, appended to and sorted in a performance time forecast list to initiate pricing of the performance time forecasts. The lowest price is determined from the resource set with the lowest predicted performance time. [Brief description of the drawings]

[0020] [Figure 1] The process for using the cloud version is shown below. [Diagram 2] The process for on-premise use is shown below. [Diagram 3] This shows the development process of the Resource Estimation Model (REM). [Figure 4] 1 shows a flowchart of a run-time performance data collection process used to initialize a resource estimation model. [Diagram 5] 1 shows a flow chart of a resource estimation model optimization process. [Figure 6] 13 shows a flowchart of a resource estimation model execution process. [Figure 7] 1 illustrates options presented to a user for both city-level and state-level simulations of predicting large-scale weather patterns using cloud-based resources in Example 1. [Figure 8] The results of the cost and performance for the computational fluid dynamics of an automobile in Example 2 are shown. [Figure 9] An exemplary communication system 10 is shown in which a customer 11 and a P4P service provider 15 can communicate and conduct business. [Figure 10] An exemplary computing system 20 that can be used in accordance with the disclosed systems and methods is shown. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021] The following description sets forth in detail the preferred embodiment of the invention, it being understood that the invention is not limited in its application to the details of the arrangement of parts disclosed herein, described and illustrated in the drawings, and other embodiments and methods of carrying out the invention will be described.

[0022] "Pay for Performance" (P4P) is a system and method for executing software functions, performing the required software tasks at a price determined by the customer's desire for runtime performance (wall clock). The P4P model offers users all of the aforementioned benefits of SaaS and cloud-based computing, while providing users with better information regarding quoted prices and the opportunity to optimize prices based on the need for a more timely solution or the desire to minimize costs.

[0023] definition P4P Service Provider: A company that offers P4P licensed software services. P4P Software: Software that can use the P4P licensing model. Cloud service provider: A company that offers infrastructure-as-a-service (IaaS), such as Amazon Web Services or Microsoft Azure. Customer: Any individual or business wishing to use the P4P Licensed Software Services. User: An individual or processor within a Customer organization that interacts with the P4P Service. Job: A computer processing task requested by a user. Performance: The total measured time required for a requested job to execute from start to finish. Resources: Examples of resources include CPU cores (or devices with equivalent CPU functionality), memory (e.g., RAM), storage (e.g., hard drive space), network bandwidth, GPUs, TPUs, FPGAs, specialized chipsets (e.g., ASICs). Time may also be considered a resource. Price: The customer's cost for the job. Resource Set: A combination of resources. AWS: Amazon Web Services.

[0024] The P4P process uses a phased approach to optimize the performance-price tradeoff for the customer. The P4P software approach can be used in cloud or on-premise environments. The process for cloud use is shown in Figure 1. First, the user prepares the simulation for execution using certain pre-processing methods provided by the software (step 100). This may include CAD preparation, meshing, simulation input configuration, and specification of material properties, boundary conditions, and required outputs. For other types of simulations, such as machine learning training, this may include data preparation and other related pre-processing activities. Once the simulation is prepared, the user authenticates with the P4P service provider, validating the user's authority to use the P4P software (step 101). Once authenticated, the user uploads the required simulation data to the P4P service provider via the service's portal (step 102). This portal may be provided through a web or programmatic interface. Once the data is available, the P4P service provider analyzes the user's data using a Resource Estimation Model (REM) to determine resource options (step 103). The resource options are translated into a range of estimated prices for the performance estimates (step 104). The resource and price combinations are described in the next section. The corresponding price ranges for performance are presented to the user through the service's portal (step 105). The user can then request execution of the job by selecting a particular performance vs. price option (step 106). The P4P service provider then queues the job (step 107) and instantiates the required resources (step 108). The job is executed on the selected resources (step 109), during which the user can monitor the job's status. Upon completion, the user is notified (step 110) and the output data can be retrieved (step 111).The price is updated according to the actual job performance achieved and allocated to the customer's invoice, step 112. At predetermined intervals (usually monthly), the customer receives an invoice from the provider, step 113.

[0025] The P4P model can also be used in an on-premise fashion using the customer's existing resources. The on-premise model process is shown in Figure 2 and is similar to the cloud-based approach with some notable exceptions. In this case, the user prepares the simulation (step 200) and the software verifies that the user has a P4P license type (step 201) (as opposed to the other license types mentioned above). The software then checks the available resources published to the software by the customer (step 202). Based on these resources, the P4P software determines resource options (step 203) and translates the resource options into pricing options (step 204). The process continues with steps 205-211 as in the cloud-based approach. If the customer's software installation has Internet access to the P4P service provider, the customer's bill is updated. If no Internet connection is available, billing information must be allocated locally and uploaded to the P4P service provider at predefined intervals 212. Billing occurs as in the cloud-based approach.

[0026] Resource Decision Model Software involving complex computations that are time- and data-intensive necessarily employs one or more algorithms that affect the minimum resource requirements for a particular job and the performance gains that can be achieved using additional resources. For most algorithms, continued performance gains cannot be achieved cheaply (i.e., there are diminishing returns) by adding resources. Thus, determining and quantifying the overall performance of the software and the performance of each of its component algorithms is key to providing users with an effective range of resource options. As users consistently use the software on a particular set of resources, they inevitably develop an intuition for the achievable performance. However, in the presence of various data that may affect performance, this intuition is qualitative at best. Furthermore, the accuracy and effectiveness of developed performance estimation heuristics decreases as various resources become available. To solve this problem, it is important to develop quantitative schemes to analyze job configuration parameters, estimate the minimum resource configuration for successful completion of a job (within a given length of time), and estimate the achievable performance across various types of resources, with scalability to the number of resources. Although the resource estimation scheme is generic for the software and each resource, its implementation will be specific for the software and the various resources being analyzed.

[0027] The process of developing a resource estimation model (REM) is divided into five steps (see Figure 3): 1. Identifying components that affect the performance of a software application (step 300). The components that impact performance consist of job configuration parameters (inputs, desired outputs, runtime options, etc.). The user's choice of inputs and desired outputs impacts the execution phase of the job in different ways. Similarly, the breadth and applicability of different runtime options impacts the execution phase of the job. For example, the second stage of an application may be able to utilize multiple GPUs while other stages may not.

[0028] 2. Identifying potential resources (step 301) Various resource parameters are important to the resource estimation model, such as CPU clock speed, number of CPU cores, amount of RAM, number and type of GPUs, network bandwidth, etc. P4P-enabled software queries each resource and collects these parameters as input to the resource estimation model. If the software cannot utilize a particular hardware (e.g., a GPU), that hardware is not included as input to the resource estimation model.

[0029] 3. Collect runtime performance data for each component (step 302) Before a resource model for a particular piece of software can be used to service a particular customer, initial data must be collected for a variety of jobs (see Figure 4). The P4P service provider runs the software with a variety of inputs and on a variety of resources. The run-time performance is collected in a database (see step 303) for use in optimizing the initial model. Even after the resource estimation model is deployed, as jobs are run, data continues to be collected to further optimize the resource estimation model.

[0030] 4. Optimizing the resource estimation model for runtime performance prediction (step 303) The resource estimation model is a non-linear function fitting operation that maps job parameters and available resources to total execution time and peak memory requirements. In this stage, an optimization algorithm is used to determine the appropriate mathematical form of the resource estimation model (based on a list of possible types of resource estimation models (polynomial, neural network, etc.)) and the optimal values ​​of the control parameters that operate on the inputs of the resource estimation model (see FIG. 5). The optimization process iteratively adjusts the control parameters to achieve a low level of error between the input vs. performance data collected in step 303 and the data predicted by the resource estimation model being optimized. Once a threshold error is reached, the resource estimation model can be deployed in a cloud or on-premise environment along with the software.

[0031] 5. Running the resource estimation model to predict performance (step 304) User inputs for a particular job are collected by the resource estimation model. For cloud-based runs, the resource estimation model iterates through each possible permutation of resources to identify the range of performance outputs, as shown in Figure 6. If the total memory required exceeds the available memory (e.g., on an individual compute node or on an individual GPU or overall), the resource option is rejected. As each permutation of resource sets is run, a sorted performance list (a list of total wall clock times) is created and passed to the pricing model. For on-premise runs, the user's resources are passed as input to the model to obtain a performance prediction.

[0032] Steps 300-303 are performed to develop a resource estimation model for a particular software application. Once the initial resource estimation model is complete, it is deployed along with the software, either to a cloud provider or to an on-premise software. Step 304 is to primarily execute the resource estimation model. If the available resources exceed the resources in the resource estimation model, the resource estimation model extrapolates to provide an estimate of the required resources. For example, if new computing resources are added to the cloud provider's resource pool, or if a customer using an on-premise solution adds new hardware, the resource estimation model estimates based on the currently available information. As actual performance data is acquired, the resource estimation model is updated via steps 302-304.

[0033] Figure 4 is a flow chart of the run-time performance data collection process used to initialize a resource estimation model. A list of performance components (step 401) is incorporated as a specific set of input values ​​(step 402) and a list of resource options (step 403) is incorporated as a specific set of resources (step 404). The job is executed (step 405), run-time performance data is extracted (step 406), and the input parameters and performance data are saved (step 407). This process is repeated based on the P4P service provider's analysis of the list of performance components, the list of resource options, and the desired fidelity of the initial resource estimation model.

[0034] FIG. 5 is a flow chart of the resource estimation model optimization process. A list of candidate resource estimation model types is obtained (step 500), an initial resource estimation model type is selected (step 501), resource estimation model control parameters are initialized (step 502), the resource estimation model is run with a set of input parameters in the database (step 503), and the resource estimation model prediction error is evaluated (step 504). The resource estimation model type may be any type suitable for mapping input data to an output performance estimate (polynomial, neural network, etc.). If the error is less than a threshold, the function optimization is complete (step 505). If the error is greater than or equal to a threshold and the process is not stalled, the function control parameters are changed (step 506) and steps 503-504 are repeated. If the error is greater than or equal to a threshold and the process is stalled, a candidate resource estimation model type is selected instead (step 507) and the process is repeated from step 500 or 502.

[0035] Figure 6 is a flow chart of the resource estimation model execution process. A list of available resources is obtained (step 601), an initial resource set is selected (step 602), and user input data is obtained (step 603). The optimized resource estimation model is then executed (step 604). If the output of the resource estimation model is valid, it is added to a performance list and sorted (step 605). Once the performance list is complete, pricing can begin (step 606). If the function output is not valid and / or the performance list is incomplete, an alternative resource set is selected (step 607) and the process is repeated from step 601 or 604.

[0036] Pricing Model Pricing for a particular job is based on the platform (e.g., cloud vs. on-premise) and a sorted list of performance predictions provided by the resource estimation model run. Certain cloud platforms, such as Amazon Web Services (AWS), publish prices for various fixed resource sets. For example, AWS's c5d.24xlarge instance type is priced at $4,608 per hour and offers 96 CPU units, 192 GB RAM, 25 Gb Ethernet, and 3.6 TB of disk space with additional storage that is configurable and accounted for separately. The lowest price is determined from the resource set with the lowest performance prediction. By iterating through the performance list, prices are assigned and presented to the user. The user can choose from the complete list or quickly select from large, medium, and small performance options that are automatically selected from the performance vs. price list.

[0037] In a cloud environment, resource availability can fluctuate. The P4P service provider queries the cloud providers based on the selected performance to check the availability of the required resources. If the resources are available, the user can schedule and run the job. If the resources are not available, the pricing model iterates through the performance price list to find the closest set of available resources and presents the options to the user.

[0038] In an on-premise environment, the pricing model compares a user's resources and estimated execution time with a list of prices determined at the discretion of the P4P service provider.

[0039] Working Example Example 1: Predicting large-scale weather patterns using cloud-based resources Weather Simulation, Inc. (WSI) provides WeatherX simulation software to customers, including meteorologists and climatologists. The computational scale of WeatherX simulations can be significant, often preventing customers from running the desired weather pattern predictions using limited on-premise resources. To address this, WSI has released a new version of WeatherX that supports cloud-based execution, scalable across hundreds of GPU-accelerated compute nodes. To further streamline the user experience, this version of WeatherX provides a web-based interface that simplifies model setup.

[0040] To enable the P4P licensing model, WSI ported WeatherX to AWS and ran a resource estimation model development process (Figure 3) by conducting a series of initial runs of typical weather pattern forecasts at various geographic scales (city, state, region, country, etc.). In the resource estimation model optimization process, a neural network was selected as the optimal model form, and the control parameters of the neural network were adjusted based on the data generated from the initial runs conducted on WeatherX. By deploying the software and resource estimation model on AWS, WSI offers its customers the P4P option.

[0041] A university studying regional weather patterns decided to use WeatherX’s new P4P pricing model to accommodate parametric analysis of city-level and state-level weather. A graduate student in the research group uses the web interface to prepare a WeatherX simulation and initiate a price quote. Based on the resource estimation model, the user is presented with options for large, medium, and small performance and associated prices. Figure 7 shows the options presented to the user for both city-level and state-level simulations. Note that WeatherX pricing assumes a flat 20% markup on AWS instance prices with hourly pricing. The research group requires daily updates for city-level forecasts, but only monthly updates for state-level forecasts. Therefore, for the city-level, they choose the highest performance option with a price of $73.40 per job, and for the state-level simulation, they choose the lowest price option with a price of $2,170.

[0042] For each simulation, WeatherX's P4P licensing module queries AWS resource availability to ensure all required resources are available. Users select to run jobs and are then notified upon completion of each job. Job costs are allocated to a WSI research group account, and WSI invoices the university on a monthly basis.

[0043] Example 2 - Automotive Computational Fluid Dynamics CFD Group provides Accelerated CFD, a trusted computational fluid dynamics (CFD) software package for the automotive industry. The automotive industry relies heavily on accurate CFD simulations to design vehicles with efficient shapes that improve fuel economy. Such simulations are computationally challenging and often take days or weeks on typical cluster configurations. Automakers suffer from a lack of access to software and licensing schemes that support rapid design iterations. With its P4P licensing model, unique scalable cloud-based environment, and built-in GPU-accelerated solvers, Accelerated CFD is well suited to address these challenges for CFD Group's customers.

[0044] One such customer is Electra, an emerging electric vehicle company. Electra is using Accelerated CFD to design its latest vehicles and has begun a series of parametric design studies to optimize the vehicle's shape. First, an Electra design engineer logs into CFD Group's web portal for Accelerated CFD. A simulation model is prepared using client-side CAD and Accelerated CFD's model pre-processing component. During this pre-processing stage, the design engineer identifies and flags several design parameters to be considered in a parametric analysis that will ultimately consist of 100 CFD simulations. The simulation file, including the parametric settings, is uploaded to the Accelerated CFD cloud portal. Accelerated CFD uses a resource estimation model established by CFD Group to determine the minimum resources required to run one of Electra's simulation parameter sets. The resource estimation model ranks several other potential configuration options. Accelerated CFD has the ability to further accelerate the parametric studies to run on a common set of distributed resources, which will provide the best possible performance in CFD Group's cloud environment. The resource estimation model passes these configuration options to the pricing model, which presents the price vs. performance results shown in Figure 8 to the design engineer.

[0045] With the overall schedule critical and the project budget flexible, the design engineer selects the maximum performance option and starts the simulation. Once the job is complete, the engineer retrieves the data and analyzes it with the fast CFD client-side component. The Electra invoice is updated and charged.

[0046] Example 3 - Training an artificial intelligence model DataMine is the developer of MineAI artificial intelligence (AI) and machine learning (ML) training services. DataMine serves companies with large data sets (structured or unstructured) that require data analysis and machine learning model development. MineAI is data agnostic and automatically selects and trains the best ML model based on the customer's desired outcomes. Because many customers' data sets are highly sensitive, DataMine offers MineAI in both cloud and on-premise versions and employs a P4P licensing model to accommodate customers' ML model development schedules.

[0047] 4Sight is a medical company developing AI-based cancer diagnostic models for various types of cancer. These cancer diagnostic models have the potential to detect cancer across a wide range of imaging and other diagnostic procedures. 4Sight collects terabytes of data from multiple partners and has a large on-premise cluster of computers.

[0048] To develop an ML model from a new dataset, a data analyst at 4Sight prepares the MineAI software to run on a local cluster configuration. Following the process in Figure 2, MineAI examines the type of resources available to run the P4P training set. Currently, 32 compute nodes with one GPU each are available. A resource estimation model within MineAI uses a neural network-based algorithm to estimate performance on various computer resource configurations. MineAI determines that the minimum resource requirement is only one node, with no GPU required. The training effort will take 120 hours and cost $120. The resource estimation model further determines that maximum performance can be achieved using all 32 nodes with GPUs. This maximum performance configuration will take only 1 hour to run and cost $5000. The user is presented with various performance and price options, which indicate the performance that can be achieved using various percentages of all the cluster configuration resources. Since another high-priority project is competing for these same resources, the data analyst selects the lower-priced configuration. The job is run, your 4Sight account is updated with DataMine, and DataMine is billed.

[0049] 9 illustrates an exemplary communication system 10 in which a customer 11 and a P4P service provider 15 can communicate to conduct business. The customer 11 has a computing system 12 that can communicate over a communications network 13 (such as the Internet). The P4P service provider 15 has a computing system 14 that can communicate over the communications network 13. Thus, the customer 11 and the P4P service provider 15 can communicate with each other, for example, over the Internet.

[0050] FIG. 10 illustrates an exemplary computing system 20 that can be used in accordance with the disclosed system and method. For example, the computing device 20 can be used to perform all necessary calculations to implement the algorithms disclosed herein and to execute the steps of the methods and systems of the present invention. The computing device 20 comprises at least one processor 21 that executes instructions stored in a memory 22. The instructions may be, for example, instructions for implementing the functions described as being performed by one or more components discussed above or instructions for implementing one or more methods described above. The processor 21 can access the memory 22 via a system bus 23. In addition to storing executable instructions, the memory 22 can also store operational parameters, necessary algorithm software, etc.

[0051] The computing device 20 further comprises a data store 24 accessible by the processor 21 via the system bus 23. The data store 24 may contain executable instructions, operational parameters, necessary operational parameters, etc. The computing device 20 also comprises an input interface 25 that allows external devices, such as an Internet system, to communicate with the computing device 20. The input interface 25 may also be used to receive instructions from an external computer system, from a user, etc. The computing device 20 also comprises an output interface 26 that connects the computing device 20 with one or more external devices, such as an Internet system. The computing device 20 may also display text, images, etc. via the output interface 26.

[0052] Moreover, although shown as a single system, it should be understood that computing device 20 may be a distributed system such that, for example, several devices may communicate over network connections and collectively perform the tasks described as being performed by computing device 20.

[0053] The foregoing description illustrates and describes the present disclosure. Moreover, the present disclosure shows and describes only the preferred embodiments. However, the preferred embodiments can be configured in various other combinations, modifications, and environments. It is also to be understood that changes or modifications may be made within the scope of the inventive concept as described herein, depending on the above teachings and / or the skill or knowledge of the relevant art. The embodiments described herein above are intended to illustrate the best mode known by the applicant, and are further intended to enable others skilled in the art to utilize the present disclosure in such or other embodiments, with various modifications as required by a particular application or applications. Thus, the description is not intended to limit the invention to the form disclosed herein. It is also intended that the appended claims be construed to include alternative embodiments. It is further to be understood that various changes in the details, materials, and arrangements of parts described and illustrated above to explain the principles of the present invention may be made by those skilled in the art without departing from the principles and scope as set forth in the following claims.

Claims

1. 1. A computer-implemented method in which a service provider offers a range of prices for performance-measured computer processing time projections to perform a desired software task, comprising: a) preparing data for a desired software operation by a user using a computer-implemented pre-processing method provided by said service provider; uploading said data via a computer system to a computer system of said service provider; and requesting services from said service provider to perform said desired software task; b) analyzing the data by the service provider at the service provider's computer system using a resource estimation model; Thereby determining resource options, and The resource options are: The price range and a corresponding performance actual time prediction for performing the desired software activity; c) the service provider, via the service provider's computer system, The price range; corresponding performance actual time predictions for performing the desired software tasks; A list of presenting to said user via said user's computer system; d) the user selecting a particular price and corresponding performance time estimate; the user requesting that the service provider perform the desired software task using resource options associated with the selected price and the corresponding time duration; e) the service provider performing the desired software work using the resource options associated with the selected price and the corresponding time duration; providing a result of execution of the desired software task to the user; billing the user for the results of performing the desired software task; receiving payment from the user for the results received by the user; and A computer-implemented method.

2. 2. The computer-implemented method of claim 1, comprising: collecting performance actual time prediction data from the resource estimation model during execution of the desired software operation. method.

3. 2. The computer-implemented method of claim 1, comprising: Using the resource estimation model a) identifying components that impact a wall-clock time of the desired software activity; b) identifying potential resources; c) collecting performance clock data for each component of said software work on said potential resources; d) optimizing the resource estimation model to determine a performance hit time; e) executing the resource estimation model to predict a performance-based time to complete execution of the desired software task. and A computer-implemented method.

4. 4. The computer-implemented method of claim 3, comprising: collecting performance actual time prediction data for each component of the desired software task on the potential resources, a) instantiating a particular set of input values ​​from the desired software operation; b) instantiating a particular set of resources from a list of resource options; c) executing the desired software operations; d) extracting performance actual time prediction data; e) storing the input parameters and the measured time data; f) repeating steps a through e to optimize the accuracy of the resource estimation model in predicting performance time. and A computer-implemented method.

5. 4. The computer-implemented method of claim 3, comprising: Optimizing the resource estimation model to predict a performance actual time forecast includes: a) selecting an initial resource estimation model; b) initializing each control parameter of the initial resource estimation model; c) running the resource estimation model on the set of input values; d) evaluating the resource estimation model error to determine if the resource estimation model error is less than a threshold at which point optimization is complete. and A computer-implemented method.

6. 4. The computer-implemented method of claim 3, comprising: executing the resource estimation model to predict a performance actual time to complete execution of the desired software task, a) obtaining a list of available resources; b) selecting an initial set of resources and obtaining user input data; c) executing the optimized resource estimation model; d) adding to and sorting the performance actual measurement time forecast value list; e) initiating pricing of performance actual time forecasts. and A computer-implemented method.

7. 2. The computer-implemented method of claim 1, comprising: The lowest price is determined from the resource set with the lowest performance time estimate. A computer-implemented method.

8. 1. A computer-implemented method in which a service provider offers a range of prices for performance-measured computer processing time projections to perform a desired software task, comprising: a) preparing data for a desired software operation by a user using a computer-implemented pre-processing method provided by said service provider; uploading said data via a computer system to a computer system of said service provider; and requesting services from said service provider to perform said desired software task; b) analyzing the data by the service provider at the service provider's computer system using a resource estimation model; Thereby determining resource options, and The resource options are: The price range and a corresponding performance actual time prediction for performing the desired software activity; c) the service provider, via the service provider's computer system, The price range; corresponding performance actual time predictions for performing the desired software tasks; A list of presenting to said user via said user's computer system; d) the user selecting a particular price and corresponding performance time estimate; the user requesting that the service provider perform the desired software task using resource options associated with the selected price and the corresponding time duration; e) the service provider performing the desired software work using the resource options associated with the selected price and the corresponding time duration; providing a result of execution of the desired software task to the user; billing the user for the results of performing the desired software task; receiving payment from the user for the results received by the user; f) collecting performance actual time prediction data from the resource estimation model during execution of the desired software activity; Including, Using the resource estimation model identifying components that impact a wall-clock time of the desired software activity; Identifying potential resources; collecting performance clock data for each component of the software task on the potential resources; optimizing the resource estimation model to determine a performance actual time; executing the resource estimation model to predict a performance measured time to complete execution of the desired software task; Further comprising: collecting performance actual time prediction data for each component of the desired software task on the potential resources, instantiating a particular set of resources from a list of resource options; executing the desired software operation; extracting performance actual time prediction data; storing the input parameters and the measured time data; repeating the step of saving input parameters and wall clock data from the step of instantiating a particular set of resources from a list of resource options to optimize accuracy of the resource estimation model in predicting wall clock performance; Including, A computer-implemented method.

9. 9. The computer-implemented method of claim 8, comprising: Optimizing the resource estimation model to predict a performance actual time forecast includes: a) selecting an initial resource estimation model; b) initializing each control parameter of the initial resource estimation model; c) running the resource estimation model on the set of input values; d) evaluating the resource estimation model error to determine if the resource estimation model error is less than a threshold at which point the optimization is complete. and A computer-implemented method.

10. 9. The computer-implemented method of claim 8, comprising: executing the resource estimation model to predict a performance actual time to complete execution of the desired software task, a) obtaining a list of available resources; b) selecting an initial set of resources and obtaining user input data; c) executing the optimized resource estimation model; d) adding to and sorting the performance actual measurement time forecast value list; e) initiating pricing of performance actual time forecasts. and A computer-implemented method.

11. A computer-implemented method according to claim 1, comprising: The lowest price is determined from the resource set with the lowest performance time estimate. A computer-implemented method.

12. 1. A computer-implemented method in which a service provider offers a range of prices for performance-measured computer processing time projections to perform a desired software task, comprising: a) preparing data for a desired software operation by a user using a computer-implemented pre-processing method provided by said service provider; uploading said data via a computer system to a computer system of said service provider; and requesting services from said service provider to perform said desired software task; b) analyzing the data by the service provider at the service provider's computer system using a resource estimation model; Thereby determining resource options, and The resource options are: The price range and a corresponding performance actual time prediction for performing the desired software activity; c) the service provider, via the service provider's computer system, The price range; corresponding performance actual time predictions for performing the desired software tasks; A list of presenting to said user via said user's computer system; d) the user selecting a particular price and corresponding performance time estimate; the user requesting that the service provider perform the desired software task using resource options associated with the selected price and the corresponding time duration; e) the service provider performing the desired software work using the resource options associated with the selected price and the corresponding time duration; providing a result of execution of the desired software task to the user; billing the user for the results of performing the desired software task; receiving payment from the user for the results received by the user; f) collecting performance actual time prediction data from the resource estimation model during execution of the desired software activity; Including, Using the resource estimation model identifying components that impact a wall-clock time of the desired software activity; Identifying potential resources; collecting performance clock data for each component of the software task on the potential resources; optimizing the resource estimation model to determine a performance actual time; executing the resource estimation model to predict a performance measured time to complete execution of the desired software task; Further comprising: collecting performance actual time prediction data for each component of the desired software task on the potential resources, instantiating a particular set of resources from a list of resource options; executing the desired software operation; extracting performance actual time prediction data; storing the input parameters and the measured time data; repeating the step of saving input parameters and wall clock data from the step of instantiating a particular set of resources from a list of resource options to optimize accuracy of the resource estimation model in predicting wall clock performance; Further comprising: Optimizing the resource estimation model to predict a performance actual time forecast includes: selecting an initial resource estimation model; initializing each control parameter of the initial resource estimation model; running the resource estimation model on the set of input values; Evaluating the resource estimation model error to determine if the resource estimation model error is less than a threshold at which point the optimization is complete. and A computer-implemented method.

13. 13. The computer-implemented method of claim 12, comprising: executing the resource estimation model to predict a performance actual time to complete execution of the desired software task, a) obtaining a list of available resources; b) selecting an initial set of resources and obtaining user input data; c) executing the optimized resource estimation model; d) adding to and sorting the performance actual measurement time forecast value list; e) initiating pricing of performance actual time forecasts. and A computer-implemented method.

14. 14. The computer-implemented method of claim 13, comprising: The lowest price is determined from the resource set with the lowest performance time estimate. A computer-implemented method.

Citation Information

Patent Citations

  • Simulation mediation system

    JP2003150888A

  • Program processing time estimation method

    JP2004258705A

  • Method, system, and program for managing grid computing environment

    JP2007102789A

  • Real-time performance monitoring and management system

    US20100100250A1

  • Using templates to configure cloud resources

    US20120072597A1