EDA simulation task scheduling method, device and equipment, medium and program product
By training an overhead prediction model and optimizing the scheduling of EDA simulation tasks using matching metrics, the problem of unreasonable resource allocation under static scheduling was solved, thereby improving resource utilization and simulation efficiency.
Patent Information
- Application Number
- CN202511960494.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-24
- Publication Date
- 2026-01-23
AI Technical Summary
Traditional static scheduling methods cannot dynamically adapt to the actual resource requirements of EDA simulation tasks and changes in system resource status, resulting in unreasonable resource allocation and affecting the utilization of computing resources and design efficiency.
The predicted overhead of the EDA simulation task is determined by the trained overhead prediction model, and the matching index between the predicted overhead and the currently available resources is calculated. The scheduling queue is updated based on the matching index, and tasks with high resource matching degree are executed first.
It improves the resource utilization and overall efficiency of EDA simulation, shortens the simulation cycle, and reduces manpower and time costs.
Smart Images

Figure CN121387501A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of EDA simulation design, in particular to an EDA simulation task scheduling method and device, equipment, medium and program product. BACKGROUND
[0002] In the field of electronic design automation (EDA), simulation calculation is a key link in the circuit design process. With the continuous increase of the scale and complexity of integrated circuits, the data volume and computation volume involved in EDA simulation calculation increase dramatically, and the demand for computing resources also grows.
[0003] The traditional static scheduling method usually allocates fixed computing resources to each task in advance. This method cannot dynamically adapt to the actual resource demand of simulation tasks and the real-time state change of system resources. On the one hand, it may lead to over allocation of resources, that is, too many computing resources are allocated to some tasks that do not require high resources, resulting in a large amount of idle resources; on the other hand, when facing complex simulation tasks, there may be a situation of insufficient resource allocation, which leads to slow task execution or even failure. This unreasonable allocation of resources reduces the utilization rate of overall computing resources, thereby affecting the design efficiency. SUMMARY
[0004] The purpose of the embodiments of the present application is to provide an EDA simulation task scheduling method, device, equipment, medium and program product to solve the above problems.
[0005] In a first aspect, the embodiments of the present application provide an EDA simulation task scheduling method, comprising: obtaining an EDA simulation task; calling a trained overhead prediction model to determine a predicted overhead of the EDA simulation task; calculating a matching index of the predicted overhead of the EDA simulation task and a current available resource; wherein the matching index is used to indicate a degree to which the current available resource can meet the predicted overhead; determining a scheduling priority of the EDA simulation task in a scheduling queue based on the matching index, and updating the scheduling queue based on the scheduling priority; and executing a task in the updated scheduling queue. In the implementation process of the above scheme, the predicted overhead of the EDA simulation task is determined by the trained overhead prediction model, and the matching index of the predicted overhead and the current available resource is calculated, which can realize accurate evaluation of the task resource demand and the current resource state, thereby helping to reasonably allocate computing resources, improving resource utilization, and thus improving the overall efficiency of EDA simulation; on the other hand, the scheduling queue is updated based on the matching index, so that the EDA simulation task that is more suitable for the current available resource can be executed preferentially, thereby realizing reasonable arrangement of the EDA simulation task, further improving the overall efficiency of EDA simulation, shortening the EDA simulation period, reducing the labor cost and time cost, and improving the economic benefit.
[0006] In an implementation form of the first aspect, the calculating the matching index of the predicted overhead of the EDA simulation task and the current available resource comprises: calculating a matching coefficient of the predicted overhead of each item of computing resource and the current available resource; wherein the matching coefficient is used to indicate a degree to which the current available resource of each item of the computing resource can meet the predicted overhead; and determining the matching index of the EDA simulation task based on the matching coefficient of each item of the computing resource. In the implementation process of the above scheme, by calculating the matching coefficient of each item of computing resource, the relationship between the current resource and the predicted overhead of each item of computing resource can be accurately quantified, so that a more accurate resource scheduling strategy can be formulated, which is beneficial to improve the resource utilization; on the other hand, the matching index can comprehensively consider the matching coefficient of each item of computing resource, and the task scheduling of the EDA simulation task is performed based on the matching index, which can improve the scheduling rationality of the above EDA simulation task scheduling method.
[0007] In an implementation form of the first aspect, the determining the matching index of the EDA simulation task based on the matching coefficients of the computing resources comprises: performing weighted summation on the matching coefficients of the computing resources by using a first weight to determine the matching index of the EDA simulation task; wherein the first weight is used to represent the importance of the computing resources to the EDA simulation task. In the implementation process of the above scheme, the matching coefficients of the computing resources are weighted and summed by using the first weight, which can comprehensively consider the importance of different computing resources to the EDA simulation task, so that the matching index can more truly reflect the demand of the EDA simulation task for the computing resources, thereby improving the rationality of resource allocation. On the other hand, the matching index obtained by the weighted summation can effectively distinguish the dependence of different tasks on resources, and the scheduling of the EDA simulation task by using the matching index can improve the rationality of resource allocation of the EDA simulation task scheduling method.
[0008] In an implementation form of the first aspect, the determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index comprises: determining the scheduling priority of the EDA simulation task in the scheduling queue as a first scheduling priority when the matching index is in a first index interval, wherein the first index interval is used to represent a matching index value interval in which the current available resource meets the predicted overhead and the resource utilization is greater than a preset utilization threshold; determining the scheduling priority of the EDA simulation task in the scheduling queue as a second scheduling priority when the matching index is in a second index interval, wherein the second index interval is used to represent a matching index value interval in which the current available resource meets the predicted overhead and the resource utilization is not greater than the preset utilization threshold; the second scheduling priority is lower than the first scheduling priority; and determining the scheduling priority of the EDA simulation task in the scheduling queue as a third scheduling priority when the matching index is in a third index interval, wherein the third index interval is used to represent a matching index value interval in which the current available resource does not meet the predicted overhead, and the third scheduling priority is lower than the second scheduling priority. In the implementation process of the above scheme, by dividing the matching index into different intervals and respectively corresponding to different scheduling priorities, the scheduling order of the EDA simulation task can be reasonably arranged according to different intervals of the matching index, thereby improving the resource utilization. On the other hand, by explicitly defining the hierarchical relationship between different priorities, the execution order of the task can be quickly determined, the task with high resource matching degree and high utilization is preferentially executed, so that the task which can obtain sufficient resource support is preferentially executed, thereby shortening the waiting time of the task and improving the throughput of the task. For the task whose resource demand is not met, the priority is reduced, which can avoid these tasks from occupying limited scheduling resources, and the tasks with high resource matching degree can be more efficiently processed, thereby improving the task execution efficiency of the above EDA simulation task scheduling method.
[0009] In an implementation form of the first aspect, the determining of the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index comprises: determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index and a task priority, a task deadline and a predicted released computing resource. In the implementation process of the above solution, the scheduling priority is determined by comprehensively considering the matching index, the task priority, the task deadline and the predicted released computing resource, which can comprehensively consider the resource requirement and the business characteristics of the task, can more accurately identify the EDA simulation task which performs well in both resource matching and business importance, and make the task obtain the scheduling opportunity preferentially, thereby improving the overall execution efficiency of the EDA simulation task. On the other hand, the scheduling priority of the EDA simulation task is determined by comprehensively considering multiple factors, which can more flexibly adapt to complex and changeable task scheduling scenarios, and thereby improve the rationality of resource allocation.
[0010] In an implementation form of the first aspect, the determining of the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index and a task priority, a task deadline and a predicted released computing resource comprises: performing weighted summation on the matching index, the task priority, the task deadline and the predicted released computing resource by using a second weight to determine a task scheduling index of the EDA simulation task; and determining the scheduling priority of the EDA simulation task in the scheduling queue based on the task scheduling index. In the implementation process of the above solution, the matching index, the task priority, the task deadline and the predicted released computing resource are weighted and summed by using the second weight, which can comprehensively consider the resource requirement, the business importance, the time constraint and the dynamic change of the resource of the task. This comprehensive evaluation method makes the task scheduling index more comprehensively reflect the execution requirement and urgency of the task, thereby providing a more scientific and accurate basis for the determination of the scheduling priority, and thereby improving the rationality of the scheduling decision.
[0011] In an implementation form of the first aspect, the determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index and the task priority, the task deadline and the predicted released computing resource comprises: inputting the matching index, the task priority, the task deadline and the predicted released computing resource into a trained scheduling decision model to determine the scheduling priority of the EDA simulation task in the scheduling queue output by the scheduling decision model. In the implementation process of the above scheme, by inputting the matching index, the task priority, the task deadline and the predicted released computing resource into the trained scheduling decision model, intelligent evaluation of the task scheduling priority can be realized. The model-driven method can automatically learn and adapt to complex patterns and dynamic changes in task scheduling. By comprehensively considering multiple factors, more accurate scheduling priority determination is provided, thereby improving the rationality of scheduling decisions. On the other hand, the model-driven method can continuously optimize the decision strategy of the model based on historical scheduling data and task execution results, so as to better cope with different types of tasks and resource changes, so that the above EDA simulation task scheduling method can be applied to more application scenarios, thereby improving the adaptability and flexibility of the above EDA simulation task scheduling method.
[0012] In an implementation form of the first aspect, the method further comprises: monitoring an actual used resource of the EDA simulation task when the EDA simulation task is executed; and performing at least one of suspending execution of the EDA simulation task, lowering the scheduling priority of the EDA simulation task, recycling redundant resources and allocating idle computing resources to the EDA simulation task when the actual used resource is greater than the predicted overhead and a deviation between the actual used resource and the predicted overhead is greater than a preset deviation threshold. In the implementation process of the above scheme, by monitoring the actual used resource in real time when the EDA simulation task is executed, the deviation between the predicted overhead and the actual resource usage can be found in time, and when the actual used resource exceeds the predicted overhead and the deviation exceeds the preset threshold, measures such as suspending the task, lowering the priority, recycling the redundant resources or allocating the idle resources can be taken, which can reduce the situation that the EDA simulation task fails due to insufficient resources, and is beneficial to improve the reliability and stability of the execution of the EDA simulation task.
[0013] In an implementation form of the first aspect, the method further comprises: periodically monitoring a computing resource state to determine the current available resource. In the implementation process of the above scheme, by periodically monitoring the computing resource state, the usage and available amount of each computing resource can be determined, and unreasonable scheduling caused by lagging available resource information can be avoided, thereby improving the rationality of resource allocation. On the other hand, by periodically updating the state of the current available resource, a data basis is provided for the dynamic scheduling of the EDA simulation task, and the rationality of resource allocation is further improved.
[0014] In an implementation form of the first aspect, the method further includes: when the computing resources are in a high occupation state, performing at least one of delaying a task scheduling of a new EDA simulation task, suspending a non-critical task, adjusting the scheduling priority of the EDA simulation task, and reallocating an idle computing resource. In the implementation process of the above scheme, by performing the measures such as delaying a new task scheduling, suspending a non-critical task, adjusting a task scheduling priority, and reallocating an idle computing resource when the computing resources are in a high occupation state, the resource pressure can be effectively alleviated, thereby improving the execution stability and the execution success rate of the EDA simulation task. On the other hand, by delaying a non-critical task and adjusting a task priority, the resource demand of a critical task and an urgent task can be preferentially guaranteed, and the timely completion of important tasks is ensured. In addition, reallocating an idle computing resource can more reasonably utilize the idle resource and reduce resource waste.
[0015] In an implementation form of the first aspect, the method further includes: determining that the computing resources are in the high occupation state when the resource usage of any one of the computing resources is greater than a preset usage threshold; or determining that the computing resources are in the high occupation state when the resource usage of more than a preset number of the computing resources is greater than the preset usage threshold of each of the computing resources; or calculating a comprehensive occupation index based on the resource usage of each of the computing resources, and determining that the computing resources are in the high occupation state when the comprehensive occupation index is greater than a preset occupation index threshold. In the implementation process of the above scheme, by determining whether the computing resources are in a high occupation state through multiple determination conditions, the resource usage can be comprehensively and flexibly reflected, so that the above EDA simulation task scheduling method can be applied to more application scenarios, thereby improving the flexibility and adaptability of the above EDA simulation task scheduling method. On the other hand, by flexibly selecting a suitable determination method and timely taking measures such as delaying a new task scheduling and suspending a non-critical task, the diversified determination conditions and coping strategies can more effectively optimize resource allocation and improve the overall execution efficiency of the EDA simulation task.
[0016] In an implementation form of the first aspect, the calling the trained overhead prediction model to determine the predicted overhead of the EDA simulation task comprises: calling the trained at least one overhead prediction model to determine the predicted overhead of the EDA simulation task; and wherein the overhead prediction model is used to predict at least one overhead of the EDA simulation task. In the implementation process of the above solution, the predicted overhead of the EDA simulation task is determined by the trained at least one overhead prediction model, which allows the flexibility to select or combine multiple overhead prediction models for prediction according to the characteristics of different overheads, and helps to improve the accuracy of overhead prediction. On the other hand, the overhead of the EDA simulation task is predicted by the at least one overhead prediction model, thereby providing accurate resource requirement information for subsequent task scheduling, which helps to improve the rationality of EDA simulation task scheduling and thus improves the resource utilization.
[0017] In an implementation form of the first aspect, the method further comprises: obtaining task execution data of the EDA simulation task; and updating the overhead prediction model by using the task execution data. In the implementation process of the above solution, the overhead prediction model is dynamically adapted to the changes of task characteristics and resource requirements by obtaining the task execution data of the EDA simulation task and updating the overhead prediction model by using the task execution data, thereby continuously improving the overhead prediction capability for various EDA simulation tasks and improving the accuracy of the overhead prediction result. On the other hand, the overhead prediction model is updated by using the task execution data, which helps to improve the generalization ability and adaptability of the overhead prediction model, thereby providing reliable resource requirement prediction for the scheduling and allocation of EDA simulation tasks and improving the rationality of resource allocation.
[0018] In a second aspect, the embodiments of the present application provide an EDA simulation task scheduling device, comprising: an EDA simulation task obtaining module configured to obtain an EDA simulation task; a predicted overhead determining module configured to call a trained overhead prediction model to determine a predicted overhead of the EDA simulation task; a matching index calculating module configured to calculate a matching index of the predicted overhead of the EDA simulation task and a currently available resource; wherein the matching index is used to indicate the degree to which the currently available resource can meet the predicted overhead; a scheduling queue updating module configured to determine a scheduling priority of the EDA simulation task in a scheduling queue based on the matching index, and update the scheduling queue based on the scheduling priority; a task executing module configured to execute a task in the updated scheduling queue.
[0019] In a third aspect, an EDA all-in-one machine is provided, comprising the EDA simulation task scheduling apparatus of the second aspect or any possible implementation manner of the second aspect.
[0020] In a fourth aspect, an electronic device is provided, comprising a processor, a memory and a communication bus, wherein the processor and the memory complete communication with each other through the communication bus; the memory stores computer program instructions which can be executed by the processor, and when the computer program instructions are read and run by the processor, the method provided in the first aspect or any possible implementation manner of the first aspect is executed.
[0021] In a fifth aspect, a computer readable storage medium is provided, and the computer readable storage medium stores computer program instructions, and when the computer program instructions are read and run by a processor, the method provided in the first aspect or any possible implementation manner of the first aspect is executed.
[0022] In a sixth aspect, a computer program product is provided, and the computer program product comprises a computer program, and when the computer program is executed by a processor, the method provided in the first aspect or any possible implementation manner of the first aspect is implemented.
[0023] Other features and advantages of the present application will be described in the following description, and some will become apparent from the description, or will be learned through implementation of the embodiments of the present application. The purposes and other advantages of the present application can be achieved and obtained through the structures specifically pointed out in the written description, claims and drawings. BRIEF DESCRIPTION OF DRAWINGS
[0024] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments of the present application. It should be understood that the following drawings only show some embodiments of the present application, and therefore should not be regarded as a limitation on the scope, and for those skilled in the art, other related drawings can also be obtained without creative labor on the basis of these drawings.
[0025] Figure 1 The flowchart of the EDA simulation task scheduling method provided by the embodiments of the present application is shown in the figure; Figure 2 The structural diagram of the EDA simulation task scheduling apparatus provided by the embodiments of the present application is shown in the figure; Figure 3 The structural diagram of the electronic device provided by the embodiments of the present application is shown in the figure. DETAILED DESCRIPTION
[0026] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application.
[0027] EDA simulation tasks are necessary work for confirming the rationality and correctness of a design after a designer completes the design of an integrated circuit. Traditional EDA simulation tasks mostly adopt a static scheduling strategy. Under this strategy, the computing resources allocated to each EDA simulation task are usually set in advance, for example, a fixed number of CPU cores, memory size, etc. This scheduling strategy often leads to unreasonable resource allocation due to the lack of accurate estimation of the actual resource demand of a task, which is specifically manifested in the following aspects: on the one hand, a task may be allocated too many resources, causing resource waste, for example, a simulation task originally having a low demand for CPU cores is allocated a large number of CPU cores, reducing the available CPU cores for other tasks; on the other hand, a task may be allocated too few resources, causing the task to take too long to execute or even fail to complete, for example, some complex simulation tasks frequently encounter memory overflow errors due to insufficient memory allocation, and thus have to be interrupted and executed again after resource adjustment, greatly increasing the overall simulation time. Therefore, the traditional static scheduling strategy has been difficult to meet the current complex and variable EDA simulation computing requirements.
[0028] In view of this, the embodiments of the present application provide an EDA simulation task scheduling method, which determines the predicted overhead of an EDA simulation task through a trained overhead prediction model, and calculates a matching index of the predicted overhead and the current available resources, which can realize accurate evaluation of the resource demand of a task and the current resource state, thereby helping to reasonably allocate computing resources, improving resource utilization, and thus improving the overall efficiency of EDA simulation; on the other hand, the scheduling queue is updated based on the matching index, so that EDA simulation tasks that are more suitable for the current available resources can be executed preferentially, thereby realizing reasonable arrangement of EDA simulation tasks, further improving the overall efficiency of EDA simulation, and shortening the EDA simulation period.
[0029] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application. Please refer to Figure 1 The embodiments of the present application provide an EDA simulation task scheduling method, which comprises the following steps: Step S110: Obtain an EDA simulation task.
[0030] The EDA simulation task refers to a series of operations of simulating and analyzing integrated circuit design by using computer-aided tools. The EDA simulation task runs through all stages of integrated circuit design, aiming to verify and optimize the performance, function and reliability of the circuit. The EDA simulation task includes, but is not limited to, logic simulation, timing simulation, power consumption analysis, signal integrity analysis and reliability simulation, etc. In the design process, EDA simulation can help engineers find potential design defects before chip manufacturing, reduce manufacturing cost and shorten product launch time.
[0031] The main information of the EDA simulation task includes: task type (such as digital circuit simulation, analog circuit simulation, mixed signal simulation, etc.), EDA simulation tool, circuit size (such as the number of transistors, the number of logic gates, etc.), input parameters (such as circuit topology, signal frequency, workload, etc.), simulation accuracy requirement (such as time accuracy, voltage accuracy, etc.), task priority, task time constraint (such as the expected start time and deadline of the task, etc.). These information describes the characteristics of EDA simulation task in detail, which can accurately reflect the demand characteristics and execution requirements of the task on computing resources (such as CPU core number, memory size, GPU resources, etc.).
[0032] The EDA simulation task obtained in the above step S110 is mainly derived from the simulation requirements created by integrated circuit design engineers during the circuit design and verification process using electronic design automation tools. These simulation tasks are usually generated by engineers according to specific design goals (such as digital circuits, analog circuits, radio frequency circuits, etc.) and verification stages (such as post-synthesis simulation, post-layout simulation, timing verification, etc.), aiming to simulate and analyze the behavior of the circuit through simulation tools to ensure that the design meets the expected functional, performance and reliability requirements. In addition, EDA simulation tasks can also be generated by design process automation tools or scripts, which automatically generate simulation tasks according to preset design rules and verification strategies to realize batch verification and optimization of integrated circuit design.
[0033] Step S120: calling the trained overhead prediction model to determine the predicted overhead of the EDA simulation task.
[0034] The overhead prediction model is a mathematical model trained based on historical data, which is used to predict the demand of EDA simulation task on computing resources during execution. The overhead prediction model can take the main information of the EDA simulation task as input data, including but not limited to task type, circuit size, input parameters, simulation accuracy requirement and task priority, etc. Through learning and analysis of a certain number of historical task data, the overhead prediction model can establish the mapping relationship between task characteristics and resource overhead, and its output result is the predicted overhead of EDA simulation task, thereby providing a scientific basis for subsequent task scheduling.
[0035] The predicted overhead of the EDA simulation task can include hardware resource overhead and time overhead of the EDA simulation task, etc., wherein: 1. Hardware resource overhead, which can include: (1) CPU core number: refers to the number of processor cores required to complete the EDA simulation task. Different EDA simulation tasks have different demands for computing power. For example, complex analog circuit simulation or large-scale digital circuit timing analysis may require a large number of CPU cores to process data in parallel to improve simulation speed. (2) Memory size: the memory capacity required during the execution of the EDA simulation task. A large amount of data such as circuit models and intermediate calculation results need to be stored during simulation. The larger the circuit size and the more complex the model, the more memory resources are required. For example, simulating a digital circuit containing millions of transistors requires a large memory to store node state information. (3) GPU memory: for simulation tasks involving graphics processing or using GPU acceleration (such as some physical simulation or signal processing tasks), the amount of GPU memory used is also an important overhead. GPU can accelerate specific computing tasks such as matrix operations, thereby improving simulation efficiency. (4) Storage overhead: used to store input files (such as circuit design files, test vector files, etc.), output files (such as simulation results, log files, etc.) and a large amount of data generated during simulation. In some long-running simulation tasks, the amount of data generated can be quite large, requiring sufficient hard disk space to save these data.
[0036] 2. Time overhead, such as simulation duration, which is a key indicator of simulation task execution efficiency. Simulation duration is affected by factors such as circuit complexity, simulation accuracy requirements, resource allocation, etc. Accurate prediction of simulation duration helps to reasonably arrange task scheduling and improve overall throughput.
[0037] Optionally, the step S120 can include: calling the trained at least one overhead prediction model to determine the predicted overhead of the EDA simulation task; wherein each overhead prediction model is used to predict at least one kind of overhead of the EDA simulation task.
[0038] Based on the overhead content predicted by each overhead prediction model, the overhead prediction model can adopt one or more of the following multiple forms: First way: each overhead prediction model predicts the overhead of one computing resource; In this approach, independent cost prediction models can be built for each computational resource expense, such as the number of CPU cores, memory size, GPU memory, and simulation duration. Each cost prediction model is specifically trained and optimized for a particular expense, making full use of historical data and feature information of that expense to improve the accuracy of the cost prediction. For example, one cost prediction model can be used to predict the number of CPU cores required for a simulation task, while another can be used to predict memory size requirements. The advantage of this approach is that the models are highly targeted, capable of deeply exploring the characteristics of each computational resource expense, and the prediction results are relatively accurate.
[0039] The second approach: Each cost prediction model predicts the cost of a type of computing resource; In this approach, computational resource overheads with similar characteristics and correlations can be grouped together, and a single overhead prediction model can predict multiple computational resource overheads within that group. For example, some computational resource overheads may have a certain correlation in resource requirements, such as the number of CPU cores and memory size; a single overhead prediction model can predict both of these overheads simultaneously. As another example, three overhead prediction models can be established to predict hardware resource overhead, storage resource overhead, and time overhead, respectively. By learning the inherent relationships between multiple computational resource overheads, the overhead prediction model can improve prediction efficiency to some extent. While maintaining prediction accuracy, the number of models is reduced, thus lowering the complexity of the overhead prediction model.
[0040] The third approach: Use an overhead prediction model to predict the overhead of all computing resources; This approach allows for the construction of a comprehensive cost prediction model that can simultaneously predict all computational resource costs required for an EDA simulation task. The cost prediction model takes multi-dimensional feature information of the task as input and outputs predicted values for multiple computational resource costs. The advantages of this approach include a simple model architecture, ease of integration and management, rapid provision of prediction results for all costs, and reduced overhead from model calls and data transfer.
[0041] Furthermore, different types of models can be selected when using different approaches, for example: In the way each overhead prediction model predicts a type of computing resource overhead, for the prediction of CPU core number, memory, GPU memory, and storage resource, a multi-layer perceptron (MLP) can be selected. MLP is a classic feedforward neural network that can learn the complex nonlinear mapping relationship between input and output through multiple neuron layers, and is suitable for quantitative prediction of resource demand. For the prediction of time overhead, a long short-term memory (LSTM) network can be used to construct an overhead prediction model. LSTM is a recurrent neural network variant specially designed for processing sequence data, which can capture the dynamic changes of time sequence features in the task execution process, thereby predicting the trend of changes in task resource demand, but the prediction accuracy depends on the task characteristics and the quality of historical data. By effectively capturing the long-term dependencies in the time series, the simulation duration of the simulation task is accurately predicted.
[0042] In the way each overhead prediction model predicts a type of computing resource overhead, if the hardware resource class overhead (such as CPU core number and memory size) is predicted, a support vector regression model can be selected to learn the nonlinear relationship between features and resource demand in small and medium-sized data scenarios, and to achieve relatively stable regression prediction, but the calculation cost is high, and the characteristics in large-scale or high-dimensional tasks need to be carefully evaluated.
[0043] In the way of using one overhead prediction model to predict all overheads, a multi-output neural network model in deep learning can be selected. The multi-output neural network model has strong feature learning ability, can simultaneously process multiple different types of task features and computing resource overheads, and through shared bottom-level feature representation, realizes joint modeling and prediction of multiple computing resource demands, and outputs the estimated demand of each task in each resource dimension, but the correlation between different resource indicators will affect the model effect.
[0044] The training process of the above overhead prediction model can include: first, collecting a certain amount of historical EDA simulation task data, which can include multi-aspect feature information of EDA simulation tasks, such as task type, circuit size, input parameters, etc., and corresponding computing resource overhead data, including CPU core number, memory size, GPU memory, actual execution duration, etc. Second, pre-process the collected data, such as data cleaning, normalization and feature extraction, to improve data quality and stability of model training. Then, select appropriate model architecture according to the predicted overhead, such as multi-layer perceptron long short-term memory network, etc., and use the pre-processed data to train the model. During the training process, the model parameters can be adjusted by optimization algorithms such as gradient descent to minimize the error between the predicted value and the actual value.
[0045] In addition, various methods can be used to improve the performance and generalization ability of the overhead prediction model. A common way is to evaluate the model through cross-validation, that is, to divide the data set into a training set, a validation set and a test set, and to adjust the hyperparameters of the model, such as learning rate, regularization coefficient, network layer number and neuron number, through the evaluation results of the validation set. In addition, regularization techniques such as L1 or L2 regularization can be used to reduce the risk of model overfitting. Appropriate data augmentation methods such as light transformation or disturbance of existing data can also be used to expand the training set and improve the adaptability of the model to different task characteristics. For deep learning models, the expression ability and training effect of the model can also be improved by optimizing the network structure, such as adding residual connections, adjusting the layer depth, and reasonably selecting the activation function.
[0046] The above scheme determines the predicted overhead of the EDA simulation task through the trained at least one overhead prediction model, allows flexible selection or combination of multiple overhead prediction models for prediction according to the characteristics of different overheads, and is beneficial to improve the accuracy of overhead prediction. On the other hand, the overhead of the EDA simulation task is predicted by the at least one overhead prediction model, thereby providing accurate resource requirement information for subsequent task scheduling, which helps to improve the rationality of EDA simulation task scheduling and thereby improves the resource utilization.
[0047] Optionally, the above EDA simulation task scheduling method can further include: obtaining task execution data of the EDA simulation task; and updating the overhead prediction model using the task execution data.
[0048] In the above scheme, the task execution data of the EDA simulation task can be collected after the execution of the EDA simulation task, and the collected task execution data includes: actual CPU core number, memory size, GPU memory, simulation duration, etc. The task execution data of the EDA simulation task can reflect the resource requirement of the task in the real execution environment, and the overhead prediction model can be periodically or incrementally retrained using the task execution data of the EDA simulation task, wherein: 1. Periodic retraining: a fixed period can be set, for example, every day or every week, and the collected task execution data is compared and analyzed with the predicted data. By calculating the error between the predicted value and the actual value, the parameters of the overhead prediction model are adjusted using optimization algorithms in machine learning such as gradient descent to minimize the prediction error. This way can ensure that the model is updated within a certain time interval, and constantly adapts to the change rule of task characteristics and resource requirements.
[0049] 2. Incremental retraining: After each task execution, the model is updated using the task execution data of that task. This approach allows new data information to be incorporated into the model more timely, enabling the model to quickly adapt to dynamic changes in task characteristics. For example, when new task types appear or task characteristics change, incremental retraining can quickly adjust model parameters, improving the model's prediction ability for new situations.
[0050] The above task execution data can be obtained through task monitoring, system logs, task managers, or third-party monitoring tools, wherein: (1) Obtained through task monitoring: During the EDA simulation task execution process, real-time tracking of the running state of the task is performed using task monitoring tools. These tools can record resource usage during the entire life cycle of the task from startup to completion, including but not limited to CPU usage, memory occupancy, disk I / O, network bandwidth, etc. Through task monitoring, detailed resource consumption data of the task at different stages can be obtained. (2) Obtained through system logs: Operating systems and EDA tools usually generate detailed system logs and application logs. These log files contain various information during task execution, such as task start time, end time, error information, resource request and release records, etc. By parsing and analyzing these log files, valuable task execution data can be extracted. (3) Obtained through task manager: Task manager is a tool provided by the operating system to monitor and manage processes and resource usage in the system. It provides an intuitive interface that displays CPU usage, memory occupancy, disk I / O, and network usage of each task. Through the task manager, resource usage data during task execution can be manually or automatically recorded. (4) Obtained through third-party monitoring tools: There are many third-party monitoring tools on the market, such as Prometheus, Grafana, Nagios, etc. These tools can provide more advanced monitoring functions, including resource usage monitoring, performance analysis, alarm settings, etc. By integrating these tools into the EDA simulation environment, more comprehensive and detailed task execution data can be obtained.
[0051] The above scheme obtains task execution data of EDA simulation tasks and updates the overhead prediction model using the task execution data, which enables the overhead prediction model to dynamically adapt to changes in task characteristics and resource requirements, thereby continuously improving the overhead prediction ability for various EDA simulation tasks, and improving the accuracy of the overhead prediction result. On the other hand, updating the overhead prediction model using task execution data is beneficial to improving the generalization ability and adaptability of the overhead prediction model, thereby providing reliable resource requirement prediction for scheduling and allocation of EDA simulation tasks, and improving the rationality of resource allocation.
[0052] Step S130: Calculate the matching degree of the predicted overhead of the EDA simulation task and the currently available resources.
[0053] The above-mentioned traditional static scheduling strategy does not fully consider the real-time state of the existing resources, but the use of the computing resources is dynamically changed in the actual operation process. When multiple tasks request resources at the same time, if the static allocation mode is adopted, the following problem may occur: in the period of resource shortage, resources are still allocated to new tasks, thereby causing the execution efficiency of all tasks to be seriously affected. For example, in some period of a day, multiple engineers submit EDA simulation tasks at the same time. Without considering the current resource shortage, resources are still allocated according to the fixed rules, so that all tasks run slowly in the condition of resource shortage, and the overall simulation period is prolonged. In view of this, the embodiments of the present application comprehensively consider the predicted overhead of the EDA simulation task and the current available resources. The current available resources refer to the total amount of computing resources that can be actually allocated and used when the EDA simulation task scheduling is performed. The current available resources reflect the resource supply capacity at the current time, and are an important basis for task allocation of the EDA simulation task.
[0054] The current available resources can be determined based on the current state of each resource, and the current state of each resource can be determined by one or more of the following multiple ways: The first way is to periodically collect the state of the computing resources. Optionally, the above-mentioned EDA simulation task scheduling method can further include periodically monitoring the state of the computing resources to determine the current available resources.
[0055] In the above-mentioned scheme, a fixed monitoring period can be set in advance according to the real-time requirement of the EDA simulation task scheduling and the characteristics of the resource change, for example, monitoring once per second or once per minute. When each monitoring period arrives, the corresponding interface of the operating system (such as the / proc file system interface of Linux, the performance counter interface of Windows, etc.), the monitoring interface of the virtualization platform (such as the API of VMware) or the dedicated hardware monitoring tool (such as the GPU monitoring tool of NVIDIA) can be called to obtain the use and total amount information of various resources (such as CPU core number, memory, GPU, etc.) on the computing node.
[0056] The above-mentioned scheme can determine the use and available amount of each computing resource by periodically monitoring the state of the computing resources, avoid the unreasonable scheduling problem caused by the lag of the available resource information, and thus improve the rationality of the resource allocation. On the other hand, by regularly updating the state of the current available resources, data basis is provided for the dynamic scheduling of the EDA simulation task, and the rationality of the resource allocation is further improved.
[0057] The second way is to collect the state of the computing resources in an event-triggered manner. Some specific events or conditions can be pre-configured, and when the specific events occur or the specific conditions are met, the collection of the computing resource state is triggered. For example, the collection of the computing resource state is triggered before the matching degree of the predicted overhead of the EDA simulation task and the current available resource is determined, so as to determine the current available resource. This collection manner can obtain the latest resource state in time when the key event occurs, and is beneficial to improving the timeliness of the resource state information.
[0058] The third manner is a notification mechanism manner based on resource reservation and release. When the computing resource is allocated to the task (resource reservation) or the resource is released after the task is executed, a notification message is automatically triggered and sent. By subscribing to the notification, the details of the reservation and release of the resource can be obtained in real time, so that the available resource state can be updated in time. For example, when the new EDA simulation task starts, a notification containing the resource information such as the number of CPU cores and the size of memory occupied by the task can be sent, and the current available resource is updated according to the notification. When the task ends, a resource release notification is sent, and the current available resource is updated again after the notification is received.
[0059] After the current state of each resource is determined, the current available resource can be obtained by subtracting the allocated resource from the total resource. For example, if the total number of CPU cores is 64 and the number of CPU cores currently allocated to the task is 32, the number of currently available CPU cores is 32. In addition, the resource reservation of the device itself needs to be considered, that is, the resource that must be reserved to ensure the basic operation of the device. This part of the resource should be deducted when calculating the current available resource.
[0060] Optionally, the step S130 can include: calculating a matching coefficient of the predicted overhead of each computing resource and the current available resource; wherein the matching coefficient is used to indicate the degree to which the current available resource of each computing resource can meet the predicted overhead; and determining the matching index of the EDA simulation task based on the matching coefficient of each computing resource.
[0061] The matching coefficient of the predicted overhead of each computing resource and the current available resource can be in one of the following forms: The first form: the ratio of the current available resource to the predicted overhead is used as the matching coefficient; The matching coefficient is determined by calculating the ratio of the current available resource to the predicted overhead, and the calculation formula is:
[0062] When the ratio of the current available resource to the predicted overhead is used as the matching coefficient, the matching coefficient can directly reflect the degree to which the current available resource can meet the predicted overhead. When , it means that the current available resource exactly meets the predicted overhead; when When the current available resource is greater than the predicted consumption, it means that the current available resource not only meets the predicted consumption, but also leaves a certain margin. When the current available resource is less than the predicted consumption, it means that the current available resource cannot completely meet the predicted consumption.
[0063] The second form: using the difference between the current available resource and the predicted consumption as the matching coefficient; The matching coefficient is determined by calculating the difference between the current available resource and the predicted consumption, and the calculation formula is:
[0064] When the difference between the current available resource and the predicted consumption is used as the matching coefficient, the matching coefficient can reflect the amount of remaining resources after using the current resource to execute the EDA simulation task, and in , it means that the current available resource exactly meets the predicted consumption; in , it means that the current available resource not only meets the predicted consumption, but also leaves a certain margin; in , it means that the current available resource is insufficient and cannot meet the predicted consumption.
[0065] The third form: fuzzy logic form; The matching coefficient can be calculated based on fuzzy logic theory. Specifically, fuzzy sets can be defined, such as 11 representing sufficient resources, 10 representing basically meeting resources, 01 representing resource shortage, and 00 representing serious resource shortage, and the corresponding membership functions are determined. The matching degree of the current available resource and the predicted consumption is calculated through the membership function to obtain the matching coefficient. This method can handle the uncertainty and fuzziness in resource matching, and is closer to the complex situation in actual application. For example, the fuzzy rules for resource matching are set as follows: When the current available resource is much greater than the predicted consumption, the resources are sufficient, and the matching coefficient can be set to 11; When the current available resource is slightly greater than the predicted consumption, the resources are basically met, and the matching coefficient can be set to 10; When the current available resource is slightly less than the predicted consumption, the resources are in shortage, and the matching coefficient can be set to 01; When the current available resource is much less than the predicted consumption, the resources are in serious shortage, and the matching coefficient can be set to 00.
[0066] After determining the matching coefficients of each computing resource, the matching index of the EDA simulation task can be determined in one of the following ways: The first determination method: simple average; The matching coefficients of the computing resources are arithmetically averaged to serve as the matching index of the EDA simulation task. The calculation formula is: matching index = (matching coefficient 1 + matching coefficient 2 + … + matching coefficient n) / n, where n is the number of the computing resources. For example, if the computing resources include the number of CPU cores, the size of memory, and the GPU memory, the matching coefficients of them are calculated respectively n , , , , then the matching index is .
[0067] The second determination method is to perform weighted averaging. Optionally, the matching index of the EDA simulation task is determined based on the matching coefficients of the computing resources, including: the matching index of the EDA simulation task is determined by weighted summation of the matching coefficients of the computing resources with first weights; wherein the first weights are used to represent the importance of the computing resources to the EDA simulation task. For example: if the computing resources include the number of CPU cores, the size of memory, and the GPU memory, the matching coefficients of them are calculated respectively , , , then the matching index can be , where , and are the first weights of the number of CPU cores, the size of memory, and the GPU memory respectively.
[0068] The first weight mentioned above refers to the coefficient used to represent the importance of the computing resources to the EDA simulation task in the process of weighted summation. The value range of the weight is between 0 and 1, and the sum of all weights is 1. The greater the weight, the higher the importance of the corresponding computing resource in the task execution.
[0069] The first weight can be determined in one of the following ways: (1) based on task requirement analysis: deeply analyze the characteristics and requirements of EDA simulation tasks, and determine the degree of dependence on different computing resources. For example, for a compute-intensive task, the number of CPU cores may be more critical; for a data-intensive task, the memory size may be more important. According to the task requirement analysis result, the corresponding weight is allocated to each computing resource. (2) based on historical data statistics: by collecting a certain amount of historical task actual running data, including the use of each computing resource and the task completion time and other indicators. Through statistical analysis, the influence degree of each resource on the task execution efficiency is determined. For example, the correlation between the use of each computing resource and the task completion time can be calculated, and the weight of each resource is allocated according to the correlation. (3) based on expert experience: according to the experience and knowledge of experts in the field, the importance of each computing resource to EDA simulation tasks is judged. Experts can set reasonable weights for each resource according to actual experience and industry standards. For example, experts may think that in analog circuit simulation, the memory size has a greater impact on task execution, so a higher weight is allocated to it.
[0070] The above scheme can comprehensively consider the importance of different computing resources to EDA simulation tasks by weighting and summing the matching coefficients of each computing resource through the first weight, so that the matching index can more truly reflect the demand of EDA simulation tasks for computing resources, thereby improving the rationality of resource allocation; on the other hand, the matching index obtained by weighting and summing can effectively distinguish the dependence degree of different tasks on resources, and the scheduling of EDA simulation tasks through the matching index can improve the rationality of resource allocation of the above EDA simulation task scheduling method.
[0071] The third determination method is to take the minimum value method. The minimum value of the matching coefficients of each computing resource can be selected as the matching index, and in this way, the most stressed resource can determine the overall matching of the task. For example, in the matching coefficients of multiple resources, if the CPU core number matching coefficient is 0.8, the memory size matching coefficient is 1.2, and the GPU memory matching coefficient is 0.6, the matching index can be set to 0.6.
[0072] The above scheme can accurately quantify the relationship between the current resource and the predicted overhead of each computing resource by calculating the matching coefficient of each computing resource, so as to formulate a more accurate resource scheduling strategy, which is conducive to improving resource utilization; on the other hand, the matching index can integrate the matching coefficients of each computing resource, and the task scheduling of EDA simulation tasks based on the matching index can improve the scheduling rationality of the above EDA simulation task scheduling method.
[0073] Step S140: determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index, and updating the scheduling queue based on the scheduling priority.
[0074] The scheduling queue is a data structure for storing EDA simulation tasks to be executed, usually in the form of a queue or priority queue. The scheduling queue is mainly used to manage the execution order of multiple tasks, and each task has a specific position in the scheduling queue. The tasks are executed in order according to their position in the queue. The scheduling queue can be dynamically adjusted to adapt to changes in resources and task priorities. The scheduling priority is an index used to measure the execution order of EDA simulation tasks in the scheduling queue. The scheduling priority reflects the urgency and importance of the task. Tasks with high scheduling priority are given priority in allocating computing resources and are executed first, while tasks with low scheduling priority are placed at the back of the queue and wait to be executed. The purpose of scheduling priority is to optimize the task scheduling process, ensure that critical tasks are completed on time, and improve the efficiency of simulation task execution.
[0075] The step S140 above can determine the scheduling priority of the task based only on the matching index, or can determine the scheduling priority of the task based on the matching index and other factors. Specifically: The first way: only based on the matching index to determine the scheduling priority of the task; Optionally, the step S140 above determines the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index, which can include: When the matching index is in the first index interval, it is determined that the scheduling priority of the EDA simulation task in the scheduling queue is the first scheduling priority; wherein the first index interval is used to represent the matching index value interval in which the current available resources meet the predicted cost and the resource utilization rate is greater than the preset utilization rate threshold; When the matching index is in the second index interval, it is determined that the scheduling priority of the EDA simulation task in the scheduling queue is the second scheduling priority; wherein the second index interval is used to represent the matching index value interval in which the current available resources meet the predicted cost and the resource utilization rate is not greater than the preset utilization rate threshold; the second scheduling priority is lower than the first scheduling priority; When the matching index is in the third index interval, it is determined that the scheduling priority of the EDA simulation task in the scheduling queue is the third scheduling priority; wherein the third index interval is used to represent the matching index value interval in which the current available resources do not meet the predicted cost, and the third scheduling priority is lower than the second scheduling priority.
[0076] When the matching index is in the first index interval, it represents that the current available resources not only can meet the predicted overhead of the EDA simulation task, but also the corresponding resource utilization is greater than a preset utilization threshold. In this case, the task whose matching index is in this interval has a high matching degree of resource demand and current available resources, and can also guarantee efficient utilization of resources. When the matching index is in the second index interval, it represents that the current available resources can meet the predicted overhead of the EDA simulation task, but the utilization of resources is not less than the preset utilization threshold. That is, although the resources can support the execution of the task, the efficient utilization of resources may not be achieved. When the matching index is in the third index interval, it represents that the current available resources cannot meet the predicted overhead of the EDA simulation task. The task whose matching index is in the third index interval may not be able to execute smoothly or may need to wait for the release of resources before execution due to the lack of sufficient resources.
[0077] In setting the above index interval, the resource utilization of multiple computing resources can be considered comprehensively, and the resource utilization compared with the preset threshold can be a comprehensive resource utilization obtained by comprehensively considering the resource utilization of each computing resource. The calculation method of the comprehensive resource utilization can adopt a weighted summation method, a simple average method, a minimum value method, etc. The calculation method of the comprehensive resource utilization can be the same as the method of obtaining the matching index by comprehensively considering the matching coefficients of each computing resource. Taking the weighted average method as an example to introduce the calculation method of the comprehensive resource utilization: For the comprehensive resource utilization, the resource utilization of each computing resource can be given different weights according to its importance to the task, and then the comprehensive resource utilization is obtained by weighted summation. For example, in the above scheme, if the computing resources include CPU core number, memory size, and GPU memory, the matching coefficients of them are calculated 、 、 The matching index can be , wherein 、 and are the first weights of the CPU core number, the memory size, and the GPU memory, respectively. Then the calculation method of the comprehensive resource utilization can be: , wherein 、 and are the resource utilizations of the CPU core number, the memory size, and the GPU memory, respectively.
[0078] The value of the preset utilization threshold can be considered from the following aspects: (1) task demand characteristics: different EDA simulation tasks have different resource utilization requirements. For some tasks with high resource requirements, such as large-scale parallel simulation tasks, a higher utilization threshold can be set to ensure that the task can obtain sufficient resource support and complete the simulation efficiently; for some tasks with relatively low resource requirements, the utilization threshold can be appropriately reduced. (2) Provided resource characteristics: hardware configuration and total resource quantity also affect the setting of the utilization threshold. If the resources are abundant, the threshold can be appropriately increased to improve the overall utilization of the resources; if the resources are scarce, a lower utilization threshold can be set to reserve a certain amount of resources to ensure the smooth execution of the task and avoid performance degradation caused by excessive allocation of resources. (3) Resource reservation and allocation strategy: if there is a resource reservation or allocation strategy, such as reserving specific resources for high-priority tasks or important tasks, the impact of these reserved resources needs to be considered when setting the utilization threshold to ensure the reasonable use of the reserved resources and avoid excessive impact on the resource allocation of other tasks.
[0079] The above scheme can reasonably arrange the scheduling order of the EDA simulation tasks according to the different intervals of the matching index by dividing the matching index into different intervals and corresponding different scheduling priorities, thereby improving the resource utilization. On the other hand, by clearly defining the hierarchical relationship between different priorities, the execution order of the tasks can be quickly determined, and tasks with high resource matching degree and high utilization are executed preferentially, so that tasks that can obtain sufficient resource support are executed preferentially, thereby shortening the waiting time of the tasks and improving the throughput of the tasks. For tasks that do not meet the resource requirements, the priority is reduced, which can avoid these tasks occupying limited scheduling resources, and more efficiently process tasks with high resource matching degree, thereby improving the task execution efficiency of the above EDA simulation task scheduling method.
[0080] The second way is to determine the scheduling priority of the task based on the matching index and other factors. Optionally, the step S140 determines the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index, including: determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index, the task priority, the task deadline, and the estimated released computing resource.
[0081] The task priority mentioned above refers to a level or value set according to the importance and urgency of the task, which is used to measure the priority of the task in the scheduling queue from the perspective of the task itself. The task priority can be set by the user according to the importance and urgency of the task, or can be automatically determined according to the type of task, resource demand, etc. It can be understood that the task priority is an attribute determined according to the characteristics and requirements of the task itself, mainly reflecting the importance and urgency of the task in the business level. The task priority is usually determined by factors such as the nature of the task, project requirements, user settings, etc. For example, some critical tasks are usually assigned a higher priority because these critical tasks have a critical impact on the progress of the entire project. The task priority is a quantitative representation of the inherent properties of the task, which is used to identify the relative importance of the task among many tasks. The scheduling priority is a dynamic indicator determined by integrating various factors in the task scheduling process, which is used to determine the execution order of the task in the scheduling queue. In the present implementation, the determination of the scheduling priority not only considers the task priority, but also combines the matching index, task deadline, and estimated release of computing resources. The scheduling priority is a comprehensive and dynamic evaluation result, which is used to guide how to reasonably arrange the execution order of the task to achieve optimal utilization of resources and efficient execution of tasks.
[0082] The task deadline mentioned above refers to the latest time point or time range at which the task must be completed, which is an important constraint condition in task scheduling, used to ensure that the task is completed within the specified time. The task deadline can be set by the user according to the project plan and task requirements, or can be automatically calculated according to the dependency relationship of the task and the overall progress.
[0083] The estimated release of computing resources mentioned above refers to the amount of computing resources that will be released at a certain time point in the future according to the estimated completion time of the currently running task. The estimated release of computing resources helps to plan and allocate resources in advance, improving the utilization of resources. The estimated release of computing resources can be estimated by analyzing historical execution data of the task, progress of the current task, and estimated completion time of the task, etc.
[0084] The above scheme determines the scheduling priority by integrating the matching index, task priority, task deadline, and estimated release of computing resources, which can comprehensively consider the resource demand and business characteristics of the task, and can more accurately identify EDA simulation tasks that perform well in both resource matching and business importance, and make these tasks have priority to obtain scheduling opportunities, thereby improving the overall execution efficiency of EDA simulation tasks. On the other hand, the scheduling priority of the EDA simulation task is determined by comprehensively considering multiple factors, which can more flexibly adapt to complex and variable task scheduling scenarios, thereby improving the rationality of resource allocation.
[0085] The above scheme can determine the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index and the task priority, the task deadline, and the estimated release computing resource in at least one of the following ways: The first way is to determine the scheduling priority by using weighted summation to calculate the comprehensive index. Optionally, the above determining the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index and the task priority, the task deadline, and the estimated release computing resource includes: using a second weight to perform weighted summation on the matching index, the task priority, the task deadline, and the estimated release computing resource to determine a task scheduling index of the EDA simulation task; and determining the scheduling priority of the EDA simulation task in the scheduling queue based on the task scheduling index.
[0086] The second weight refers to a coefficient used to represent the influence degree of the matching index, the task priority, the task deadline, and the estimated release computing resource on the scheduling priority in the process of weighted summation. The weight value ranges from 0 to 1, and the sum of all weights is 1. The greater the weight, the higher the importance of the corresponding factor in determining the scheduling priority. The second weight can be determined in one or more of the following ways: (1) based on task demand analysis: according to the characteristics and scheduling goals of the task, analyze the influence degree of each factor on the scheduling priority. For example, for time-sensitive tasks, the weight of the task deadline can be higher; for resource-sensitive tasks, the weight of the matching index can be higher. (2) based on historical data statistics: collect historical scheduling data and task execution results, and determine the correlation between each factor and the task scheduling effect through statistical analysis. According to the correlation, assign weights to each factor to reflect their actual influence on the scheduling priority. (3) based on expert experience judgment: according to the experience and knowledge of experts in the field, judge the importance of each factor in scheduling decision. Experts can set reasonable weights for each factor according to actual experience and industry standards.
[0087] Before weighted summation using the second weight, the matching index, the task priority, the task deadline, and the estimated release computing resource can be normalized. Common normalization methods include linear normalization, Min-Max normalization, etc. After normalization, the task scheduling index can be calculated using the following calculation formula:
[0088] wherein, , , and are the normalized matching index, the task priority, the task deadline, and the estimated release computing resource, respectively. , , and These are the matching metrics, task priority, task deadline, and the second weights for the expected release of computing resources.
[0089] After determining the task scheduling metrics, the scheduling priority of tasks can be determined based on the magnitude of these metrics. Specifically, a task scheduling metric is a quantitative indicator that comprehensively reflects factors such as the degree of task resource matching, business importance, time constraints, and dynamic changes in resources. During scheduling decisions, tasks are arranged in descending order of their scheduling metrics. Tasks with higher metric values have higher scheduling priority and should be scheduled for execution first; conversely, tasks with lower metric values are assigned lower scheduling priority and placed at the back of the queue, awaiting resource release or improved scheduling conditions before execution.
[0090] The above scheme utilizes a second weight to perform a weighted summation of matching indicators, task priorities, task deadlines, and expected released computing resources. This comprehensive approach takes into account the task's resource requirements, business importance, time constraints, and dynamic changes in resources. This comprehensive evaluation method enables task scheduling indicators to more fully reflect the task's execution needs and urgency, thereby providing a more scientific and accurate basis for determining scheduling priorities and improving the rationality of scheduling decisions.
[0091] The second approach: Use a scheduling decision model to determine scheduling priorities; Optionally, the above-mentioned determination of the scheduling priority of EDA simulation tasks in the scheduling queue based on matching indicators, task priority, task deadline, and expected release of computing resources includes: inputting matching indicators, task priority, task deadline, and expected release of computing resources into a trained scheduling decision model, and determining the scheduling priority of the EDA simulation tasks output by the scheduling decision model in the scheduling queue.
[0092] The aforementioned scheduling decision model is a machine learning model trained on a certain amount of historical data. Its main function is to comprehensively analyze various characteristic factors of a task, such as matching indicators, task priority, task deadline, and expected release of computing resources, thereby determining a reasonable scheduling priority for each task. The scheduling decision model can automatically discover the influence patterns of different factors on task scheduling effectiveness by learning scheduling patterns and experience from historical data, achieving intelligent scheduling decisions. The scheduling decision model can employ techniques such as random forests, support vector machines, multilayer perceptrons, and long short-term memory networks.
[0093] The scheduling decision model can continuously optimize the decision strategy of the model based on historical scheduling data and task execution results. By continuously collecting scheduling information and execution results of tasks and feeding these data back to the model, the model can learn more accurate scheduling patterns and mapping relationships between task characteristics and scheduling effects. As the amount of data increases and the model training deepens, the scheduling decision model can gradually adjust internal parameters and decision logic, thereby improving the accuracy and adaptability of task scheduling priority prediction and better meeting the needs of EDA simulation task scheduling.
[0094] The above scheme can realize intelligent evaluation of task scheduling priority by inputting matching indicators, task priority, task deadline and estimated released computing resources into the trained scheduling decision model. The model-driven method can automatically learn and adapt to complex patterns and dynamic changes in task scheduling, provide more accurate scheduling priority determination by considering multiple factors, and thus improve the rationality of scheduling decisions. On the other hand, the model-driven method can continuously optimize the decision strategy of the model based on historical scheduling data and task execution results, thereby better coping with different types of tasks and resource changes, making the above EDA simulation task scheduling method applicable to more application scenarios, and thus improving the adaptability and flexibility of the above EDA simulation task scheduling method.
[0095] Step S150: Execute tasks in the updated scheduling queue.
[0096] The above step S150 can allocate the required computing resources, including CPU core number, memory, GPU memory, etc., to each task in sequence according to the task order in the scheduling queue, ensuring that the tasks can be executed smoothly. In the resource allocation process, reasonable resource allocation can be made according to the actual needs of the tasks, while also considering the overall resource usage to avoid uneven or excessive resource allocation. For the execution of each task, the corresponding EDA simulation tool or program needs to be started, and the input parameters and running environment of the task need to be set to ensure that the task can be started normally and start simulation calculation.
[0097] In addition, during the task execution process, the running state of the task, including resource usage and execution progress, can be monitored in real time to timely discover and handle possible problems. If an exception or error occurs during the execution of a task, appropriate measures can be taken according to the specific circumstances, such as pausing the task, rescheduling or releasing resources, etc. In addition, the execution results and related log information of the task can be recorded for subsequent analysis and optimization. For tasks that have been completed, relevant temporary files and resource occupation can be cleaned up in time to make room for the execution of subsequent tasks.
[0098] Optionally, the EDA simulation task scheduling method described above can further include: monitoring the actual usage of resources of the EDA simulation task when the EDA simulation task is executed; and performing at least one of suspending execution of the EDA simulation task, lowering the scheduling priority of the EDA simulation task, reclaiming redundant resources, and allocating idle computing resources to the EDA simulation task when the actual usage of resources is greater than the predicted overhead and the deviation between the actual usage of resources and the predicted overhead is greater than a preset deviation threshold.
[0099] When the EDA simulation task is executed, the actual usage of resources of the EDA simulation task can be monitored using resource monitoring tools, performance counters, and other tools. These tools can track the resource consumption of the task in real time, including CPU usage, memory usage, disk I / O operations, and network bandwidth. By regularly collecting these data during task execution, the actual resource usage of the EDA simulation task at each time can be accurately mastered. In addition, the API provided by the task manager and the operating system can also be used to obtain such resource usage information, thereby achieving effective monitoring of the actual usage of resources of the EDA simulation task.
[0100] When the actual usage of resources is greater than the predicted overhead, the corresponding action can be triggered by at least one of the following multiple triggering mechanisms: The first triggering mechanism: any one of the computing resources exceeds the deviation threshold set for the computing resource in advance; When the deviation between the actual usage of any one of the computing resources (such as CPU core, memory, GPU memory, etc.) and the predicted overhead exceeds the preset deviation threshold, the corresponding processing action is triggered immediately. This mechanism can quickly respond to abnormal situations in a single resource dimension, preventing excessive use of a single resource from having a serious impact on overall performance.
[0101] The second triggering mechanism: any one of the key computing resources exceeds the deviation threshold set for the computing resource in advance; The key computing resources for the EDA simulation task can be set in advance, for example, the computing resources with larger first weight values described above are set as key computing resources for the EDA simulation task. When the deviation between the actual usage of any one of the key computing resources and the predicted overhead exceeds the preset deviation threshold, the corresponding processing action is triggered immediately.
[0102] The third triggering mechanism: the actual usage of resources of more than a preset number of computing resources exceeds the preset deviation threshold; When the actual usage of the preset number of computing resources deviates from the predicted overhead, and each deviation exceeds the corresponding preset deviation threshold, the corresponding action is performed. This mechanism considers the deviation of multiple resource dimensions, avoids frequent triggering of processing actions due to slight deviation of a single resource, and improves the stability of the EDA simulation task scheduling method and the accuracy of resource scheduling.
[0103] When setting the deviation threshold for each computing resource, the following factors can be considered: (1) Task demand characteristics: Different tasks have different sensitivities and fluctuations in computing resource demand. For some tasks with large fluctuations in demand for specific resources, a relatively high deviation threshold may need to be set to avoid frequent triggering of scheduling adjustments due to normal fluctuations in task demand. For tasks with relatively stable and critical resource demand, a lower deviation threshold should be set to detect and handle abnormal resource usage in a timely manner. (2) Resource type and characteristics: Different types of computing resources have different characteristics and measurement units. For example, CPU usage is usually expressed as a percentage, and its fluctuations may be more frequent. Memory usage is measured in bytes, and its changes may be relatively smooth but have a greater impact on task execution. Therefore, different resources should be set differently based on their characteristics and actual usage to accurately reflect the reasonableness of resource usage. (3) Historical data and statistical rules: By analyzing historical task execution data and resource usage, we can understand the actual usage fluctuation range and deviation distribution of each computing resource. Based on statistical analysis methods such as calculating the mean and standard deviation, combined with business requirements and service level agreements (SLA), the deviation threshold can be reasonably determined to effectively identify abnormal resource usage without triggering unnecessary scheduling operations due to excessive sensitivity. (4) Availability and redundancy of computing resources: The total amount of resources provided, the current available resources, and the resource redundancy are also important factors in setting the deviation threshold. In a resource-constrained situation, a more stringent deviation threshold should be set to release resources that are being excessively occupied and ensure the normal execution of other tasks. In a resource-rich situation, the deviation threshold can be relaxed to give tasks some flexibility in resource usage. (5) Business goals and quality of service requirements: Business goals and quality of service requirements guide the setting of the deviation threshold. If the business goal is to ensure fast execution of high-priority tasks and achieve high throughput, a more sensitive deviation threshold should be set to adjust resource allocation in a timely manner and ensure resource supply for critical tasks. If more emphasis is placed on overall stability and task continuity, the deviation threshold can be increased to reduce the impact of frequent scheduling adjustments on stability.
[0104] The above suspending the EDA simulation task refers to temporarily stopping the running of the task during task execution, making it enter a waiting state and no longer occupy computing resources. The state and data of the task are saved so that the execution can be resumed when needed. The use scenario of the task suspension operation is, for example, when the actual resource usage of the task significantly exceeds the predicted overhead, and the resources are tight, causing other tasks to be unable to obtain sufficient resources, the task can be suspended to release resources to other tasks. In addition, if an exception or error occurs during task execution, the task can also be suspended for checking and repairing.
[0105] The above lowering the scheduling priority of the EDA simulation task refers to lowering the priority of the task in the scheduling queue, so that it is arranged after other tasks in terms of resource allocation and execution order. Lowering the scheduling priority does not suspend the execution of the task, but reduces the opportunity of the task to obtain resources, thereby affecting the execution progress. The use scenario of the lowering scheduling priority operation is, for example, when the actual resource usage of the task exceeds the predicted overhead, but suspending the task may have a great impact on the business process, the scheduling priority of the task can be lowered. The operation of lowering the scheduling priority of the EDA simulation task ensures that other tasks can obtain resources in priority, while allowing the task to continue running, but the progress may be delayed.
[0106] The above recycling redundant resources operation refers to identifying and releasing computing resources that are not fully utilized or over-allocated in the EDA simulation task during task execution by monitoring the actual resource usage of the task. The use scenario of the recycling redundant resources operation is, for example, when the actual resource usage of the EDA simulation task is much lower than the predicted overhead, there may be an over-allocated resource situation. In this case, redundant resources can be recycled to improve resource utilization and avoid resource waste. The recycled resources can be used for the execution of other tasks, thereby optimizing the overall resource allocation and ensuring that more tasks can be efficiently processed.
[0107] The above allocating idle computing resources to the EDA simulation task refers to finding unused computing resources, including unallocated computing resources and redundant computing resources allocated to tasks, and allocating these idle computing resources to the current EDA simulation task to meet the resource needs of the task. The use scenario of the operation of allocating idle computing resources to the EDA simulation task is, for example, when the actual resource usage of the task exceeds the predicted overhead, but there are still idle resources or other tasks have unused redundant computing resources, the task can be allocated these idle resources. The operation of allocating idle computing resources to the EDA simulation task can avoid suspending or delaying the task due to insufficient resources, ensuring that the task can continue to execute, while improving resource utilization.
[0108] The three operations described above—pausing EDA simulation tasks, lowering the scheduling priority of EDA simulation tasks, and allocating idle computing resources to EDA simulation tasks—offer high flexibility and combinability. Specifically, when a deviation is detected between the actual resource usage and predicted overhead of an EDA simulation task, one of these operations can be executed individually, or multiple operations can be combined as needed, depending on the current resource status and task requirements. For example, after pausing a task, if idle resources are subsequently found, they can be allocated and the task can resume execution; or, while lowering the task priority, if idle resources are detected, they can be appropriately allocated to the task to balance its resource requirements. This flexible combination allows the aforementioned EDA simulation task scheduling method to more accurately respond to complex and changing resource usage situations, achieving reasonable resource allocation and efficient utilization.
[0109] The above solution monitors the actual resources used in real time during EDA simulation tasks, which can promptly detect the deviation between the predicted overhead and the actual resource usage. When the actual resources used exceed the predicted overhead and the deviation exceeds a preset threshold, measures such as pausing the task, lowering the priority, reclaiming redundant resources, or allocating idle resources are taken. This can reduce the failure of EDA simulation tasks due to insufficient resources and help improve the reliability and stability of EDA simulation task execution.
[0110] Optionally, the above EDA simulation task scheduling method further includes at least one of the following when computing resources are in a high-occupancy state: performing task scheduling that delays new EDA simulation tasks, pausing non-critical tasks, adjusting the scheduling priority of EDA simulation tasks, and reallocating idle computing resources.
[0111] The aforementioned high occupancy state refers to a situation where the utilization rate of computing resources reaches a high level, which may affect the scheduling of new tasks or the execution efficiency of existing tasks. For the determination method of high occupancy state, please refer to the subsequent content of the embodiments of this application.
[0112] The aforementioned task scheduling operation of delaying new EDA simulation tasks refers to postponing the scheduling of new EDA simulation tasks when computing resources are under high occupancy, allowing them to wait for resource utilization to decrease or for a certain period of time before scheduling. The delay time can be preset, for example, 5-10 minutes. This operation is used in scenarios such as when computing resource utilization is close to or reaches its capacity limit, and the execution priority of existing tasks is higher than that of new tasks. By delaying the scheduling of new tasks, it ensures that existing tasks receive sufficient resource support, avoiding task failure or performance degradation due to insufficient resources.
[0113] The above-mentioned suspension of non-critical task operations refers to suspending non-critical EDA simulation tasks that have less impact on business continuity and overall progress when computing resources are tight. The suspension duration can be a fixed duration or a duration determined dynamically according to the recovery state of the computing resources. The use scenario of this operation is, for example, when the resources are highly tight and there are multiple parallel tasks. By suspending these tasks, the resources occupied by them can be released for use by critical tasks, thereby ensuring the smooth progress of critical tasks and ensuring that the overall project progress is not affected.
[0114] The above-mentioned adjustment of the scheduling priority of EDA simulation tasks refers to dynamically adjusting the priority of EDA simulation tasks in the scheduling queue according to the current usage of computing resources and the urgency of the tasks. The use scenario of this operation is, for example, when the computing resources are insufficient to meet the needs of all tasks. By lowering the priority of non-critical tasks and raising the priority of critical tasks, it can be ensured that critical tasks can obtain resources and execute in priority, thereby optimizing resource allocation and improving the overall execution efficiency of tasks.
[0115] The above-mentioned reallocation of idle computing resources refers to reallocating existing computing resources to meet the needs of different tasks. The use scenario of this operation is, for example, when the computing resources are unevenly distributed or some resources are not fully utilized. By reallocating resources, idle or inefficiently used resources can be transferred to tasks with high demand, thereby improving the overall utilization of resources and alleviating the situation of resource shortage.
[0116] The above-mentioned four operations of delaying the scheduling of new EDA simulation tasks, suspending non-critical tasks, adjusting the scheduling priority of EDA simulation tasks, and reallocating idle computing resources are independent and can be executed separately. For example, when the resources are slightly tight, only the scheduling of new tasks can be delayed to leave enough resources for existing tasks; if it is necessary to quickly release resources to ensure critical tasks, non-critical tasks can be suspended alone; if the priority of the tasks changes, the scheduling priority can be adjusted alone; if it is found that some resources are not allocated reasonably, the idle computing resources can be reallocated alone. In addition, the above-mentioned four operations also support flexible combination. For example, when under high load, new task scheduling can be delayed and non-critical tasks can be suspended at the same time to quickly reduce resource pressure; or while adjusting the scheduling priority, idle computing resources can be reallocated to optimize resource allocation and improve the execution efficiency of critical tasks. This combination makes the scheduling strategy more adaptable and can effectively cope with complex and variable resource demand situations.
[0117] The above scheme can effectively alleviate resource pressure and improve the execution stability and success rate of EDA simulation tasks by delaying new task scheduling, suspending non-critical tasks, adjusting task scheduling priority, and reallocating idle computing resources when the computing resources are in a high occupancy state. On the other hand, by delaying non-critical tasks and adjusting task priority, the resource needs of critical tasks and urgent tasks can be prioritized to ensure that important tasks are completed on time. In addition, reallocating idle computing resources can more reasonably utilize idle resources and reduce resource waste.
[0118] Optionally, the EDA simulation task scheduling method further comprises: determining that the computing resources are in a high occupancy state when the resource usage rate of any one computing resource is greater than a preset usage rate threshold; or determining that the computing resources are in a high occupancy state when the resource usage rate of more than a preset number of computing resources is greater than the preset usage rate threshold of each computing resource; or calculating a comprehensive occupancy index based on the resource usage rate of each computing resource, and determining that the computing resources are in a high occupancy state when the comprehensive occupancy index is greater than a preset occupancy index threshold.
[0119] The above scheme can determine whether the computing resources are in a high occupancy state in one of the following three ways: First judgment method: single dimension judgment; When the resource usage rate of any one computing resource exceeds its preset usage rate threshold, it is determined that the computing resources are in a high occupancy state. For example, if the CPU usage rate exceeds 95% or the memory remaining space is less than 5%, it is determined that the computing resources are in a high occupancy state.
[0120] Second judgment method: multi-dimensional judgment; When the resource usage rate of more than a preset number of computing resources exceeds their respective preset usage rate thresholds, it is determined that the computing resources are in a high occupancy state. For example, if the usage rates of CPU, memory and GPU memory all exceed their respective thresholds, it is determined that the computing resources are in a high occupancy state.
[0121] Third judgment method: comprehensive occupancy index judgment; A comprehensive occupancy index is calculated based on the resource usage rate of each computing resource. If the index exceeds a preset occupancy index threshold, it is determined that the computing resources are in a high occupancy state. For example, normalize and weight the comprehensive occupancy index of multiple resource occupancy ratios. If the index exceeds 0.85 / 1, it is determined that the computing resources are in a high occupancy state.
[0122] In the manner of judging whether the computing resources are in a high occupation state by using the comprehensive occupation index, the comprehensive occupation index can have multiple forms. For example, it can be the average value of the resource usage rates of each computing resource, which reflects the overall occupation of all computing resources. It can also be a weighted average of the resource usage rates of each computing resource, which can give different weights (such as the first weight introduced in the above content) according to the different importance of each resource to task execution, so as to more accurately reflect the focus and priority of resource occupation. In addition, the maximum value of the resource usage rates of each computing resource can also be used as the comprehensive occupation index, which focuses on the most tense resource condition. The calculation methods of these comprehensive occupation indexes can reflect the overall occupation level of computing resources from different angles, providing diversified basis for determining the high occupation state.
[0123] When setting the usage rate threshold for the resource usage rate of each computing resource and setting the occupation index threshold for the comprehensive occupation index, the following factors can be considered: (1) task demand and resource characteristics: different tasks have different demands for computing resources, and resource characteristics are also different. For example, CPU usage rate is usually expressed in percentage and fluctuates frequently, while memory occupation is in bytes and changes relatively gently. Therefore, reasonable thresholds can be set according to task demand and resource characteristics. (2) Historical data and statistical rules: by analyzing the execution data and resource usage of historical tasks, the actual usage fluctuation range and deviation distribution rules of each computing resource are understood. Based on statistical analysis methods such as calculating the mean, standard deviation, etc., reasonable thresholds can be set in combination with business requirements. (3) Resource availability and redundancy: the total amount of resources provided, the current available resources and the resource redundancy are important basis for setting thresholds. In the case of resource shortage, a more stringent threshold should be set to release the resources occupied excessively in time; while in the case of abundant resources, the threshold can be appropriately relaxed. (4) Business goals and quality of service requirements: business goals and quality of service requirements have guiding significance for threshold setting. If the business goal is to ensure the fast execution and high throughput of high-priority tasks, a more sensitive threshold needs to be set; if more emphasis is placed on stability and task continuity, the threshold can be appropriately increased to reduce the impact of frequent scheduling adjustments on stability.
[0124] The above scheme determines whether the computing resources are in a high occupation state by multiple determination conditions, which can comprehensively and flexibly reflect the resource usage, so that the EDA simulation task scheduling method can be applied to more application scenarios, thereby improving the flexibility and adaptability of the EDA simulation task scheduling method. On the other hand, by flexibly selecting suitable determination methods and timely taking measures such as delaying new task scheduling and suspending non-critical tasks, the diversified determination conditions and coping strategies can more effectively optimize resource allocation and improve the overall execution efficiency of EDA simulation tasks.
[0125] Please refer to Figure 2 Based on the same inventive concept, the embodiment of the present application further provides an EDA simulation task scheduling device 200, which comprises: The EDA simulation task acquisition module 210 is configured to acquire an EDA simulation task. The predicted overhead determination module 220 is configured to call the trained overhead prediction model to determine the predicted overhead of the EDA simulation task. The matching index calculation module 230 is configured to calculate a matching index of the predicted overhead of the EDA simulation task and the current available resources, wherein the matching index is used to indicate the degree to which the current available resources can meet the predicted overhead. The scheduling queue updating module 240 is configured to determine the position of the EDA simulation task in the scheduling queue and update the scheduling queue based on the matching index. The task execution module 250 is configured to execute the tasks in the updated scheduling queue.
[0126] It can be understood that the EDA simulation task scheduling device 200 described above can realize the functions of the EDA simulation task scheduling method provided by the embodiment of the present application. In order to simplify the description, the above-mentioned EDA simulation task scheduling device 200 will not be described again, and the scheme for realizing the functions of the above-mentioned EDA simulation task scheduling device 200 can refer to the EDA simulation task scheduling method provided by the embodiment of the present application.
[0127] Based on the same inventive concept, the embodiment of the present application further provides an EDA all-in-one machine, which comprises the EDA simulation task scheduling device 200 provided by the embodiment of the present application.
[0128] The EDA all-in-one machine described above refers to a special computing device that integrates the electronic design automation software tools, computing hardware, storage systems and network equipment required for chip design in the form of a whole cabinet or a whole machine box. The EDA all-in-one machine can adopt a standardized rack structure, integrate multiple node servers, distributed storage arrays and high-speed switching networks, and complete the pre-installation and consistency verification of tool chains, process libraries and running environments before leaving the factory, forming a physical entity that can be powered on and used. In addition, the EDA all-in-one machine can also reserve standard interfaces to support component replacement or capacity expansion according to process evolution or tool upgrade.
[0129] Figure 3 A schematic diagram of an electronic device provided by the embodiment of the present application is shown in FIG. 3. Referring to Figure 3 The electronic device 300 comprises a processor 310, a memory 320 and a communication interface 330, which are interconnected and communicate with each other through a communication bus 340 and / or other forms of connection mechanism (not shown).
[0130] The memory 320 includes one or more (only one is shown in the figure), which can be, but is not limited to, a random access memory (RAM), a read only memory (ROM), a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), an electrically erasable programmable read only memory (EEPROM), etc. The processor 310 and other possible components can access, read and / or write data in the memory 320.
[0131] The processor 310 includes one or more (only one is shown in the figure), which can be an integrated circuit chip with signal processing capability. The processor 310 described above can be a general-purpose processor, including a central processing unit (CPU), a micro controller unit (MCU), a network processor (NP) or other conventional processors; it can also be a special-purpose processor, including a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component.
[0132] The communication interface 330 includes one or more (only one is shown in the figure), which can be used for direct or indirect communication with other devices to interact with data. For example, the communication interface 330 can be an Ethernet interface; it can be a mobile communication network interface, such as a 3G, 4G, 5G network interface; or it can be another type of interface with data transceiver function.
[0133] One or more computer program instructions can be stored in the memory 320, and the processor 310 can read and run these computer program instructions to implement the EDA simulation task scheduling method provided by the embodiments of the present application and other desired functions.
[0134] It can be understood that,Figure 3 The structure shown is merely illustrative. The electronic device 300 can also include more or fewer components than those shown in the figures, or have a different configuration of components than those shown. Figure 3 The components shown in the figures can be implemented in hardware, software, or a combination thereof. For example, the electronic device 300 can be a single server (or other device having computing processing capability), a combination of multiple servers, a cluster of a large number of servers, etc., and can be a physical device or a virtual device. Figure 3 The components shown in the figures can be implemented in hardware, software, or a combination thereof. For example, the electronic device 300 can be a single server (or other device having computing processing capability), a combination of multiple servers, a cluster of a large number of servers, etc., and can be a physical device or a virtual device. Figure 3 The components shown in the figures can be implemented in hardware, software, or a combination thereof. For example, the electronic device 300 can be a single server (or other device having computing processing capability), a combination of multiple servers, a cluster of a large number of servers, etc., and can be a physical device or a virtual device.
[0135] The computer readable storage medium can be implemented as the memory 320 in the electronic device 300, or an independent storage product (such as a U disk, a mobile hard disk, etc.). Figure 3 The computer program product can include computer program instructions, which are read and executed by a processor to perform the EDA simulation task scheduling method provided in the embodiments of the present application. For example, the computer program instructions can be stored in the memory 320 in the electronic device 300, or in an independent storage product (such as a U disk, a mobile hard disk, etc.). The computer program product can include computer program instructions, which are read and executed by a processor to perform the EDA simulation task scheduling method provided in the embodiments of the present application. For example, the computer program instructions can be stored in the memory 320 in the electronic device 300, or in an independent storage product (such as a U disk, a mobile hard disk, etc.).
[0136] The computer program product can include computer program instructions, which are read and executed by a processor to perform the EDA simulation task scheduling method provided in the embodiments of the present application. For example, the computer program instructions can be stored in the memory 320 in the electronic device 300, or in an independent storage product (such as a U disk, a mobile hard disk, etc.). Figure 3 The computer program product can include computer program instructions, which are read and executed by a processor to perform the EDA simulation task scheduling method provided in the embodiments of the present application. For example, the computer program instructions can be stored in the memory 320 in the electronic device 300, or in an independent storage product (such as a U disk, a mobile hard disk, etc.). The computer program product can include computer program instructions, which are read and executed by a processor to perform the EDA simulation task scheduling method provided in the embodiments of the present application. For example, the computer program instructions can be stored in the memory 320 in the electronic device 300, or in an independent storage product (such as a U disk, a mobile hard disk, etc.).
[0137] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of the units is merely a logical function division, and actual implementation can have another division manner. For another example, multiple units or components can be combined or integrated into another system, or some features can be omitted or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some communication interfaces, devices or units, which can be electrical, mechanical or other forms.
[0138] In addition, the units described as separate components can or can not be physically separated, and the components shown as units can or can not be physical units, i.e. can be located in one place or distributed on multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiments.
[0139] Further, each functional module in each embodiment of the present application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.
[0140] The above merely provides an embodiment of the present application, but should not be used to limit the protection scope of the present application. For those skilled in the art, the present application can have various modifications and changes. Any modified, equivalent replaced, improved, etc. within the spirit and principle of the present application should be included in the protection scope of the present application.
Claims
1. An EDA simulation task scheduling method, characterized in that, The method comprises: obtaining an EDA simulation task; calling a trained overhead prediction model to determine a predicted overhead of the EDA simulation task; calculating a matching index of the predicted overhead of the EDA simulation task and currently available resources, wherein the matching index is used to indicate a degree to which the currently available resources can meet the predicted overhead; based on the matching index, determining a scheduling priority of the EDA simulation task in a scheduling queue, and updating the scheduling queue based on the scheduling priority; executing tasks in the updated scheduling queue.
2. The EDA simulation task scheduling method of claim 1, wherein, The calculation of the matching index of the predicted overhead of the EDA simulation task and the currently available resources comprises: calculating a matching coefficient of the predicted overhead of each computing resource and the currently available resources, wherein the matching coefficient is used to indicate a degree to which the currently available resources can meet the predicted overhead of each computing resource; based on the matching coefficients of each computing resource, determining a matching index of the EDA simulation task.
3. The EDA simulation task scheduling method of claim 2, wherein, The determination of the matching index of the EDA simulation task based on the matching coefficients of each computing resource comprises: weighting and summing the matching coefficients of each computing resource by using a first weight to determine the matching index of the EDA simulation task, wherein the first weight is used to represent an importance degree of each computing resource to the EDA simulation task.
4. The EDA simulation task scheduling method of claim 1, wherein, The determination of the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index comprises: when the matching index is in a first index interval, determining that the scheduling priority of the EDA simulation task in the scheduling queue is a first scheduling priority, wherein the first index interval is used to represent a matching index value interval in which the currently available resources meet the predicted overhead and a resource utilization rate is greater than a preset utilization rate threshold; when the matching index is in a second index interval, determining that the scheduling priority of the EDA simulation task in the scheduling queue is a second scheduling priority, wherein the second index interval is used to represent a matching index value interval in which the currently available resources meet the predicted overhead and the resource utilization rate is not greater than the preset utilization rate threshold, and the second scheduling priority is lower than the first scheduling priority; when the matching index is in a third index interval, determining that the scheduling priority of the EDA simulation task in the scheduling queue is a third scheduling priority, wherein the third index interval is used to represent a matching index value interval in which the currently available resources do not meet the predicted overhead, and the third scheduling priority is lower than the second scheduling priority.
5. The EDA simulation task scheduling method of claim 1, wherein, The determination of the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index comprises: based on the matching index, a task priority, a task deadline and a predicted released computing resource, determining the scheduling priority of the EDA simulation task in the scheduling queue.
6. The EDA simulation task scheduling method of claim 5, wherein, The determination of the scheduling priority of the EDA simulation task in the scheduling queue based on the matching index, a task priority, a task deadline and a predicted released computing resource comprises: weighting sum of the matching index, the task priority, the task deadline and the predicted released computing resource by the second weight to determine a task scheduling index of the EDA simulation task; determine a scheduling priority of the EDA simulation task in a scheduling queue based on the task scheduling index.
7. The EDA simulation task scheduling method of claim 5, wherein, The method further comprises: monitoring an actual used resource of the EDA simulation task when the EDA simulation task is executed; 8. The EDA simulation task scheduling method according to any one of claims 1-7, characterized in that, when the actual used resource is greater than the predicted overhead and a deviation between the actual used resource and the predicted overhead is greater than a preset deviation threshold, performing at least one of suspending execution of the EDA simulation task, lowering the scheduling priority of the EDA simulation task, recycling redundant resource and allocating idle computing resource to the EDA simulation task. The method further comprises: periodically monitoring a computing resource state to determine the current available resource.
9. The EDA simulation task scheduling method according to any one of claims 1-7, characterized in that, The method further comprises: when the computing resource is in a high occupation state, performing at least one of delaying task scheduling of a new EDA simulation task, suspending a non-critical task, adjusting the scheduling priority of the EDA simulation task and idle computing resource reallocation.
10. The EDA simulation task scheduling method of claim 9, wherein, The method further comprises: when the resource usage rate of any one of the computing resources is greater than a preset usage rate threshold, determining that the computing resource is in the high occupation state; 11. The EDA simulation task scheduling method of claim 10, wherein, or, when the resource usage rate of more than a preset number of the computing resources is greater than the preset usage rate threshold of each of the computing resources, determining that the computing resource is in the high occupation state; or, based on the resource usage rate of each of the computing resources, calculating a comprehensive occupation index, and when the comprehensive occupation index is greater than a preset occupation index threshold, determining that the computing resource is in the high occupation state. The method further comprises: acquiring task execution data of the EDA simulation task; 12. The EDA simulation task scheduling method according to any one of claims 1-7, characterized in that, updating the overhead prediction model by using the task execution data. The method further comprises:
13. The EDA simulation task scheduling method according to any one of claims 1-7, wherein, an EDA simulation task acquisition module configured to acquire an EDA simulation task; an overhead prediction module configured to call a trained overhead prediction model to determine a predicted overhead of the EDA simulation task; a matching index calculation module configured to calculate a matching index of the predicted overhead of the EDA simulation task and a current available resource; wherein the matching index is used to indicate a degree to which the current available resource can meet the predicted overhead; 14. An EDA simulation task scheduling apparatus, characterized by: a task scheduling index determination module configured to determine a task scheduling index of the EDA simulation task by weighting sum of the matching index, the task priority, the task deadline and the predicted released computing resource by the second weight; The scheduling queue updating module is configured to determine a scheduling priority of the EDA simulation task in a scheduling queue based on the matching index, and update the scheduling queue based on the scheduling priority. The task executing module is configured to execute a task in the updated scheduling queue.
15. An EDA all-in-one machine, characterized in that, The EDA simulation task scheduling device includes the EDA simulation task scheduling device according to claim 14.
16. An electronic device, comprising: The EDA simulation task scheduling device includes: A processor, a memory and a communication bus, wherein the processor and the memory complete communication with each other through the communication bus; The memory stores program instructions executable by the processor, and the processor invoking the program instructions can execute the method according to any one of claims 1-13.
17. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions, and the computer instructions make the computer execute the method according to any one of claims 1-13 when the computer runs.
18. A computer program product, characterised in that, The computer program product includes a computer program, and the computer program is executed by a processor to implement the method according to any one of claims 1-13.
Citation Information
Patent Citations
Multi-resource index Kubernetes scheduling method based on delay factor
CN112363827A
Task scheduling method and device and Kubernetes scheduler
CN115454589A
Multi-queue scheduling method based on total and incremental reasoning overhead merging
CN120216140A
Computing resource optimization method and system for analyzing tasks
CN120256087A
Circuit board simulation test system and method and electronic equipment
CN120995952A
Cited By
GPU resource management method and system of design simulation platform based on AI drive
CN121807574A