CN112988403B - Integrated circuit simulation multithread management parallel method and device with security function - Google Patents

Integrated circuit simulation multithread management parallel method and device with security function Download PDF

Info

Publication number
CN112988403B
CN112988403B CN202110459228.7A CN202110459228A CN112988403B CN 112988403 B CN112988403 B CN 112988403B CN 202110459228 A CN202110459228 A CN 202110459228A CN 112988403 B CN112988403 B CN 112988403B
Authority
CN
China
Prior art keywords
integrated circuit
calculation
computing
mutex
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110459228.7A
Other languages
Chinese (zh)
Other versions
CN112988403A (en
Inventor
唐章宏
邹军
王芬
黄承清
汲亚飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wisechip Simulation Technology Co Ltd
Original Assignee
Beijing Wisechip Simulation Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Wisechip Simulation Technology Co Ltd filed Critical Beijing Wisechip Simulation Technology Co Ltd
Priority to CN202110459228.7A priority Critical patent/CN112988403B/en
Publication of CN112988403A publication Critical patent/CN112988403A/en
Application granted granted Critical
Publication of CN112988403B publication Critical patent/CN112988403B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

The invention provides an integrated circuit simulation multithread management parallel method and a device with a security function, comprising the following steps: electromagnetic simulation of the whole integrated circuit cloud platform is divided into two parts: a cloud computing platform and a client; the method comprises the steps that a client extracts integrated circuit model information and calculation conditions which need to be calculated, forms parallel coarse particles and sends the parallel coarse particles to a cloud platform; the cloud platform establishes a management process, the management process establishes a mutex and a thread, the thread establishes a computing process according to the state of the working mutex, and the computing coarse particles are distributed and managed; and the computing process and the thread created by the management process realize the communication of query and response, and finish the distributed coarse computing particles. According to the method, only the parallel coarse grains extracted by the client are sent to the cloud platform, and not all information of the whole integrated circuit model is sent to the cloud platform, so that the integrated circuit model is prevented from being leaked out through the Internet; and a mutex and a thread are adopted to distribute and manage the calculation coarse grains, so that the parallel calculation efficiency is improved.

Description

Integrated circuit simulation multithread management parallel method and device with security function
Technical Field
The invention relates to the technical field of integrated circuit simulation, in particular to an integrated circuit simulation multithread management parallel method and device with a security function.
Background
Ultra-large-scale parallel computing based on a cloud computing platform is a trend of future multi-user, multi-task and multi-model large-scale simulation. Under a cloud computing platform, different users are required to submit a plurality of computing tasks of different models through a network at different time intervals, the computing tasks form a computing queue and are finally distributed to a cluster with thousands of cores and more than ten thousands of cores to operate, and how to reduce the waiting time of computing nodes and efficiently operate the computing tasks submitted by the users is reduced, so that the reduction of the waiting time of the computing tasks in the queue is not only the problem which is most concerned by the users who submit the computing tasks, but also the most core problem which needs to be solved by building the cloud computing platform. The simulation aiming at the multilayer ultra-large scale integrated circuit can also be realized based on a cloud computing platform. Different users submit different integrated circuit models through the cloud computing platform, different simulation requirements are put forward, such as direct current voltage drop analysis of the integrated circuit, electric-thermal coupling analysis of the integrated circuit, electromagnetic interference and electromagnetic compatibility analysis of the integrated circuit, equivalent circuit parameter extraction of the integrated circuit and the like, and the computing models and computing tasks form computing queues to be distributed on a cluster for parallel computing. How to obtain each integrated circuit model more quickly and accurately without losing precision and the calculation result of each calculation task is the maximum requirement of integrated circuit design and optimization and is the final target pursued by very large scale integrated circuit simulation.
When the problem of the multi-model and multi-computing-task integrated circuit is simulated on a cluster with thousands of cores and more than ten thousand cores, the most direct and basic method for improving the simulation efficiency is parallel computing. The basic idea is to divide all the calculation tasks into small and independent calculation tasks, then distribute the calculation tasks to different CPU cores for calculation, and finally collect the calculation results of different CPU cores to form different calculation models and calculation results of different calculation tasks. In parallel computing, factors such as a dividing method for dividing computing tasks, a dividing sequence and the like directly influence the computing efficiency of the parallel computing, and an ideal computing task dividing method improves the computing speed of all models and all computing tasks by N times, wherein N is the number of CPU cores of a used cluster. However, due to the sequentiality, non-independence, inseparability and the like of some computations in the computation process, the actual segmentation of the computation task and the inevitable waiting of different processes and the phenomena of a large amount of communication among different processes in the computation process will be caused, and these phenomena will cause that the final computation speed cannot be increased by N times, even far below N times.
As the network technology is more and more mature at present, many chip design customers do not want the integrated circuit models designed by the customers to be leaked out through the Internet, so that part of the chip design customers select to build a parallel computing environment by themselves and perform parallel computing on all the simulations in a local area network. However, the establishment of a parallel computing environment with strong computing power requires a large construction cost and needs to be maintained by a special person, so that a method which can ensure that a designed integrated circuit model is not leaked out and can perform simulation rapidly at low cost in a cloud computing mode needs to be designed urgently.
Therefore, there is an urgent need in the art for an integrated circuit simulation multithread management parallel method and apparatus with security function, which provides a high-efficiency cloud platform-based integrated circuit simulation for users, and the computing efficiency of the integrated circuit simulation is close to the ideal computing efficiency, and the integrated circuit simulation multithread management parallel method and apparatus with security function has the security function.
Disclosure of Invention
Objects of the invention
In order to overcome at least one defect in the prior art, the invention provides an integrated circuit simulation multithread management parallel method and device with a security function, which are high-efficiency parallel computing methods, the computing efficiency of which approaches to the ideal computing efficiency, and the integrated circuit simulation multithread management parallel method and device with the security function.
(II) technical scheme
As a first aspect of the invention, the invention discloses an integrated circuit simulation multithreading management parallel method with a security function, which comprises the following steps:
reading all integrated circuit models needing to be simulated at a client, extracting integrated circuit model information and computing conditions needing to be computed by a cloud platform, forming parallel coarse particles and sending the parallel coarse particles to the cloud platform;
creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by a client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process;
the management process creates a mutex and a thread, the thread creates a calculation process according to the state of the mutex, and distributes and manages the calculation coarse particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: mutex wait state: the thread is in a blocked state at the moment, and the thread can only wait; mutex idle state: indicating that the thread may enter work at this time;
the computing process sends a query instruction, the management process creates a thread to query and respond to the query instruction, and the computing process responds according to the response of the thread to complete distributed computing coarse grains;
and when all the parallel coarse-grained computing tasks are completed, the management process collects the computing results and sorts the computing results of all the computing tasks to generate a final computing result.
And transmitting the final calculation result of the cloud platform to the client, and displaying the final calculation result by the client.
In a possible implementation manner, the extracting information and computation conditions of the integrated circuit model that requires the cloud platform to perform computation to form parallel coarse grains specifically includes:
converting all read information of the integrated circuit model into actually calculated input parameters at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the sum exceeds 90% of the total CPU time, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE002
in the formula:
Figure DEST_PATH_IMAGE004
is shown asiThe weighted CPU time of each calculated grain,
Figure DEST_PATH_IMAGE006
is shown asiSingle counting of individual counting particlesThe time of the CPU is set to be,
Figure DEST_PATH_IMAGE008
is shown asiThe number of computing tasks performed by each computing particle;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE010
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
In one possible embodiment, the defining object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the managing process and the message content storage of the computation process include:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
a parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse particles corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and the object M generally refers to a memory area in the storage medium.
In one possible embodiment, the management process creates a mutex and a thread, and the thread creates a calculation process according to the state of the mutex, and distributes and manages the coarse calculation grain, including:
step 1.1, a management process MK is established at a client, if the establishment is successful, the step 1.2 is carried out, and if the establishment is failed, the step 1.7 is carried out;
step 1.2, defining and establishing mutexes MutexData and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, and defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ]; storing parallel coarse grains corresponding to the integrated circuit model into [ Data ] of the object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse grains corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1;
step 1.3: the management process MK establishes a Ki-th calculation process, and if the establishment of the Ki-th calculation process fails, the preset time is paused, and the step 1.3 is entered; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure DEST_PATH_IMAGE012
if Ki = maximum number of processes allowed to be created, step 1.4 is entered, otherwise step 1.3 is entered; ki is a natural number;
step 1.4: if the MutexExit = mutex is idle, the management process MK proceeds to step 1.7; otherwise, the management process MK enters an HTTP network service response state, the working states of all the computing processes and the number of the computing processes in the process pool are inquired, if the number of the computing processes in the process pool is smaller than the maximum number of the computing processes allowed to be created, the step 1.3 is entered, and if not, all the computing processes in the suspended state are activated to enter a ready state and the step 1.5 is entered;
step 1.5: if the management process MK receives the field Message = acquire of the element sent by any calculation process Kj, the step 1.6 is carried out; otherwise, directly entering step 1.4; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
step 1.6: the management process MK establishes a thread tj for response work, and the step 1.4 is entered;
step 1.7: and deleting mutexWork and mutexExit of the mutex, sending a P _ NN instruction to all the computing processes, closing all the computing processes, destroying all threads established by the management process MK, and ending the management process MK.
In one possible embodiment, step 1.6 comprises:
step 1.6.1, the thread tj enters an instruction analysis stage after being ready, and if the instruction is Message = acquire, the step 1.6.3 is entered; if the instruction is Message = Update, entering step 1.6.2;
step 1.6.2, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
step 1.6.3, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = mutex idle, setting the mutex = mutex wait by the thread tj, inquiring the data area of the object M by the thread tj, if the mutex of all the elements of the object M indicates that all the calculation tasks of the data area of the object M are completed, setting the mutex = mutex idle by the thread tj, and destroying the thread tj; otherwise thread tj proceeds to step 1.6.4;
step 1.6.4, if the State = C0_ M0 of a certain element Mi of the object M, the State = C0_ M1 of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering step 1.6.3, otherwise entering step 1.6.4;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, step 1.6.3 is entered, otherwise step 1.6.4 is entered.
In one possible embodiment, the sending, by the computing process, a query instruction, the creating, by the management process, a thread to query and reply to the query instruction, and the responding, by the computing process, according to the reply of the thread, of the computing process to complete the distributed coarse computation grain includes:
step 2.1: the calculation process Ki sends the field Message = Inquire of the element to the management process MK;
step 2.2: if the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time, entering the step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the parallel coarse-grained calculation condition corresponding to the integrated circuit model defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ Y of the element Mi, go to step 2.3;
step 2.3: the calculation process Ki carries out mesh generation aiming at the current integrated circuit model, if mesh generation is successful, the mesh number is stored in the position of a mesh Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
step 2.4: interrupting for a preset time and entering step 2.1.
As a second aspect of the present invention, the present invention discloses a multithread coarse grain parallel computing device with a security function, comprising:
the system comprises a first module, a second module and a third module, wherein the first module is used for reading all integrated circuit models needing to be simulated at a client, extracting integrated circuit model information and calculation conditions needing to be calculated by a cloud platform, forming parallel coarse grains and sending the parallel coarse grains to the cloud platform;
the second module is used for dividing the electromagnetic simulation of all integrated circuit models to be simulated into a plurality of calculation particles, acquiring the weighted CPU time and the total CPU time of each calculation particle, and determining calculation coarse particles according to the ratio of the weighted CPU time to the total CPU time; the calculation particles are calculation units which need to be repeatedly executed for multiple times;
the third module is used for creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by the client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process; the fourth module is used for establishing the mutex and the thread by the management process, and the thread establishes a calculation process according to the state of the mutex and distributes and manages the coarse calculation particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: mutex wait state: the thread is in a blocked state at the moment, and the thread can only wait; mutex idle state: indicating that the thread may enter work at this time;
the fifth module is used for the calculation process to send a query instruction, the management process creates a thread to query and answer the query instruction, and the calculation process responds according to the answer of the thread to finish distributed calculation coarse grains;
and the sixth module is used for collecting the calculation results and sorting the calculation results of all the calculation tasks to generate a final calculation result when all the parallel coarse-grained calculation tasks are completed.
And the seventh module is used for transmitting the final calculation result of the cloud platform to the client and displaying the final calculation result by the client.
In a possible implementation manner, the extracting information and computation conditions of the integrated circuit model that requires the cloud platform to perform computation to form parallel coarse grains specifically includes:
converting all read information of the integrated circuit model into actually calculated input parameters at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the sum exceeds 90% of the total CPU time, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE013
in the formula:
Figure DEST_PATH_IMAGE014
is shown asiThe weighted CPU time of each calculated grain,
Figure DEST_PATH_IMAGE006A
is shown asiEach calculation particle has a single calculated CPU time,
Figure DEST_PATH_IMAGE015
is shown asiA calculating particleThe number of computational tasks performed by the grain;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE016
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
In one possible embodiment, the defining object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the managing process and the message content storage of the computation process include:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
a parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse particles corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and the object M generally refers to a memory area in the storage medium.
In one possible embodiment, the management process creates a mutex and a thread, and the thread creates a calculation process according to the state of the mutex, and distributes and manages the coarse calculation grain, including:
the first unit is used for establishing a management process MK on the cloud platform, and if the establishment is successful, the second unit is accessed; if the establishment fails, entering a seventh unit;
the second unit is used for defining and establishing mutexes MutexWork and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, and defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ]; storing parallel coarse grains corresponding to the integrated circuit model into [ Data ] of the object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse grains corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1;
a third unit: the third unit is used for establishing a Ki-th calculation process by the management process MK, and pausing for preset time if the establishment of the Ki-th calculation process fails; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure DEST_PATH_IMAGE012A
if Ki = the maximum number of processes allowed to be created, entering a fourth unit, and otherwise, entering a third unit; ki is a natural number;
a fourth unit: when the MutexExit = mutex is idle, the management process MK enters the seventh unit; otherwise, the management process MK enters an HTTP network service response state, the working states of all the computing processes and the number of the computing processes in the process pool are inquired, if the number of the computing processes in the process pool is smaller than the maximum number of the computing processes allowed to be created, the management process MK enters a third unit, and if not, all the computing processes in the suspended state are activated to enter a ready state and enter a fifth unit;
a fifth unit: the management process MK enters the sixth unit when receiving the field Message = acquire of the element sent by any computing process Kj; otherwise, directly entering a fourth unit; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
a sixth unit: the management process MK establishes a thread tj for response work and enters a fourth unit;
a seventh unit: the method is used for deleting mutexes mutexWork and mutexExit, sending a P _ NN instruction to all computing processes, closing all computing processes, destroying all threads established by a management process MK, and ending the management process MK.
In a possible embodiment, the sixth unit comprises:
the first subunit is used for entering the third subunit after the thread tj enters the instruction analysis stage in a ready state and if the instruction is Message = acquire; if the instruction is Message = Update, entering a second subunit;
the second subunit is used for enabling the thread tj to enter a waiting state when the mutex = mutex waits; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
a third subunit, configured to, when mutex = mutex waits, enter a wait state by thread tj; if the mutex = is idle, setting the mutex = is idle by the thread tj, waiting by the mutex, inquiring a data area of the object M by the thread tj, if states of all elements of the object M = C _ M, indicating that all calculation tasks of the data area of the object M are completely calculated, setting the mutex = is idle by the thread tj, and destroying the thread tj; otherwise, the thread tj enters a fourth subunit;
a fourth subunit, configured to update, when the State = C0_ M0 of an element Mi of the object M, the State = C0_ M1 of the element Mi, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering a third sub-unit, otherwise entering a fourth sub-unit;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, the third subunit is entered, otherwise the fourth subunit is entered.
In one possible embodiment, the sending, by the computing process, a query instruction, the creating, by the management process, a thread to query and reply to the query instruction, and the responding, by the computing process, according to the reply of the thread, of the computing process to complete the distributed coarse computation grain includes:
the first calculation unit: the field Message = acquire for the computing process Ki sending this element to the management process MK;
a second calculation unit: the fourth calculation unit is used for entering the fourth calculation unit when the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the integrated circuit model calculation condition defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters a fourth calculation unit;
if the instruction received by the computing process Ki is the field Message = P _ Y of the element Mi, entering a third computing unit;
a third calculation unit: when the calculation process Ki carries out grid splitting on the current integrated circuit model, if the grid splitting is successful, the grid number is stored in the position of a grid Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
a fourth calculation unit: for interrupting for a predetermined time, and entering the first computing unit.
(III) advantageous effects
The invention provides an integrated circuit simulation multithread management parallel method and device with a security function, which divide the whole integrated circuit cloud platform electromagnetic simulation into two parts: a cloud computing platform and a client; the method comprises the steps that a client extracts integrated circuit model information and calculation conditions which need to be calculated, forms parallel coarse particles and sends the parallel coarse particles to a cloud platform; the cloud platform establishes a management process, the management process establishes a mutex and a thread, the thread establishes a computing process according to the state of the working mutex, and the computing coarse particles are distributed and managed; and the computing process and the thread created by the management process realize the communication of query and response, and finish the distributed coarse computing particles. According to the method, only the parallel coarse grains extracted by the client are sent to the cloud platform, and not all information of the whole integrated circuit model is sent to the cloud platform, so that the integrated circuit model is prevented from being leaked out through the Internet; and a mutex and a thread are adopted to distribute and manage the calculation coarse grains, so that the parallel calculation efficiency is improved.
Drawings
The embodiments described below with reference to the drawings are exemplary and intended to be used for explaining and illustrating the present invention and should not be construed as limiting the scope of the present invention.
FIG. 1 is a schematic structural diagram of a secure integrated circuit emulation multithread management parallel method according to the present invention.
FIG. 2 is a flowchart of a cloud platform management process of an integrated circuit emulation multithread management parallel method with a security function according to the present invention.
FIG. 3 is a flowchart of a thread created by a cloud platform management process of an integrated circuit emulation multithread management parallel method with a security function according to the present invention.
FIG. 4 is a flowchart of a computing process created by a cloud platform management process of an integrated circuit emulation multithread management parallel method with a security function according to the present invention.
FIG. 5 is a schematic structural diagram of a multi-thread coarse grain parallel computing apparatus with security function according to the present invention.
Detailed Description
In order to make the implementation objects, technical solutions and advantages of the present invention clearer, the technical solutions in the embodiments of the present invention will be described in more detail below with reference to the accompanying drawings in the embodiments of the present invention.
It should be noted that: in the drawings, the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described are some embodiments of the present invention, not all embodiments, and features in embodiments and embodiments in the present application may be combined with each other without conflict. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
In the description of the present invention, it is to be understood that the terms "central," "longitudinal," "lateral," "front," "rear," "left," "right," "vertical," "horizontal," "top," "bottom," "inner," "outer," and the like are used in the orientation or positional relationship indicated in the drawings, which are used for convenience in describing the invention and for simplicity in description, and are not intended to indicate or imply that the referenced device or element must have a particular orientation, be constructed and operated in a particular orientation, and are not to be considered limiting of the scope of the invention.
The first embodiment of the integrated circuit emulation multithread management parallel method with security function provided by the invention is described in detail below with reference to fig. 1. As shown in fig. 1, the integrated circuit emulation multithread management parallel method with security function provided in this embodiment mainly includes:
coarse grain parallel computation is an efficient parallel computation method, and because the coarse grain is only segmented for the computation tasks occupying absolutely more CPU computation time when the computation tasks are segmented, the segmentation times are few, and the communication time of different processes is reduced as much as possible; secondly, combining the coarse grain parallel randomly and dynamically distributed by the computing tasks, the waiting time of different processes is further reduced, because the CPU time used by different computing tasks is different, the traditional parallel computing method fixedly distributes the same number of computing models or computing tasks to each computing process, so that the final part or most of the computing processes are in a waiting state until the slowest process finishes computing all the distributed computing tasks. The parallel computing strategy for randomly and dynamically allocating the computing tasks does not fix that the same computing models or computing tasks are allocated to each computing process in advance, but randomly scrambles the computing tasks in advance, allocates the computing tasks to the processes according to the dynamic allocation strategy which is applied for allocation first, and simultaneously, calculates each process to finish one computing task, namely writes the computing result into a temporary file according to a format which is agreed in advance, and does not need to wait for immediately applying for allocation of the next computing task. The parallel computing strategy for randomly and dynamically distributing the computing tasks avoids communication and waiting among the processes to the maximum extent, and the waiting time of the last process is at most the time of one most basic computing task, so that the parallel computing efficiency is guaranteed to be closest to an ideal state.
In the simulation of the very large scale integrated circuit, under the condition that a calculation model of the very large scale integrated circuit is not changed, different grid divisions bring different discrepancies to a calculation field when the problems of frequency response, voltage-current response curve and the like of the integrated circuit are researched; even if the generated mesh generation is reasonable and high-quality each time, under the same integrated circuit model and condition, the calculation results have slight differences due to different generated mesh generation, and the slight difference of the results is not considered as calculation error but has great influence on the frequency response curve and the voltage-current response curve of the integrated circuit. In terms of the electromagnetic response principle of the integrated circuit, the response curve should be piecewise smooth, and the unsmooth position of the response curve is the resonance point of the integrated circuit, but if the unsmooth position is used for calculating the frequency response curve and the voltage-current response curve of the integrated circuit, each calculation point adopts different mesh divisions, the calculated response curve will be subjected to jitter, and the jitter is caused by random errors brought by different meshes. When the grid division is carried out on the ultra-large scale integrated circuit with the complex multi-scale structure, the non-structural grid is inevitably adopted for division, the integrated circuit layout model which is divided has a very strong multi-scale structure, and the mesh division sequence, the error generated by the insertion of a new node in the mesh division process and the like are all enough to change the mesh which is divided by the ultra-large scale integrated circuit with the complex multi-scale structure, so that the meshes which are divided by the same integrated circuit model are different through different time and different calculation processes. In order to avoid the jitter brought by frequency response curves, voltage-current response curves and other curves of different mesh divisions on an integrated circuit, the invention provides a graded coarse grain parallel computing strategy, which has the basic idea that: dividing a computing task queue brought by a cloud computing platform into different computing task levels, wherein all the computing tasks with different integrated circuit models are taken as a first parallel level; computing tasks with the same integrated circuit model as a second parallel level, the second parallel computing level including all computing tasks of the same integrated circuit model; and a certain control strategy is adopted, and under the condition that the coarse grain parallel computing efficiency of a parallel computing strategy based on the random dynamic allocation of computing tasks is not reduced basically, all computing tasks of the second parallel level are ensured to adopt the same computing grid, so that the piecewise smoothness characteristics of curves such as a frequency response curve, a voltage-current response curve and the like of the integrated circuit are ensured.
Electromagnetic simulation of the whole integrated circuit cloud platform is divided into two parts: the first part is a client, and is used for extracting integrated circuit model information and calculation conditions submitted by a client to be calculated by a cloud platform to form parallel coarse particles and sending the parallel coarse particles to the cloud platform; the second part is a cloud computing platform which completes the coarse grain parallelism of all the integrated circuit models to be simulated, and the coarse grains are determined by the following method: dividing electromagnetic simulation of the whole integrated circuit model into a plurality of calculation particles, obtaining weighted CPU time and total CPU time of each calculation particle, and determining calculation coarse particles according to the ratio of the weighted CPU time to the total CPU time; the calculation particles are calculation units which need to be repeatedly executed for multiple times;
reading all integrated circuit models needing to be simulated at a client, extracting the information and the calculation conditions of the integrated circuit models needing to be calculated by a cloud platform, forming parallel coarse particles and sending the parallel coarse particles to the cloud platform, rather than sending all the information of the whole integrated circuit model to the cloud platform;
creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by a client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process;
the management process creates a mutex and a thread, the thread creates a calculation process according to the state of the mutex, and distributes and manages the calculation coarse particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: establishing a mutex, waiting the mutex, deleting a mutex object and leaving the mutex idle. Mutex wait state: the thread is in a blocked state at the moment, and the thread can only wait; mutex idle state: indicating that the thread may enter work at this time;
the mutex is suitable for process synchronization and multithread synchronization;
mutexes can only be established uniquely, and can only be reestablished after being deleted.
The mutex of the present application is like read-only of a file, and if there is a read-only file, then the new creation or writing of this file will fail. Based on the coarse grain parallelism of the file, whether the calculation task can be handed over to a file manager is implicitly judged, whether the calculation task is occupied by other processes is determined by judging whether the file exists or only reading and the like, and the method causes the problem that the file manager is very heavy and the computer is likely to crash when the calculation task reaches tens of thousands or hundreds of thousands. The mutex management is adopted, and the file identification is not needed any more, so that the problem is avoided.
The computing process sends a query instruction, the management process creates a thread to query and respond to the query instruction, and the computing process responds according to the response of the thread to complete distributed computing coarse grains;
and when all the parallel coarse-grained computing tasks are completed, the management process collects the computing results and sorts the computing results of all the computing tasks to generate a final computing result.
And transmitting the final calculation result of the cloud platform to the client, and displaying the final calculation result by the client.
The method comprises the following steps of extracting integrated circuit model information and calculation conditions which need to be calculated by a cloud platform to form parallel coarse particles, wherein the method specifically comprises the following steps:
converting all read information of the integrated circuit model into actually calculated input parameters at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the sum exceeds 90% of the total CPU time, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE017
in the formula:
Figure DEST_PATH_IMAGE018
is shown asiThe weighted CPU time of each calculated grain,
Figure DEST_PATH_IMAGE006AA
is shown asiEach calculation particle has a single calculated CPU time,
Figure DEST_PATH_IMAGE019
is shown asiThe number of computing tasks performed by each computing particle;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE020
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
Wherein the defining object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the managing process and the message content storage of the computation process comprise:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
a parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse grains corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], the object M generally refers to a memory area in a storage medium, and can be continuous or discontinuous, a remote database record or a character string, and can also be a common json, xml and ini file.
The management process creates a mutex and a thread, the thread creates a calculation process according to the state of the mutex, and distributes and manages the coarse calculation particles, and the method comprises the following steps:
step 1.1, establishing a management process MK on the cloud platform, if the establishment is successful, entering step 1.2, and if the establishment is failed, entering step 1.7;
step 1.2, defining and establishing mutexes MutexData and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and defining an element Mi of the object M as a specific example of an object M field Data, Type, Path and Net corresponding to parallel coarse particles; storing parallel coarse grains corresponding to the integrated circuit model into [ Data ] of the object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse grains corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1;
step 1.3: the management process MK establishes a Ki-th calculation process, and if the establishment of the Ki-th calculation process fails, the preset time is paused, and the step 1.3 is entered; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure 100002_DEST_PATH_IMAGE012AA
if Ki = maximum number of processes allowed to be created, step 1.4 is entered, otherwise step 1.3 is entered; ki is a natural number;
step 1.4: if the MutexExit = mutex is idle, the management process MK proceeds to step 1.7; otherwise, the management process MK enters an HTTP network service response state, the working states (including the suspended state, the ready state and the quit state) of all the computing processes and the computing process number in the process pool are inquired, if the computing process number in the process pool is smaller than the maximum computing process number allowed to be created, the step 1.3 is entered, and if not, all the computing processes in the suspended state are activated to enter the ready state and the step 1.5 is entered;
step 1.5: if the management process MK receives the field Message = acquire of the element sent by any calculation process Kj, the step 1.6 is carried out; otherwise, directly entering step 1.4; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
step 1.6: the management process MK establishes a thread tj for response work, and the step 1.4 is entered;
step 1.7: and deleting mutexWork and mutexExit of the mutex, sending a P _ NN instruction to all the computing processes, closing all the computing processes, destroying all threads established by the management process MK, and ending the management process MK.
Wherein the step 1.6 comprises:
step 1.6.1, the thread tj enters an instruction analysis stage after being ready, and if the instruction is Message = acquire, the step 1.6.3 is entered; if the instruction is Message = Update, entering step 1.6.2;
step 1.6.2, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
step 1.6.3, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = mutex idle, setting the mutex = mutex wait by the thread tj, inquiring the data area of the object M by the thread tj, if the mutex of all the elements of the object M indicates that all the calculation tasks of the data area of the object M are completed, setting the mutex = mutex idle by the thread tj, and destroying the thread tj; otherwise thread tj proceeds to step 1.6.4;
step 1.6.4, if the State = C0_ M0 of a certain element Mi of the object M, the State = C0_ M1 of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering step 1.6.3, otherwise entering step 1.6.4;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, step 1.6.3 is entered, otherwise step 1.6.4 is entered.
The method comprises the following steps that a computing process sends a query instruction, a management process creates a thread to query and answer the query instruction, the computing process responds according to the answer of the thread to finish distributed coarse computing particles, and the method comprises the following steps:
step 2.1: the calculation process Ki sends the field Message = Inquire of the element to the management process MK;
step 2.2: if the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time, entering the step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the parallel coarse-grained calculation condition corresponding to the integrated circuit model defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ Y of the element Mi, go to step 2.3;
step 2.3: the calculation process Ki carries out mesh generation aiming at the current integrated circuit model, if mesh generation is successful, the mesh number is stored in the position of a mesh Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
step 2.4: interrupting for a preset time and entering step 2.1.
The invention divides the electromagnetic simulation of the whole integrated circuit cloud platform into two parts: a cloud computing platform and a client; the method comprises the steps that a client extracts integrated circuit model information and calculation conditions which need to be calculated, forms parallel coarse particles and sends the parallel coarse particles to a cloud platform; the cloud platform establishes a management process, the management process establishes a mutex and a thread, the thread establishes a computing process according to the state of the working mutex, and the computing coarse particles are distributed and managed; and the computing process and the thread created by the management process realize the communication of query and response, and finish the distributed coarse computing particles. According to the method, only the parallel coarse grains extracted by the client are sent to the cloud platform, and not all information of the whole integrated circuit model is sent to the cloud platform, so that the integrated circuit model is prevented from being leaked out through the Internet; and a mutex and a thread are adopted to distribute and manage the calculation coarse grains, so that the parallel calculation efficiency is improved.
A first embodiment of a multi-thread coarse grain parallel computing device with security function according to the present invention is described in detail below with reference to fig. 2. As shown in fig. 2, the multi-thread coarse grain parallel computing apparatus with security function provided in this embodiment mainly includes: the first module, the second module, the third module, the fourth module, the fifth module, the sixth module and the seventh module.
Coarse grain parallel computation is an efficient parallel computation method, and because the coarse grain is only segmented for the computation tasks occupying absolutely more CPU computation time when the computation tasks are segmented, the segmentation times are few, and the communication time of different processes is reduced as much as possible; secondly, combining the coarse grain parallel randomly and dynamically distributed by the computing tasks, the waiting time of different processes is further reduced, because the CPU time used by different computing tasks is different, the traditional parallel computing method fixedly distributes the same number of computing models or computing tasks to each computing process, so that the final part or most of the computing processes are in a waiting state until the slowest process finishes computing all the distributed computing tasks. The parallel computing strategy for randomly and dynamically allocating the computing tasks does not fix that the same computing models or computing tasks are allocated to each computing process in advance, but randomly scrambles the computing tasks in advance, allocates the computing tasks to the processes according to the dynamic allocation strategy which is applied for allocation first, and simultaneously, calculates each process to finish one computing task, namely writes the computing result into a temporary file according to a format which is agreed in advance, and does not need to wait for immediately applying for allocation of the next computing task. The parallel computing strategy for randomly and dynamically distributing the computing tasks avoids communication and waiting among the processes to the maximum extent, and the waiting time of the last process is at most the time of one most basic computing task, so that the parallel computing efficiency is guaranteed to be closest to an ideal state.
In the simulation of the very large scale integrated circuit, under the condition that a calculation model of the very large scale integrated circuit is not changed, different grid divisions bring different discrepancies to a calculation field when the problems of frequency response, voltage-current response curve and the like of the integrated circuit are researched; even if the generated mesh generation is reasonable and high-quality each time, under the same integrated circuit model and condition, the calculation results have slight differences due to different generated mesh generation, and the slight difference of the results is not considered as calculation error but has great influence on the frequency response curve and the voltage-current response curve of the integrated circuit. In terms of the electromagnetic response principle of the integrated circuit, the response curve should be piecewise smooth, and the unsmooth position of the response curve is the resonance point of the integrated circuit, but if the unsmooth position is used for calculating the frequency response curve and the voltage-current response curve of the integrated circuit, each calculation point adopts different mesh divisions, the calculated response curve will be subjected to jitter, and the jitter is caused by random errors brought by different meshes. When the grid division is carried out on the ultra-large scale integrated circuit with the complex multi-scale structure, the non-structural grid is inevitably adopted for division, the integrated circuit layout model which is divided has a very strong multi-scale structure, and the mesh division sequence, the error generated by the insertion of a new node in the mesh division process and the like are all enough to change the mesh which is divided by the ultra-large scale integrated circuit with the complex multi-scale structure, so that the meshes which are divided by the same integrated circuit model are different through different time and different calculation processes. In order to avoid the jitter brought by frequency response curves, voltage-current response curves and other curves of different mesh divisions on an integrated circuit, the invention provides a graded coarse grain parallel computing strategy, which has the basic idea that: dividing a computing task queue brought by a cloud computing platform into different computing task levels, wherein all the computing tasks with different integrated circuit models are taken as a first parallel level; computing tasks with the same integrated circuit model as a second parallel level, the second parallel computing level including all computing tasks of the same integrated circuit model; and a certain control strategy is adopted, and under the condition that the coarse grain parallel computing efficiency of a parallel computing strategy based on the random dynamic allocation of computing tasks is not reduced basically, all computing tasks of the second parallel level are ensured to adopt the same computing grid, so that the piecewise smoothness characteristics of curves such as a frequency response curve, a voltage-current response curve and the like of the integrated circuit are ensured.
The system comprises a first module, a second module and a third module, wherein the first module is used for reading all integrated circuit models needing to be simulated at a client, extracting the information and the calculation conditions of the integrated circuit models needing to be calculated by a cloud platform, forming parallel coarse particles and sending the parallel coarse particles to the cloud platform, rather than sending all the information of the whole integrated circuit model to the cloud platform;
the second module is used for dividing the electromagnetic simulation of all integrated circuit models to be simulated into a plurality of calculation particles, acquiring the weighted CPU time and the total CPU time of each calculation particle, and determining calculation coarse particles according to the ratio of the weighted CPU time to the total CPU time; the calculation particles are calculation units which need to be repeatedly executed for multiple times;
the third module is used for creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by the client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process;
the fourth module is used for establishing the mutex and the thread by the management process, and the thread establishes a calculation process according to the state of the mutex and distributes and manages the coarse calculation particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: establishing a mutex, waiting the mutex, deleting a mutex object and leaving the mutex idle.
The mutex is suitable for process synchronization and multithread synchronization;
mutex waiting state, which means that the state is blocked at the moment, and the thread can only wait;
mutex idle state, which means that the thread can enter into work at this time;
mutexes can only be established uniquely, and can only be reestablished after being deleted.
The mutex of the present application is like read-only of a file, and if there is a read-only file, then the new creation or writing of this file will fail. Based on the coarse grain parallelism of the file, whether the calculation task can be handed over to a file manager is implicitly judged, whether the calculation task is occupied by other processes is determined by judging whether the file exists or only reading and the like, and the method causes the problem that the file manager is very heavy and the computer is likely to crash when the calculation task reaches tens of thousands or hundreds of thousands. The mutex management is adopted, and the file identification is not needed any more, so that the problem is avoided.
The fifth module is used for the calculation process to send a query instruction, the management process creates a thread to query and answer the query instruction, and the calculation process responds according to the answer of the thread to finish distributed calculation coarse grains;
and the sixth module is used for collecting the calculation results and sorting the calculation results of all the calculation tasks to generate a final calculation result when all the parallel coarse-grained calculation tasks are completed.
And the seventh module is used for transmitting the final calculation result of the cloud platform to the client and displaying the final calculation result by the client.
The method comprises the following steps of extracting integrated circuit model information and calculation conditions which need to be calculated by a cloud platform to form parallel coarse particles, wherein the method specifically comprises the following steps:
converting all read information of the integrated circuit model into actually calculated input parameters at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the sum exceeds 90% of the total CPU time, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE021
in the formula:
Figure DEST_PATH_IMAGE022
is shown asiThe weighted CPU time of each calculated grain,
Figure DEST_PATH_IMAGE006AAA
is shown asiEach calculation particle has a single calculated CPU time,
Figure DEST_PATH_IMAGE023
is shown asiThe number of computing tasks performed by each computing particle;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE024
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
Wherein the defining object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the managing process and the message content storage of the computation process comprise:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
the information needing to be calculated in the integrated circuit model file is extracted by the management process, and the management process only sends the information needing to be calculated to the cloud platform instead of the file of the whole integrated circuit model, so that the function of confidentiality is realized.
A parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse grains corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], the object M generally refers to a memory area in a storage medium, and can be continuous or discontinuous, a remote database record or a character string, and can also be a common json, xml and ini file.
The management process creates a mutex and a thread, the thread creates a calculation process according to the state of the mutex, and distributes and manages the coarse calculation particles, and the method comprises the following steps:
the first unit is used for establishing a management process MK on the cloud platform, and if the establishment is successful, the second unit is accessed; if the establishment fails, entering a seventh unit;
the second unit is used for defining and establishing mutexes MutexWork and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and defining an element Mi of the object M as a specific example of object M fields Data, Type, Path and Net corresponding to parallel coarse particles; reading all integrated circuit models needing simulation from a client, and storing parallel coarse particles corresponding to the integrated circuit models into Data of an object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse particles corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1; calculating the relevant information includes: each polygon number, number of number layers, polygon vertex coordinates, different metal layers, dielectric layer thicknesses, different dielectric layer electromagnetic parameters, and external circuitry of the integrated circuit model that does not include the original integrated circuit model information.
A third unit: the third unit is used for establishing a Ki-th calculation process by the management process MK, and pausing for preset time if the establishment of the Ki-th calculation process fails; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure DEST_PATH_IMAGE012AAA
if Ki = the maximum number of processes allowed to be created, entering a fourth unit, and otherwise, entering a third unit; ki is a natural number;
a fourth unit: when the MutexExit = mutex is idle, the management process MK enters the seventh unit; otherwise, the management process MK enters an HTTP network service response state, the working states (including the suspended state, the ready state and the quit state) of all the computing processes and the computing process number in the process pool are inquired, if the computing process number in the process pool is smaller than the maximum computing process number allowed to be created, the management process MK enters a third unit, and if not, all the computing processes in the suspended state are activated to enter the ready state and enter a fifth unit;
a fifth unit: the management process MK enters the sixth unit when receiving the field Message = acquire of the element sent by any computing process Kj; otherwise, directly entering a fourth unit; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
a sixth unit: the management process MK establishes a thread tj for response work and enters a fourth unit;
a seventh unit: the method is used for deleting mutexes mutexWork and mutexExit, sending a P _ NN instruction to all computing processes, closing all computing processes, destroying all threads established by a management process MK, and ending the management process MK.
Wherein the sixth unit includes:
the first subunit is used for entering the third subunit after the thread tj enters the instruction analysis stage in a ready state and if the instruction is Message = acquire; if the instruction is Message = Update, entering a second subunit;
the second subunit is used for enabling the thread tj to enter a waiting state when the mutex = mutex waits; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
a third subunit, configured to, when mutex = mutex waits, enter a wait state by thread tj; if the mutex = is idle, setting the mutex = is idle by the thread tj, waiting by the mutex, inquiring a data area of the object M by the thread tj, if states of all elements of the object M = C _ M, indicating that all calculation tasks of the data area of the object M are completely calculated, setting the mutex = is idle by the thread tj, and destroying the thread tj; otherwise, the thread tj enters a fourth subunit;
a fourth subunit, configured to update, when the State = C0_ M0 of an element Mi of the object M, the State = C0_ M1 of the element Mi, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering a third sub-unit, otherwise entering a fourth sub-unit;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, the third subunit is entered, otherwise the fourth subunit is entered.
The method comprises the following steps that a computing process sends a query instruction, a management process creates a thread to query and answer the query instruction, the computing process responds according to the answer of the thread to finish distributed coarse computing particles, and the method comprises the following steps:
the first calculation unit: the field Message = acquire for the computing process Ki sending this element to the management process MK;
a second calculation unit: the fourth calculation unit is used for entering the fourth calculation unit when the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the integrated circuit model calculation condition defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters a fourth calculation unit;
if the instruction received by the computing process Ki is the field Message = P _ Y of the element Mi, entering a third computing unit;
a third calculation unit: when the calculation process Ki carries out grid splitting on the current integrated circuit model, if the grid splitting is successful, the grid number is stored in the position of a grid Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
a fourth calculation unit: for interrupting for a predetermined time, and entering the first computing unit.
The invention divides the electromagnetic simulation of the whole integrated circuit cloud platform into two parts: a cloud computing platform and a client; the method comprises the steps that a client extracts integrated circuit model information and calculation conditions which need to be calculated, forms parallel coarse particles and sends the parallel coarse particles to a cloud platform; the cloud platform establishes a management process, the management process establishes a mutex and a thread, the thread establishes a computing process according to the state of the working mutex, and the computing coarse particles are distributed and managed; and the computing process and the thread created by the management process realize the communication of query and response, and finish the distributed coarse computing particles. According to the method, only the parallel coarse grains extracted by the client are sent to the cloud platform, and not all information of the whole integrated circuit model is sent to the cloud platform, so that the integrated circuit model is prevented from being leaked out through the Internet; and a mutex and a thread are adopted to distribute and manage the calculation coarse grains, so that the parallel calculation efficiency is improved.
The above description is only for the specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present invention are included in the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the appended claims.

Claims (8)

1. An integrated circuit simulation multithread management parallel method with a security function is characterized by comprising the following steps: reading all integrated circuit models needing to be simulated at a client, extracting integrated circuit model information and computing conditions needing to be computed by a cloud platform, forming parallel coarse particles and sending the parallel coarse particles to the cloud platform;
creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by a client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process;
the management process creates a mutex and a thread, the thread creates a calculation process according to the state of the mutex, and distributes and manages the calculation coarse particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: mutex wait state: the thread is in a blocked state at the moment, and the thread can only wait; mutex idle state: indicating that the thread may enter work at this time;
the computing process sends a query instruction, the management process creates a thread to query and respond to the query instruction, and the computing process responds according to the response of the thread to complete distributed computing coarse grains;
when all the parallel coarse-grained calculation tasks are completed, the management process collects calculation results and sorts the calculation results of all the calculation tasks to generate a final calculation result;
transmitting the final calculation result of the cloud platform to the client, and displaying the final calculation result by the client;
the method comprises the following steps of extracting integrated circuit model information and calculation conditions which need to be calculated by a cloud platform to form parallel coarse particles, wherein the method specifically comprises the following steps: converting all read information of the integrated circuit model into actually calculated input parameters at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the total CPU time of the sum exceeds 90%, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE002A
in the formula:
Figure DEST_PATH_IMAGE004AA
is shown asiThe weighted CPU time of each calculated grain,
Figure DEST_PATH_IMAGE005
is shown asiEach calculation particle has a single calculated CPU time,
Figure DEST_PATH_IMAGE007
is shown asiThe number of computing tasks performed by each computing particle;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE009
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
2. The integrated circuit emulation multithread management parallel method with security function of claim 1, wherein the definition object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the message content storage of the management process and the computation process comprises:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
a parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse particles corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and the object M generally refers to a memory area in the storage medium.
3. The integrated circuit emulation multithread management parallel method with security function of claim 2, wherein the management process creates mutexes and threads, the threads create calculation processes according to the states of the mutexes, and the threads distribute and manage the coarse calculation grain, comprising:
step 1.1, establishing a management process MK on the cloud platform, if the establishment is successful, entering step 1.2, and if the establishment is failed, entering step 1.7;
step 1.2, defining and establishing mutexes MutexData and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, and defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ]; storing parallel coarse grains corresponding to the integrated circuit model into [ Data ] of the object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse grains corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1;
step 1.3: the management process MK establishes a Ki-th calculation process, and if the establishment of the Ki-th calculation process fails, the preset time is paused, and the step 1.3 is entered; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure 449780DEST_PATH_IMAGE010
if Ki = maximum number of processes allowed to be created, step 1.4 is entered, otherwise step 1.3 is entered; ki is a natural number;
step 1.4: if the MutexExit = mutex is idle, the management process MK proceeds to step 1.7; otherwise, the management process MK enters an HTTP network service response state, the working states of all the computing processes and the number of the computing processes in the process pool are inquired, if the number of the computing processes in the process pool is smaller than the maximum number of the computing processes allowed to be created, the step 1.3 is entered, and if not, all the computing processes in the suspended state are activated to enter a ready state and the step 1.5 is entered;
step 1.5: if the management process MK receives the field Message = acquire of the element sent by any calculation process Kj, the step 1.6 is carried out; otherwise, directly entering step 1.4; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
step 1.6: the management process MK establishes a thread tj for response work, and the step 1.4 is entered;
step 1.7: deleting mutexes MutexWork and MutexExit, sending a P _ NN instruction to all computing processes, closing all computing processes, destroying all threads established by a management process MK, and ending the management process MK;
the step 1.6 comprises the following steps:
step 1.6.1, the thread tj enters an instruction analysis stage after being ready, and if the instruction is Message = acquire, the step 1.6.3 is entered; if the instruction is Message = Update, entering step 1.6.2;
step 1.6.2, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
step 1.6.3, if the mutex work = the mutex waiting, the thread tj enters a waiting state; if the mutex = is idle, setting the mutex = is idle by the thread tj, waiting by the mutex, inquiring a data area of the object M by the thread tj, if states of all elements of the object M = C _ M, indicating that all calculation tasks of the data area of the object M are completely calculated, setting the mutex = is idle by the thread tj, and destroying the thread tj; otherwise thread tj proceeds to step 1.6.4;
step 1.6.4, if the State = C0_ M0 of a certain element Mi of the object M, the State = C0_ M1 of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering step 1.6.3, otherwise entering step 1.6.4;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, step 1.6.3 is entered, otherwise step 1.6.4 is entered.
4. The integrated circuit emulation multithread management parallel method with security function of claim 2, wherein the computing process sends a query instruction, the management process creates a thread to query and respond to the query instruction, and the computing process responds according to the thread's response to complete the distributed coarse computation granularity, comprising:
step 2.1: the calculation process Ki sends the field Message = Inquire of the element to the management process MK;
step 2.2: if the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time, entering the step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the parallel coarse-grained calculation condition corresponding to the integrated circuit model defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters step 2.4;
if the instruction received by the calculation process Ki is the field Message = P _ Y of the element Mi, go to step 2.3;
step 2.3: the calculation process Ki carries out mesh generation aiming at the current integrated circuit model, if mesh generation is successful, the mesh number is stored in the position of a mesh Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
step 2.4: interrupting for a preset time and entering step 2.1.
5. An integrated circuit emulation multithreading management parallelism apparatus with secure functionality, comprising:
the system comprises a first module, a second module and a third module, wherein the first module is used for reading all integrated circuit models needing to be simulated at a client, extracting integrated circuit model information and calculation conditions needing to be calculated by a cloud platform, forming parallel coarse grains and sending the parallel coarse grains to the cloud platform;
the second module is used for dividing the electromagnetic simulation of all integrated circuit models to be simulated into a plurality of calculation particles, acquiring the weighted CPU time and the total CPU time of each calculation particle, and determining calculation coarse particles according to the ratio of the weighted CPU time to the total CPU time; the calculation particles are calculation units which need to be repeatedly executed for multiple times;
the third module is used for creating a management process on the cloud platform, reading all parallel coarse particles needing simulation sent by the client through the management process, defining the calculation conditions and the calculation states of the parallel coarse particles corresponding to the object storage integrated circuit model, and storing the message contents of the management process and the calculation process;
the fourth module is used for establishing the mutex and the thread by the management process, and the thread establishes a calculation process according to the state of the mutex and distributes and manages the coarse calculation particles; the mutex is a mechanism for preventing multiple threads from operating on the same object at the same time, and the state of the mutex includes: mutex wait state: the thread is in a blocked state at the moment, and the thread can only wait; mutex idle state: indicating that the thread may enter work at this time;
the fifth module is used for the calculation process to send a query instruction, the management process creates a thread to query and answer the query instruction, and the calculation process responds according to the answer of the thread to finish distributed calculation coarse grains;
the management process is used for collecting calculation results and sorting the calculation results of all the calculation tasks to generate a final calculation result when all the calculation tasks of the parallel coarse grains are completed;
the seventh module is used for transmitting the final calculation result of the cloud platform to the client and displaying the final calculation result by the client;
converting all read information of the integrated circuit model into input parameters of actual calculation at a client, and deleting all information which is irrelevant to the integrated circuit electromagnetic simulation and needs to be kept secret for a user, wherein the information comprises the following steps: the method comprises the following steps that (1) the name of a layout, the name of a component, the name of a function, the name of a material used by an integrated circuit model and the name of an external circuit of the integrated circuit are arranged in the integrated circuit model;
dividing computing units repeatedly executed for multiple times in the electromagnetic simulation of each integrated circuit model to be simulated as computing particles according to input parameters of actual computing, sequencing the weighted CPU time of each computing particle from large to small, sequentially accumulating until the total CPU time of the sum exceeds 90%, and taking each computing particle subjected to the sum as a parallel coarse particle;
the calculation formula for calculating the weighted CPU time of the particles is as follows:
Figure DEST_PATH_IMAGE011
in the formula:
Figure DEST_PATH_IMAGE012AA
is shown asiThe weighted CPU time of each calculated grain,
Figure 871315DEST_PATH_IMAGE005
is shown asiEach calculation particle has a single calculated CPU time,
Figure DEST_PATH_IMAGE013A
is shown asiThe number of computing tasks performed by each computing particle;
the calculation formula of the total CPU time in the whole calculation process is as follows:
Figure DEST_PATH_IMAGE014A
wherein the content of the first and second substances,Texpressed as the total CPU time of the entire computation process,mthe number of calculation particles divided for the entire calculation program is expressed.
6. The apparatus of claim 5, wherein the definition object stores the computation conditions and the computation states of the parallel coarse grains corresponding to the integrated circuit model, and the message content storage of the management process and the computation process comprises:
for all parallel coarse grains corresponding to the integrated circuit models, an object M is defined, wherein the object M comprises the following fields:
the parallel coarse grain storage field corresponding to the integrated circuit model is recorded as Data, and stores all information related to the integrated circuit model and electromagnetic simulation calculation, including layer coordinate information defining the integrated circuit model, layout coordinate information of each layer of the integrated circuit, medium parameter information of each layer of the integrated circuit, connection relation of each layer of the integrated circuit and a circuit model extracted from an external circuit of the integrated circuit;
a parallel coarse grain Type storage field corresponding to the integrated circuit model is recorded as Type, and the field stores the simulation Type of the integrated circuit model and the scale of the integrated circuit model; the simulation types of the integrated circuit model comprise: the method comprises the following steps of (1) joint simulation of a multilayer PCB layout model, an IC packaging model, a chip design model with smaller multilayer scale and a plurality of integrated circuit models; the scale of the integrated circuit model includes: a small-scale integrated circuit model with the number of layers below 4, a medium-scale integrated circuit model with the number of layers above 4 and below 20, and a large-scale integrated circuit model with the number of layers above 20;
recording a Path storage field of the mesh generation file corresponding to the integrated circuit model as Path;
a parallel coarse grain computation condition storage field corresponding to the integrated circuit model, denoted Net, which stores computation parameters of different integrated circuit models, including: the method comprises the steps of analyzing a direct current voltage drop of an integrated circuit and port parameters of electrothermal coupling analysis of the integrated circuit, analyzing power integrity of the integrated circuit, analyzing signal integrity of the integrated circuit, optimizing power integrity and signal integrity of the integrated circuit, analyzing simulation frequency parameters and simulation port parameters of electromagnetic interference and electromagnetic compatibility of the integrated circuit, and extracting equivalent circuit parameters of the integrated circuit to obtain port parameters and port voltage parameters;
the parallel coarse grain computation State storage field corresponding to the integrated circuit model is marked as State, and the field stores the computation State of the integrated circuit model and comprises the following 5 computation states: not calculated and not generated grid, denoted C0_ M0; not computed and is generating a grid, denoted by C0_ M1; not calculating and generating the grid is finished, and is represented by C0_ M; the grid is calculated and generated completely, and is represented by C1_ M; completing the calculation, and using C _ M to represent;
the Message content storage field of the process is marked as Message, the field stores messages sent between the management process and the computing process, and the sent messages comprise: a query instruction, denoted Inquire; a result Update instruction, which is represented by Update; entering a grid generation instruction, which is represented by P _ Y; directly reading the grids for calculating instructions without generating the grids, and expressing the instructions by P _ N; a process closing instruction is expressed by P _ NN;
the object M defined aiming at the parallel coarse particles corresponding to all the integrated circuit models is completely represented by M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ], and the object M generally refers to a memory area in the storage medium.
7. An integrated circuit emulation multithread management parallel apparatus with security function as claimed in claim 6, wherein the management process creates mutexes and threads, and the threads create calculation processes according to states of the mutexes, and distribute and manage the coarse calculation grain, comprising:
the first unit is used for establishing a management process MK on the cloud platform, and if the establishment is successful, the second unit is accessed; if the establishment fails, entering a seventh unit;
the second unit is used for defining and establishing mutexes MutexWork and MutexExit, setting MutexWork = mutex idle, setting MutexExit = mutex waiting, and defining an object M [ Data ] [ Type ] [ Path ] [ Net ] [ State ] [ Message ]; storing parallel coarse grains corresponding to the integrated circuit model into [ Data ] of the object M; storing the Type of the parallel coarse grains corresponding to the classified integrated circuit model into [ Type ] of the object M; storing the production mesh subdivision file Path corresponding to the parallel coarse grains corresponding to the integrated circuit model into the Path of the object M; storing the calculation conditions of the parallel coarse grains corresponding to the integrated circuit model into [ Net ] in the object M; state = C0_ M0 of the initialization object M; initializing the Message of the object M to be null; initializing process number Ki = 1;
a third unit: the third unit is used for establishing a Ki-th calculation process by the management process MK, and pausing for preset time if the establishment of the Ki-th calculation process fails; if the Ki calculation process is successfully established, putting the Ki calculation process in a suspended state;
Figure 352849DEST_PATH_IMAGE010
if Ki = the maximum number of processes allowed to be created, entering a fourth unit, and otherwise, entering a third unit; ki is a natural number;
a fourth unit: when the MutexExit = mutex is idle, the management process MK enters the seventh unit; otherwise, the management process MK enters an HTTP network service response state, the working states of all the computing processes and the number of the computing processes in the process pool are inquired, if the number of the computing processes in the process pool is smaller than the maximum number of the computing processes allowed to be created, the management process MK enters a third unit, and if not, all the computing processes in the suspended state are activated to enter a ready state and enter a fifth unit;
a fifth unit: the management process MK enters the sixth unit when receiving the field Message = acquire of the element sent by any computing process Kj; otherwise, directly entering a fourth unit; j is more than or equal to 1 and less than or equal to the maximum process number allowed to be created;
a sixth unit: the management process MK establishes a thread tj for response work and enters a fourth unit;
a seventh unit: the system is used for deleting mutexes MutexWork and MutexExit, sending a P _ NN instruction to all computing processes, closing all computing processes, destroying all threads established by a management process MK, and ending the management process MK;
the sixth unit includes:
the first subunit is used for entering the third subunit after the thread tj enters the instruction analysis stage in a ready state and if the instruction is Message = acquire; if the instruction is Message = Update, entering a second subunit;
the second subunit is used for enabling the thread tj to enter a waiting state when the mutex = mutex waits; if the mutex = mutex idle, the thread tj sets the mutex = mutex wait, the thread tj updates the data area element Mi, the thread tj sets the mutex = mutex idle, and the thread tj self-destroys;
a third subunit, configured to, when mutex = mutex waits, enter a wait state by thread tj; if the mutex = is idle, setting the mutex = is idle by the thread tj, waiting by the mutex, inquiring a data area of the object M by the thread tj, if states of all elements of the object M = C _ M, indicating that all calculation tasks of the data area of the object M are completely calculated, setting the mutex = is idle by the thread tj, and destroying the thread tj; otherwise, the thread tj enters a fourth subunit;
a fourth subunit, configured to update, when the State = C0_ M0 of an element Mi of the object M, the State = C0_ M1 of the element Mi, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ Y of the element Mi;
if the State = C0_ M of a certain element Mi of the object M, the State = C1_ M of the element Mi is updated, and the management process MK replies that the instruction of the calculation process Kj is the field Message = P _ N of the element Mi;
if the State = C1_ M or State = C _ M of a certain element Mi of the object M, the query flag points to the next element of the field Net of the object M, continuing to query the parallel coarse particles belonging to the same integrated circuit model, if all the elements of the field Net of the object M have been traversed, entering a third sub-unit, otherwise entering a fourth sub-unit;
if the State = C0_ M1 of a certain element Mi of the object M, the query flag points to the next element of the field Data of the object M, the query continues with the parallel coarse grain of the next integrated circuit model, if all elements of the field Data of the object M have been traversed, the third subunit is entered, otherwise the fourth subunit is entered.
8. The apparatus of claim 6, wherein the computing process sends a query, the management process creates a thread to query and respond to the query, and the computing process responds according to the thread's response to complete the distributed coarse computation granularity, comprising:
the first calculation unit: the field Message = acquire for the computing process Ki sending this element to the management process MK;
a second calculation unit: the fourth calculation unit is used for entering the fourth calculation unit when the calculation process Ki does not receive the message returned by the management process MK after exceeding the preset time;
if the instruction received by the calculation process Ki is the field Message = P _ NN of the element, the calculation process is ended;
if the instruction received by the calculation process Ki is the field Message = P _ N of the element Mi, the calculation process Ki process reads the mesh subdivision file of the current integrated circuit from the Path defined by the Path field, enters a calculation mode based on the integrated circuit model calculation condition defined by the Type field, completes the specified calculation defined by the Type field, updates the State = C _ M of the element Mi of the object M after the calculation is completed, sends the field Message = Update of the element to the management process MK, sends the field State = C _ M of the element Mi of the updated object M to the management process MK, and enters a fourth calculation unit;
if the instruction received by the computing process Ki is the field Message = P _ Y of the element Mi, entering a third computing unit;
a third calculation unit: when the calculation process Ki carries out grid splitting on the current integrated circuit model, if the grid splitting is successful, the grid number is stored in the position of a grid Path defined by a Path field, the State = C0_ M of an element Mi of an object M is updated, the field Message = Update of the element is sent to a management process MK, and the field State = C0_ M of the element Mi of the updated object M is sent to the management process MK; if the mesh generation fails, updating the State = C0_ M0 of the element Mi of the object M, sending the field Message = Update of the element to the management process MK, and sending the field State = C0_ M0 of the element Mi of the updated object M to the management process MK;
a fourth calculation unit: for interrupting for a predetermined time, and entering the first computing unit.
CN202110459228.7A 2021-04-27 2021-04-27 Integrated circuit simulation multithread management parallel method and device with security function Active CN112988403B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110459228.7A CN112988403B (en) 2021-04-27 2021-04-27 Integrated circuit simulation multithread management parallel method and device with security function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110459228.7A CN112988403B (en) 2021-04-27 2021-04-27 Integrated circuit simulation multithread management parallel method and device with security function

Publications (2)

Publication Number Publication Date
CN112988403A CN112988403A (en) 2021-06-18
CN112988403B true CN112988403B (en) 2021-08-10

Family

ID=76340367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110459228.7A Active CN112988403B (en) 2021-04-27 2021-04-27 Integrated circuit simulation multithread management parallel method and device with security function

Country Status (1)

Country Link
CN (1) CN112988403B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760512B (en) * 2021-09-08 2023-07-11 北京世冠金洋科技发展有限公司 Simulation model execution method and device, storage medium and electronic equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637217B (en) * 2012-02-20 2014-03-26 苏州领佰思自动化科技有限公司 Large-scale integrated circuit wiring system based on cloud computing platform
US9140745B1 (en) * 2014-03-05 2015-09-22 Unigen Corporation System and method for cloud testing and remote monitoring of integrated circuit devices
US10248747B1 (en) * 2017-05-05 2019-04-02 Cadence Design Systems, Inc. Integrated circuit simulation with data persistency for efficient memory usage

Also Published As

Publication number Publication date
CN112988403A (en) 2021-06-18

Similar Documents

Publication Publication Date Title
Bortoluzzi et al. Automating the creation of building information models for existing buildings
CN109141446A (en) For obtaining the method, apparatus, equipment and computer readable storage medium of map
CN102255930B (en) Method and system for providing scene data of virtual world
CN105261066B (en) A kind of three-dimensional geographic information system real-time rendering multithreading distribution and control method
CN110516325A (en) A kind of CAE automation simulation analysis method and system
WO2022166681A1 (en) Virtual scenario generation method and apparatus, and device and storage medium
CN104885123A (en) On demand geometry and acceleration structure creation
US20210232729A1 (en) Systems and Methods to Define and Monitor a Scenario of Conditions
CN111708641A (en) Memory management method, device and equipment and computer readable storage medium
CN113515672A (en) Data processing method and device, computer readable medium and electronic equipment
CN112988403B (en) Integrated circuit simulation multithread management parallel method and device with security function
CN109521943A (en) The distribution method and Related product of cloud database instance
CN112989746B (en) Integrated circuit simulation coarse grain parallel method and device for multi-thread management
US20150081263A1 (en) Production simulation apparatus and production simulation method
CN114281509B (en) Spacecraft multiuser collaborative task planning system based on scene description
CN115017050A (en) Automatic driving test scene generation system and method
US20190005169A1 (en) Dynamic Design of Complex System-of-Systems for Planning and Adaptation to Unplanned Scenarios
CN113010296B (en) Formalized model based task analysis and resource allocation method and system
JP2008225686A (en) Data arrangement management device and method in distributed data processing platform, and system and program
CN111062171A (en) Application method, device and system of EFDC model based on cloud computing
CN111950753A (en) Scenic spot passenger flow prediction method and device
CN115269600A (en) Airplane data management method and device, electronic equipment and storage medium
CN112989685B (en) Integrated circuit cloud platform electromagnetic simulation parallel method and device with secret function
CN116108757B (en) Multistage simulation time pushing method in training environment, server and storage medium
CN112988404B (en) Integrated circuit simulation coarse grain parallel method and device based on management process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant