Method and device for determining processor core, storage medium and electronic equipment
By receiving task requests and analyzing requirements information, using the packet nodes and allocation status of the processor core, the target processor core is automatically determined, which solves the cumbersome problem of configuring the processor core on the cloud platform, and realizes efficient processor core configuration and task processing.
Patent Information
- Application Number
- CN202510744582.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-05
- Publication Date
- 2025-07-04
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The process of configuring the processor core of the cloud platform is cumbersome and inefficient.
By receiving task requests, analyzing requirements information, using the packet node information and allocation status of the processor core, the target processor core is automatically determined, and the automatic allocation of the processor core is realized.
It realizes accurate and efficient configuration of the cloud platform processor core, avoids cumbersome configuration processes, and improves task processing efficiency.
Smart Images

Figure CN120256072A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of cloud services, and in particular, to a method and device for determining a processor core, a storage medium, and an electronic device. Background Art
[0002] With the development and popularization of cloud services, a series of virtualization technologies based on server hardware have emerged. More and more software services have been migrated to virtual machines provided by cloud services, including some software services with extremely high hardware requirements. As a result, advanced usage methods of server hardware by cloud platforms have emerged, and CPU (Central Processing Unit) isolation technology is one of them.
[0003] In related technologies, a CPU is usually a multi-core processor, that is, a processor contains multiple cores. Each core can execute tasks independently. By processing multiple tasks in parallel, the multi-core processor significantly improves the efficiency of multi-task processing. If some CPU cores need to be isolated and separately allocated to certain processes, it is necessary to add a CPU isolation configuration in the server's startup boot item, and then the server needs to be restarted and the boot item needs to be re-booted to isolate the corresponding CPU cores. The entire process is cumbersome and inefficient.
[0004] It can be seen that there is a problem in related technologies that the process of configuring processor cores in a cloud platform is cumbersome. Summary of the Invention
[0005] This application provides a method and device for determining a processor core, a storage medium, and an electronic device, so as to at least solve the problem that the process of configuring processor cores in a cloud platform is cumbersome in related technologies.
[0006] This application provides a method for determining a processor core, which is applied to a cloud platform and includes: receiving a task request initiated by a target object on the cloud platform, and determining requirement information of a target task from the task request, where the requirement information at least includes the number of processor cores required to execute the target task; determining a grouping node corresponding to each processor core in the cloud platform according to processor core grouping node information, where the processor core grouping node information includes the corresponding relationship between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core; determining target processor cores according to the grouping node corresponding to each processor core and the allocation status of each processor core, and using the target processor cores to execute the target task, where the allocation status is used to indicate whether a processor core has been assigned a task.
[0007] The present application also provides a device for determining a processor core, including: a task receiving module, configured to receive a task request initiated by a target object on the cloud platform, and determine requirement information of a target task from the task request, where the requirement information at least includes the number of processor cores required to execute the target task; an information determining module, configured to determine a grouping node corresponding to each processor core in the cloud platform according to processor core grouping node information, where the processor core grouping node information includes corresponding relationships between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core; a task allocating module, configured to determine a target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, and use the target processor core to execute the target task, where the allocation status is used to indicate whether a task has been allocated to the processor core.
[0008] The present application also provides an electronic device, including: a memory, configured to store a computer program; a processor, configured to implement the steps of any one of the above methods for determining a processor core when executing the computer program.
[0009] The present application also provides a computer-readable storage medium, in which a computer program is stored, where the computer program implements the steps of any one of the above methods for determining a processor core when executed by a processor.
[0010] The present application also provides a computer program product, including a computer program, where the computer program implements the steps of any one of the above methods for determining a processor core when executed by a processor.
[0011] Through the present application, the received task request can be parsed to determine the requirement information of the target task, and then an optimal allocation scheme that meets the requirements of the target task can be automatically determined according to the grouping node information of the processor cores and the allocation status of the processor cores. Thus, the target task is processed by the determined target processor core, realizing the automatic allocation of the processor cores and avoiding the cumbersome configuration process. Therefore, the technical problem of the cumbersome process of configuring processor cores on the cloud platform can be solved, and the technical effect of accurately and efficiently configuring processor cores on the cloud platform can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] To more clearly illustrate the embodiments of the present application, the following will briefly introduce the drawings required in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0013] Figure 1Schematic diagram of an application scenario of a method for determining a processor core according to an embodiment of the present application;
[0014] Figure 2 Flowchart of an optional method for determining a processor core according to an embodiment of the present application;
[0015] Figure 3 Flowchart (I) of an optional method for determining a processor core according to an embodiment of the present application;
[0016] Figure 4 Flowchart (II) of an optional method for determining a processor core according to an embodiment of the present application;
[0017] Figure 5 Block diagram of a structure of an optional apparatus for determining a processor core according to an embodiment of the present application.
[0018] 102 represents a terminal device, 104 represents a server, 52 represents a task receiving module, 54 represents an information determining module, and 56 represents a task allocating module. Detailed implementation manners
[0019] Next, the technical solutions in the embodiments of the present application will be clearly and completely described with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments of the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0020] It should be noted that in the description of the present application, the terms "include", "comprise" or any other variant thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements but also other elements not expressly listed, or further includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present application are used to distinguish similar objects and are not used to describe a specific order or sequence.
[0021] To enable those skilled in the art of the present technology to better understand the solution of the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific implementation manners.
[0022] According to one aspect of the embodiments of the present application, a method for determining a processor core is provided. Optionally, in this embodiment, the above method for determining a processor core may be but is not limited to being applied to, for example Figure 1In the hardware environment including the terminal device 102 and the server 104 as shown. The server 104 can be connected to the terminal device 102 through a network and can be used to provide services (such as application services, etc.) for the terminal device 102 or the client installed on the terminal device 102. A database can be set up on the server 104 or independently of the server 104 to provide data storage services for the server 104.
[0023] The above network can include but is not limited to at least one of the following: wired network, wireless network. The above wired network can include but is not limited to at least one of the following: wide area network, metropolitan area network, local area network. The above wireless network can include but is not limited to at least one of the following: WIFI (Wireless Fidelity), Bluetooth. The terminal device 102 can be but is not limited to a PC (Personal Computer), mobile phone, tablet computer, etc. The server 104 can be but is not limited to a cloud server, server cluster or other server types.
[0024] The method for determining the processor core in the embodiment of the present application can be executed by the server 104, or can be executed by the terminal device 102, or can also be jointly executed by the server 104 and the terminal device 102. Among them, the method for determining the processor core in the embodiment of the present application executed by the terminal device 102 can also be executed by the client installed on it.
[0025] Taking the determination method of the processor core in this embodiment executed by the terminal device 102 as an example, here, the terminal device 102 can be a physical host. The determination method of the processor core in this embodiment is applied to the physical host. The memory that can be called by the physical host is divided into multiple memory levels. One memory level of the multiple memory levels includes at least one type of memory, and the multiple memory levels include the first memory level corresponding to the physical memory of the physical host. Here, the physical host can be an enterprise-level server, a cluster server, an office computer, an embedded device, etc., which are entity devices that can serve as the underlying hardware support in a virtualization environment; the physical memory is a physical memory module directly and closely connected to the host hardware, which is the core and foundation of the memory architecture system. The physical memory is usually composed of Dynamic Random Access Memory (abbreviated as DRAM), which has extremely fast read and write speeds and can respond to the memory access requests of the processor with a nanosecond-level response time, making the physical memory suitable for carrying the core code of the virtual machine operating system, frequently called system function libraries, and the key process data that is running at high speed. For example, at the initial stage of virtual machine startup, the operating system kernel needs to quickly load and initialize various hardware drivers and establish a basic system running environment. At this time, the physical memory can complete the data reading and writing operations with extremely high efficiency, ensuring that the virtual machine can start quickly and stably. During the operation of the virtual machine, some application program parts with extremely high requirements for memory read and write performance, such as the transaction processing module of the database management system and the real-time rendering engine, also rely on the physical memory to ensure their efficient operation, thereby maintaining the fluency and response timeliness of the entire virtual machine system.
[0026] Figure 2 It is a schematic flowchart of an optional method for determining a processor core according to an embodiment of the present application. As Figure 2 shown, the process of this method can include the following steps:
[0027] Step S202, receive a task request initiated by a target object on a cloud platform, and determine the requirement information of the target task from the task request, where the requirement information includes at least the number of processor cores required to execute the target task;
[0028] Optionally, in the above step S202, the above task request can be initiated by a user or a system, and the above task corresponds to a process in a task manager in the server.
[0029] It should be noted that the above requirement information may also include executing the target task through a specified processor core.
[0030] Step S204. Determine the grouping node corresponding to each processor core in the cloud platform according to the processor core grouping node information, where the processor core grouping node information includes the corresponding relationships between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core.
[0031] Optionally, in the above step S204, the cloud platform has multiple grouping nodes, each grouping node corresponds to one or more processor cores, and each processor core has its corresponding grouping node.
[0032] Step S206. Determine the target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, and use the target processor core to execute the target task, where the allocation status is used to indicate whether the processor core has been assigned a task.
[0033] Optionally, in the above step S204, the allocation status of each processor core has two types, namely the allocable status and the non-allocable status. If the processor core is currently processing the assigned task, then it is in the non-allocable status until the processor core finishes processing the above task and releases it, and then it is updated to the allocable status.
[0034] Through the embodiments provided in this application, the requirement information of the target task can be determined by parsing the received task request, and then the optimal allocation scheme that meets the requirements of the target task can be automatically determined according to the grouping node information of the processor core and the allocation status of the processor core. Thus, the target task is processed by the determined target processor core, realizing the automatic allocation of the processor core and avoiding the cumbersome configuration process. Therefore, the technical problem of the cumbersome process of configuring the processor core in the cloud platform can be solved, and the technical effect of accurately and efficiently configuring the processor core in the cloud platform can be achieved.
[0035] In an exemplary embodiment, before determining the grouping node corresponding to each processor core in the cloud platform according to the processor core grouping node information, the method further includes: obtaining the memory controller connected to each processor core; determining the processor core grouping node according to the connection relationship between each processor core and the memory controller, where the processor cores connected to the same memory controller correspond to the same grouping node.
[0036] Optionally, in the above embodiment, the server architecture adopted by the cloud platform and other multi-processor systems is the NUMA (Non-Uniform Memory Access) architecture, and the NUMA architecture is a memory organization method designed to solve the memory access bottleneck in multi-processor systems.
[0037] The NUMA architecture consists of multiple nodes (NUMA Nodes), each node includes multiple CPU cores, and each node has its own local memory. The node is directly connected to the local memory. The processor cores within the same node access the local memory through the same memory controller. The CPU core directly accessing the memory within its own node has a lower latency and faster access speed. Cross-node access requires inter-node communication through the node's interconnection module, resulting in a higher latency.
[0038] In an optional embodiment, in the Linux system, the topology information of the NUMA architecture can be determined through the numactl command. The topology information includes information such as CPU core grouping, memory grouping, and the distance between CPUs. Based on the queried topology structure, an array of NUMA Node structures is constructed. The size of the array is equal to the number of NUMA Nodes, and the index number of the array elements is the NUMA Node number. Among them, the value of each array element corresponds to an array of Int type. The size of the Int type array is the number of CPU cores included in the NUMA Node, and the values included in the array are the CPU numbers corresponding to the NUMA Node. For example, for a server corresponding to a cloud platform, there are 2 NUMA Nodes and a total of 6 CPUs. Among them, Node0 contains CPU cores numbered 1, 3, and 5, and Node1 contains CPU cores numbered 2, 4, and 6. Then the constructed NUMA Node grouping is: NODE_CPU_GROUP = [Node0, Node1], where Node0 = [1, 3, 5] and Node1 = [2, 4, 6].
[0039] In an exemplary embodiment, before determining the target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, the method further includes: constructing an initial allocation status list, where the number of elements in the first element of the initial allocation status list is equal to the number of processors in the cloud platform. The elements of the initial allocation status list correspond one-to-one with the processor cores in the cloud platform. When the element of the initial allocation status list is the first value, it indicates that the processor core corresponding to the element is in an allocable state. When the element of the initial allocation status list is the second value, it indicates that the processor core corresponding to the element is in a non-allocable state. The initial value of the elements of the allocation status list is the first value; query the task processing records from the database to determine the processor cores associated with the task processing records; update the values of the elements corresponding to the processor cores associated with the task processing records to the second value to obtain the allocation status list; determine the allocation status of each processor core according to the allocation status list.
[0040] Optionally, in the above embodiments, in the cloud platform, an array can be used to represent the allocation status list. First, query the number of CPU cores of the server, then define the size of the array to be equal to the number of CPU cores of the cloud platform. The values of the array elements are set to the Boolean type, where True indicates the non-allocation state and False indicates the allocable state. The index number of the element is the CPU core number of the server, and the value of the element corresponds to the allocation status of the CPU core. For example, the server corresponding to the cloud platform has a total of 6 CPU cores, and the allocation status array CPU_FLAGS = [CPU0, CPU1, CPU2, CPU3, CPU4, CPU5] is defined. When CPU_FLAGS is initialized, the default values of CPU0-5 are False. Then, query the task processing records from the database, which is used to record the CPU cores that process the tasks after the processor cores are allocated to the tasks and delete the task processing records after the tasks are processed. Therefore, the records in the database are all the processor cores of the tasks being processed. For example, if CPU1, CPU2, and CPU3 exist in the queried task processing records, then CPU1, CPU2, and CPU3 are in the non-allocation state, and update the values of CPU1, CPU2, and CPU3 in CPU_FLAGS to True. The finally constructed allocation status array CPU_FLAGS = [CPU0, CPU1, CPU2, CPU3, CPU4, CPU5], where the values of CPU1, CPU2, and CPU3 are True, and the values of CPU0, CPU4, and CPU5 are False.
[0041] In an exemplary embodiment, after updating the value of the element corresponding to the processor core associated with the task processing record to the second value, the method further includes: querying the system-level processor cores of the cloud platform, where the system-level processor cores are used to process the running tasks of the cloud platform; updating the value of the element corresponding to the system-level processor cores to the second value.
[0042] Optionally, in the above embodiments, for example, by querying the cloud platform configuration, it is found that CPU0 is the system-level CPU core, and the cloud platform runs on this CPU core. Therefore, this CPU core needs to be reserved as the system-level CPU core without allocating any tasks. So, in the above constructed allocation status array CPU_FLAGS, the value of CPU0 also needs to be updated to True.
[0043] In an exemplary embodiment, a task request initiated by a target object on a cloud platform is received, and requirement information of a target task is determined from the task request, including: obtaining a requirement list of the target task from the task request; determining the number of processor cores required to execute the target task according to the number of the second elements of the requirement list; and determining the processor cores specified for the target task according to the values of the elements of the requirement list and the unique identifier of the processor of the cloud platform.
[0044] Optionally, in the above embodiment, after receiving the task request, the requirement list of the target task and the target task ID can be parsed therefrom, where the requirement list is a list of the Int type, and the size of the list is equal to the number of CPU cores required for the target task. The CPU core numbers to be allocated can be specified by the values of the elements in the list. If the CPU cores do not need to be specified, the values of the elements are set to a preset value (for example, set to -1). For example, the requirement list of the target task CPU_CONTAINER = [5, -1, -1, -1, -1] indicates that a total of 5 CPU cores need to be allocated for the target task, where 1 CPU core is CPU5, and the remaining four CPUs are automatically allocated.
[0045] Through the above embodiments, the grouping node information of the processor cores, the allocation status of the processor cores, and the requirement information of the target task are clearly and concisely integrated in a standardized data structure, providing a data basis for further allocating the processor cores according to the integrated information, thereby improving the allocation efficiency.
[0046] In an exemplary embodiment, determining target processor cores according to the grouping nodes corresponding to each processor core and the allocation status of each processor core includes: performing a priority sorting on a plurality of grouping nodes to determine a priority list of the plurality of grouping nodes; and determining target processor cores from the processor cores corresponding to the grouping nodes in the priority list.
[0047] Optionally, in the above embodiment, the requirement information of the target task, the grouping node information of each CPU core, and the allocation status of each CPU core have been determined. Then, it is necessary to select CPU cores from a plurality of grouping nodes as target processor cores to process the target task. During the selection process, the NUMA Node selection algorithm can be used to perform a priority sorting on a plurality of grouping nodes, and the processor cores are preferentially selected from the grouping nodes with higher rankings according to the sorting result. Among them, the basis of the NUMA Node selection algorithm can be determined according to conditions such as the node number, the available memory capacity corresponding to the node, the number of allocable processor cores, and the node distribution of the specified processor cores, or the NUMA Node selection algorithm can be determined by comprehensively considering the above multiple conditions.
[0048] Through the above embodiments, considering various sorting conditions according to actual requirements, sorting the nodes according to the sorting conditions can optimize the allocation efficiency of the processor cores, and can also determine the optimal allocation scheme for task processing performance.
[0049] In an exemplary embodiment, performing a priority sorting on multiple grouped nodes to determine a priority list of the multiple grouped nodes includes: performing a descending sorting on the multiple grouped nodes according to the node numbers of the multiple grouped nodes to obtain a first sorting result; determining the priority list according to the first sorting result.
[0050] Optionally, in the above embodiment, for example, a server corresponding to a cloud platform includes 3 NUMA Node nodes, Node0, Node1, and Node2. Performing a descending sorting on the above three nodes according to the node numbers, the obtained priority list is [Node2, Node1, Node0].
[0051] In an exemplary embodiment, performing a priority sorting on multiple grouped nodes to determine a priority list of the multiple grouped nodes further includes: obtaining the available memory capacities corresponding to the multiple grouped nodes; performing a descending sorting on the multiple grouped nodes according to the available memory capacities to obtain a second sorting result; determining the priority list according to the second sorting result.
[0052] Optionally, in the above embodiment, for example, the available memory capacity corresponding to Node0 is 5GB, the available memory capacity corresponding to Node1 is 6GB, and the available memory capacity corresponding to Node2 is 2GB. Performing a descending sorting on the above three nodes according to the available memory capacities corresponding to the nodes, the obtained priority list is [Node1, Node0, Node2].
[0053] Through the above embodiments, the processor cores can be preferentially determined from the nodes with large memory capacities to process the allocated tasks, ensuring the reasonable planning and balanced use of the resources of each node, and improving the rationality of the processor core allocation.
[0054] In an exemplary embodiment, performing a priority sorting on multiple grouped nodes to determine a priority list of the multiple grouped nodes further includes: obtaining the number of allocable processor cores corresponding to each of the multiple grouped nodes; comparing the number of allocable processor cores corresponding to each grouped node with a target number to obtain a comparison result, where the target number represents the number of processor cores required to execute a target task; determining the priority list according to the comparison result.
[0055] In an exemplary embodiment, determining a priority list according to a comparison result includes: when it is determined that the sum of the number of assignable processor cores corresponding to multiple grouping nodes is greater than or equal to a target number, and there is at least one grouping node whose number of assignable processor cores is greater than or equal to the target number, determining a first grouping node, where the first grouping node represents a grouping node whose number of assignable processor cores is greater than or equal to the target number; sorting the first grouping nodes in descending order according to the number of assignable processor cores to obtain a third sorting result; and determining a priority list according to the third sorting result.
[0056] Optionally, in the above embodiment, for example, to process a target task requires 3 CPU cores. There are 4 assignable CPU cores in Node0, 2 assignable CPU cores in Node1, and 5 assignable CPU cores in Node2. Among them, the assignable CPU cores of Node0 and Node2 are greater than the number required for the target task, and the assignable CPU cores of Node1 are less than the number required for the target task. Then Node1 does not participate in the sorting, and the priority list obtained by sorting Node0 and Node2 in descending order according to the number of assignable processor cores is [Node2, Node0].
[0057] Through the above embodiment, it is possible to preferentially select the CPU cores required for a task from the same grouping node to reduce the performance loss caused by cross-node computing and improve the task processing efficiency.
[0058] In an exemplary embodiment, determining a priority list according to a comparison result further includes: when it is determined that the sum of the number of assignable processor cores corresponding to multiple grouping nodes is greater than or equal to a target number, and there is no grouping node whose number of assignable processor cores is greater than or equal to the target number, sorting the multiple grouping nodes in descending order according to the number of assignable processor cores to obtain a fourth sorting result; and determining a priority list according to the fourth sorting result.
[0059] Optionally, in the above embodiment, for example, to process a target task requires 8 CPU cores. There are 2 assignable CPU cores in Node0, 4 assignable CPU cores in Node1, and 3 assignable CPU cores in Node2. The total number of assignable CPU cores is greater than the number required for the target task, but no single node can undertake all the CPU cores. Therefore, the priority list obtained by sorting the above three nodes in descending order according to the number of assignable processor cores is [Node1, Node2, Node0].
[0060] Through the above embodiment, when it cannot be guaranteed that the processor cores for executing a task come from the same node, it is possible to ensure that as many processor cores as possible are on the same node.
[0061] In an exemplary embodiment, after obtaining the comparison result, the method further includes: when it is determined that the sum of the number of allocable processor cores corresponding to multiple grouped nodes is less than the target number, determining that the first processing result of the target task is a processing anomaly; and feeding back the first processing result to the target object.
[0062] Optionally, in the above embodiment, for example, if processing a target task requires 7 CPU cores, there are 2 allocable CPU cores in Node0, 3 allocable CPU cores in Node1, and 1 allocable CPU core in Node2, and the total number of allocable CPU cores is less than the number required for the target task, and CPU cores cannot be allocated for the target task. Therefore, at this time, the task processing result is fed back as an anomaly, and the reason for the anomaly is insufficient resources.
[0063] In an exemplary embodiment, determining the target processor core from the processor cores corresponding to the grouped nodes in the priority list includes: sequentially traversing the processor cores corresponding to the grouped nodes in the priority list; obtaining the number of allocable processor cores among the traversed processor cores, and stopping the traversal when it is determined that the number of allocable processor cores is greater than the target number; and determining the allocable processor cores among the traversed processor cores as the target processor cores.
[0064] Optionally, in the above embodiment, for example, if processing a target task requires 3 CPU cores, there are 4 allocable CPU cores in Node0, 2 allocable CPU cores in Node1, and the priority list is [Node2, Node0]. Then, directly select 3 CPU cores from Node2 and determine them as the target processors for processing the target task.
[0065] Optionally, in the above embodiment, for example, if processing a target task requires 8 CPU cores, there are 2 allocable CPU cores in Node0, 4 allocable CPU cores in Node1, and 3 allocable CPU cores in Node2, and the priority list is [Node1, Node2, Node0]. Then, first select 4 CPU cores from Node1, then select 3 CPU cores from Node2, and finally select 1 CPU core from Node0. Finally, determine the selected 7 CPU cores as the target processor cores for processing the target task.
[0066] In an alternative embodiment, if the requirement list of the target task specifies multiple processor cores, count the matching number of the specified CPU cores on each NUMA Node, and sort them in descending order according to the quantity, that is, ensure that when allocating, the required CPU cores can be preferentially allocated to the same Node to reduce the performance loss caused by cross-node computing;
[0067] In an optional embodiment, the above process can be automatically completed by a programmed CPU allocator. First, four data structures are obtained: the structure array NODE_CPU_GROUP of the grouping nodes, the processor core allocation status list CPU_FLAGS, the priority list PREFER_NODE_ORDER of the grouping nodes, and the requirement list CPU_CONTAINER of the target task. The input of the CPU allocator is these four data structures. In the order of PREFER_NODE_ORDER, iterate through the values of the CPU_CONTAINER array. If the corresponding value is not -1, access the value of CPU_FLAGS with the CPU core number of the current Node as the subscript. If the corresponding CPU core is allocable, update the value of the current CPU_CONTAINER subscript to this CPU core number; if the corresponding value is not -1, check whether the current Node contains the number of this CPU core. If not, skip the current Node and access the next Node. If it contains, check the value of CPU_FLAGS with this number as the subscript. If the status is allocable, continue. If the status is not allocable, throw an exception (placeholder allocation failed); when all the CPU numbers of the Nodes have been accessed and there are still -1 values in CPU_CONTAINER, throw an exception (insufficient resources).
[0068] In an exemplary embodiment, after determining the requirement information of the target task from the task request, the method further includes: when it is determined that the requirement information further includes the processor core specified by the target task, obtaining the allocation status of the specified processor core; when it is determined that the allocation status of the specified processor core is not allocable, determining that the second processing result of the target task is a processing exception; and feeding back the second processing result to the target object.
[0069] Optionally, in the above embodiment, for example, the requirement list CPU_CONTAINER of the target task = [5, -1, -1, -1, -1], which specifies that CPU5 needs to be allocated. The processor corresponding to the cloud platform queries the allocation status of CPU5 and finds that it has been allocated, so the requirements of the target task cannot be met. At this time, the task processing result is fed back as an exception, and the exception reason is that the specified processor core cannot be allocated.
[0070] In an exemplary embodiment, after determining the target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, the method includes: when it is determined that the target processor core starts to execute the target task, adding a task processing record of the target processor core to the database to update the database; and updating the allocation status list according to the task processing record of the updated database.
[0071] Optionally, in the above embodiments, for each task, after the CPU core allocation is completed, the numbers of the allocated target CPU cores and the task IDs are saved in the database, and the CPU core allocation status synchronization thread is triggered to update the allocation status list saved in the server.
[0072] In an exemplary embodiment, after determining the target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, the method includes: when it is determined that the target processor core has completed the target task, deleting the task processing record of the target processor core in the database to update the database; updating the allocation status list according to the task processing record of the updated database.
[0073] Optionally, in the above embodiments, for each task, after the task processing is completed, the CPU core needs to be released. The task processing record and the corresponding CPU core number are deleted from the database according to the task ID, and the CPU core allocation status synchronization thread is triggered to update the allocation status list saved in the server.
[0074] Through the above embodiments, the allocation status lists in the database and the server can be synchronized in a timely manner to ensure the correctness of the processor core allocation and reduce the occurrence of abnormal allocation situations.
[0075] Next, a method for determining an optional processor core according to an optional embodiment of the present application will be described. In an optional embodiment, as Figure 3 shown, the method for determining the above-mentioned processor core includes the following steps.
[0076] Step S301: Construct a CPU core allocation status array. First, query the number of CPU cores in the server, and then define the size of the array to be equal to the number of CPU cores in the cloud platform. The values of the array elements are set to the Boolean type, where True indicates an unavailable allocation state and False indicates an available allocation state. The index number of the element is the server CPU core number, and the value of the element corresponds to the allocation status of the CPU core. For example, if the server corresponding to the cloud platform has 6 CPU cores, define the allocation status array CPU_FLAGS = [CPU0, CPU1, CPU2, CPU3, CPU4, CPU5]. When CPU_FLAGS is initialized, the default values of CPU0-5 are False.
[0077] Step S302: Query the task processing records from the database. This database is used to record the CPU cores that process the task after the processor cores are allocated to the task, and delete the task processing records after the task is processed. Therefore, the records in the database are all the processor cores of the tasks being processed. For example, if CPU1, CPU2, and CPU3 exist in the queried task processing records, then CPU1, CPU2, and CPU3 are in an unallocable state, and the values of CPU1, CPU2, and CPU3 in CPU_FLAGS are updated to True. Querying the cloud platform configuration reveals that CPU0 is a system-level CPU core, and the cloud platform runs on this CPU core. Therefore, this CPU core needs to be reserved as a system-level CPU core without any tasks assigned. So, the value of CPU0 in the above-built allocation status array CPU_FLAGS also needs to be updated to True.
[0078] Step S303: Query the server topology information and construct an array of node structures. The size of the array is the number of NUMA Nodes, and the index number of the array elements is the number of the NUMA Node. Among them, the value of each array element corresponds to an array of Int type, and the size of the Int type array is the number of CPU cores included in this NUMA Node. The values included in the array are the corresponding CPU numbers under this NUMA Node. For example, if the server corresponding to the cloud platform has 2 NUMA Nodes and a total of 6 CPUs, where Node0 includes the CPU cores numbered 1, 3, and 5, and Node1 includes the CPU cores numbered 0, 2, and 4, then the constructed NUMA Node grouping is: NODE_CPU_GROUP = [Node0, Node1], where Node0 = [1, 3, 5] and Node1 = [0, 2, 4].
[0079] Step S304: Construct a node priority list through a node selection algorithm. Taking this embodiment as an example, the selection algorithm for NUMA Nodes is based on 4 conditional sorts, and each step depends on the sorting result of the previous step. The specific sorting conditions are as follows:
[0080] 1. Sort in descending order by the number of the NUMA Node.
[0081] 2. Taking the NUMA Node as the statistical dimension, obtain the remaining available memory on each NUMA Node and sort it in descending order by the remaining memory size.
[0082] 3. If the total amount of CPU cores available for each node is greater than the task requirement, sort the nodes with the number of available CPU cores per node greater than the task requirement in descending order of the number of available CPU cores. If there is no case where the number of available CPU cores per node is greater than the task requirement, then sort all nodes in descending order of the number of available CPU cores.
[0083] 4. Count the number of matching CPU cores specified by the target task on each node and sort them in descending order of the number of matches. That is, when allocating, ensure that the required CPU can be preferentially allocated to the same Node to reduce the performance loss caused by cross-Node calculation.
[0084] Step S305: Execute the CPU allocator. According to the above sorting conditions, traverse the CPU cores of all nodes in order of the sorting result until enough CPU cores are matched. Then, determine the matched CPU cores as the target processor to start processing the target task. If the matching fails, for example, there are not enough CPU cores or the specified CPU cores are not allocable, then execute Step S306.
[0085] Step S306: Throw an exception for task allocation failure and feedback the reason for failure.
[0086] Step S307: After processing the target task with the allocated CPU cores, add a task processing record to the database and synchronize the data to the server to update the status of the CPU cores.
[0087] In an optional embodiment, as Figure 4 shown, after processing the target task, it is necessary to synchronize data to the database and the server, which specifically includes the following process:
[0088] Step S401: Query the task processing record in the database according to the target task ID.
[0089] Step S402: Delete the CPU cores associated with the target task ID in the database.
[0090] Step S403: Synchronize the database data to the server to update the allocation status of the CPU cores.
[0091] Through the above embodiments, the grouping node information of the processor cores, the allocation status of the processor cores, and the data structure of the requirement information of the target tasks are defined. By combining a reasonable allocation process and a selection algorithm to integrate the above data, the dynamic allocation of CPU cores is completed, reducing the concurrent resource consumption caused by frequent server operations; it can support cloud platform resources with exclusive CPU requirements, dynamically apply for exclusive CPU resources online, while ensuring the rationality and efficiency of CPU resource allocation, improving the control fineness of the cloud platform over server resources, and thus improving the task processing efficiency of the cloud platform.
[0092] It should be noted that, for the foregoing method embodiments, for the sake of simple description, they are all expressed as a series of action combinations. However, those skilled in the art should know that this application is not limited by the described action sequence, because according to this application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily essential to this application.
[0093] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (for example, Read-Only Memory (ROM) / Random Access Memory (RAM), magnetic disk, optical disk), and includes several instructions to enable a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods of various embodiments of this application.
[0094] According to another aspect of the embodiments of this application, a device for determining processor cores is further provided. This device for determining processor cores can be used to implement the method for determining processor cores provided in the above embodiments, and those that have been described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that can achieve a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware is also possible and contemplated.
[0095] Figure 5 is a structural block diagram of an optional device for determining processor cores according to the embodiments of this application. As Figure 5 shown in, this device for determining processor cores includes:
[0096] A task receiving module 52, configured to receive a task request initiated by a target object on a cloud platform, and determine requirement information of a target task from the task request, where the requirement information at least includes the number of processor cores required to execute the target task.
[0097] An information determining module 54, configured to determine a grouping node corresponding to each processor core in the cloud platform according to processor core grouping node information, where the processor core grouping node information includes a corresponding relationship between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core.
[0098] A task allocation module 56, configured to determine a target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, and use the target processor core to execute the target task, where the allocation status is used to indicate whether a task has been allocated to the processor core.
[0099] Through the embodiments provided in this application, the requirement information of the target task can be determined by parsing the received task request, and then an optimal allocation scheme that meets the requirements of the target task can be automatically determined according to the processor core grouping node information and the allocation status of the processor cores. Thus, the target task is processed by the determined target processor core, realizing the automatic allocation of processor cores and avoiding the cumbersome configuration process. Therefore, the technical problem of the cumbersome process of configuring processor cores in the cloud platform can be solved, and the technical effect of accurately and efficiently configuring processor cores in the cloud platform can be achieved.
[0100] In an exemplary embodiment, the information determining module 54 is further configured to obtain a memory controller connected to each processor core; determine the processor core grouping node according to the connection relationship between each processor core and the memory controller, where the processor cores connected to the same memory controller correspond to the same grouping node.
[0101] In an exemplary embodiment, the task allocation module 56 is further configured to construct an initial allocation status list, where the number of first elements of the initial allocation status list is equal to the number of processors in the cloud platform, the elements of the initial allocation status list correspond one by one to the processor cores in the cloud platform, when the element of the initial allocation status list is a first value, it indicates that the processor core corresponding to the element is in an allocable state, when the element of the initial allocation status list is a second value, it indicates that the processor core corresponding to the element is in a non-allocable state, and the initial value of the element of the allocation status list is the first value; query task processing records from a database to determine the processor cores associated with the task processing records; update the value of the element corresponding to the processor core associated with the task processing record to the second value to obtain an allocation status list; determine the allocation status of each processor core according to the allocation status list.
[0102] In an exemplary embodiment, the task allocation module 56 is further configured to query the system-level processor cores of the cloud platform, where the system-level processor cores are used to process the running tasks of the cloud platform; and update the value of the element corresponding to the system-level processor core to a second value.
[0103] In an exemplary embodiment, the task receiving module 52 is further configured to obtain a requirement list of the target task from the task request; determine the number of processor cores required to execute the target task according to the number of second elements in the requirement list; and determine the processor core specified by the target task according to the value of the element in the requirement list and the unique identifier of the processor of the cloud platform.
[0104] In an exemplary embodiment, the task allocation module 56 is further configured to perform a priority sorting on multiple grouping nodes to determine a priority list of the multiple grouping nodes; and determine a target processor core from the processor cores corresponding to the grouping nodes in the priority list.
[0105] In an exemplary embodiment, the task allocation module 56 is further configured to perform a descending sorting on the multiple grouping nodes according to the node numbers of the multiple grouping nodes to obtain a first sorting result; and determine the priority list according to the first sorting result.
[0106] In an exemplary embodiment, the task allocation module 56 is further configured to obtain the available memory capacities corresponding to the multiple grouping nodes; perform a descending sorting on the multiple grouping nodes according to the available memory capacities to obtain a second sorting result; and determine the priority list according to the second sorting result.
[0107] In an exemplary embodiment, the task allocation module 56 is further configured to obtain the number of allocable processor cores corresponding to each of the multiple grouping nodes; compare the number of allocable processor cores corresponding to each grouping node with a target number to obtain a comparison result, where the target number represents the number of processor cores required to execute the target task; and determine the priority list according to the comparison result.
[0108] In an exemplary embodiment, the task allocation module 56 is further configured to, when it is determined that the sum of the numbers of allocable processor cores corresponding to the multiple grouping nodes is greater than or equal to the target number and at least one grouping node has the number of allocable processor cores greater than or equal to the target number, determine a first grouping node, where the first grouping node represents a grouping node with the number of allocable processor cores greater than or equal to the target number; perform a descending sorting on the first grouping nodes according to the number of allocable processor cores to obtain a third sorting result; and determine the priority list according to the third sorting result.
[0109] In an exemplary embodiment, the task assignment module 56 is further configured to, when determining that the sum of the number of assignable processor cores corresponding to multiple grouped nodes is greater than or equal to the target number and there is no grouped node with the number of assignable processor cores greater than or equal to the target number, perform a descending order sorting on the multiple grouped nodes according to the number of assignable processor cores to obtain a fourth sorting result; and determine a priority list according to the fourth sorting result.
[0110] In an exemplary embodiment, the task assignment module 56 is further configured to, when determining that the sum of the number of assignable processor cores corresponding to multiple grouped nodes is less than the target number, determine that the first processing result of the target task is abnormal processing; and feedback the first processing result to the target object.
[0111] In an exemplary embodiment, the task assignment module 56 is further configured to sequentially traverse the processor cores corresponding to the grouped nodes in the priority list; obtain the number of assignable processor cores among the traversed processor cores, and stop traversing when determining that the number of assignable processor cores is greater than the target number; and determine the assignable processor cores among the traversed processor cores as the target processor cores.
[0112] In an exemplary embodiment, the task assignment module 56 is further configured to, when determining that the requirement information further includes the processor core specified by the target task, obtain the allocation status of the specified processor core; and when determining that the allocation status of the specified processor core is non - assignable, determine that the second processing result of the target task is abnormal processing; and feedback the second processing result to the target object.
[0113] In an exemplary embodiment, the task assignment module 56 is further configured to, when determining that the target processor core starts to execute the target task, add a task processing record of the target processor core to the database to update the database; and update the allocation status list according to the task processing record of the updated database.
[0114] In an exemplary embodiment, the task assignment module 56 is further configured to, when determining that the target processor core has completed the execution of the target task, delete the task processing record of the target processor core from the database to update the database; and update the allocation status list according to the task processing record of the updated database.
[0115] For the description of the features in the corresponding embodiments of the determining device of the processor core, reference can be made to the relevant description in the corresponding embodiments of the determining method of the processor core, which will not be elaborated here one by one.
[0116] Embodiments of the present application also provide an electronic device, including a memory and a processor. A computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any of the above-described method embodiments for determining a processor core.
[0117] Embodiments of the present application also provide a computer-readable storage medium having a computer program stored therein. The computer program is configured to execute the steps in any of the above-described method embodiments for determining a processor core when running.
[0118] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to, various media capable of storing a computer program, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disc.
[0119] Embodiments of the present application also provide a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, it implements the steps in any of the above-described method embodiments for determining a processor core.
[0120] Embodiments of the present application also provide another computer program product, including a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the steps in any of the above-described method embodiments for determining a processor core.
[0121] Those skilled in the art can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the components and steps of each example have been generally described according to their functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Skilled professionals can use different methods for each specific application to implement the described functions, but such implementation should not be considered to exceed the scope of the present application.
[0122] The above has introduced in detail a method, apparatus, storage medium, and electronic device for a distributed storage system provided by this application. Specific examples are used in this article to elaborate on the principle and implementation manner of this application. The description of the above embodiments is only used to help understand the method and its core idea of this application. It should be noted that for those of ordinary skill in the art, without departing from the principle of this application, several improvements and modifications can still be made to this application, and these improvements and modifications also fall within the protection scope of the claims of this application.
Claims
1. A method for determining a processor core, characterized in that: Applied to a cloud platform, it includes: Receiving a task request initiated by a target object on the cloud platform, and determining requirement information of a target task from the task request, where the requirement information at least includes the number of processor cores required to execute the target task; Determining a grouping node corresponding to each processor core in the cloud platform according to processor core grouping node information, where the processor core grouping node information includes the corresponding relationship between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core; Determining a target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, and using the target processor core to execute the target task, where the allocation status is used to indicate whether a processor core has been assigned a task.
2. The method for determining a processor core according to claim 1, characterized in that: Before determining the grouping node corresponding to each processor core in the cloud platform according to the processor core grouping node information, the method further includes: Obtaining a memory controller connected to each processor core; Determining the processor core grouping node according to the connection relationship between each processor core and the memory controller, where processor cores connected to the same memory controller correspond to the same grouping node.
3. The method for determining a processor core according to claim 1, characterized in that: Before determining the target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, the method further includes: Constructing an initial allocation status list, where the number of elements in the first element of the initial allocation status list is equal to the number of processors in the cloud platform, the elements of the initial allocation status list correspond one by one to the processor cores in the cloud platform, when the element of the initial allocation status list is a first value, it indicates that the processor core corresponding to the element is in an allocable state, when the element of the initial allocation status list is a second value, it indicates that the processor core corresponding to the element is in a non-allocable state, and the initial value of the element of the allocation status list is the first value; Querying task processing records from a database to determine the processor cores associated with the task processing records; Updating the value of the element corresponding to the processor core associated with the task processing record to the second value to obtain the allocation status list; Determining the allocation status of each processor core according to the allocation status list.
4. The method for determining a processor core according to claim 3, characterized in that: After updating the value of the element corresponding to the processor core associated with the task processing record to the second value, the method further includes: Querying system-level processor cores of the cloud platform, where the system-level processor cores are used to process running tasks of the cloud platform; Updating the value of the element corresponding to the system-level processor core to the second value.
5. The method for determining a processor core according to claim 1, characterized in that: Receiving a task request initiated by a target object on the cloud platform, and determining requirement information of a target task from the task request, including: Obtaining a requirement list of the target task from the task request; Determining the number of processor cores required to execute the target task according to the number of second elements in the requirement list; Determining the processor core specified by the target task according to the value of an element in the requirement list and the unique identifier of the processor on the cloud platform.
6. The method for determining a processor core according to claim 1, characterized in that: Determining a target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, including: Performing a priority sorting on the multiple grouping nodes to determine a priority list of the multiple grouping nodes; Determining the target processor core from the processor cores corresponding to the grouping nodes in the priority list.
7. The method for determining a processor core according to claim 6, characterized in that: Performing a priority sorting on the multiple grouping nodes to determine a priority list of the multiple grouping nodes, including: Performing a descending sorting on the multiple grouping nodes according to the node numbers of the multiple grouping nodes to obtain a first sorting result; Determining the priority list according to the first sorting result.
8. The method for determining a processor core according to claim 6, characterized in that: Performing a priority sorting on the multiple grouping nodes to determine a priority list of the multiple grouping nodes, further including: Obtaining the available memory capacity corresponding to the multiple grouping nodes; Performing a descending sorting on the multiple grouping nodes according to the available memory capacity to obtain a second sorting result; Determining the priority list according to the second sorting result.
9. The method for determining a processor core according to claim 6, characterized in that: Performing a priority sorting on the multiple grouping nodes to determine a priority list of the multiple grouping nodes, further including: Obtaining the number of allocable processor cores corresponding to each grouping node in the multiple grouping nodes; Comparing the number of allocable processor cores corresponding to each grouping node with a target number to obtain a comparison result, where the target number represents the number of processor cores required to execute the target task; Determining the priority list according to the comparison result.
10. The method for determining a processor core according to claim 9, characterized in that: Determining the priority list according to the comparison result, including: When it is determined that the sum value of the number of allocable processor cores corresponding to the multiple grouping nodes is greater than or equal to the target number, and at least one grouping node has an allocable processor core number greater than or equal to the target number, determining a first grouping node, where the first grouping node represents the grouping node with an allocable processor core number greater than or equal to the target number; Sort the first grouped nodes in descending order according to the number of assignable processor cores to obtain a third sorting result; Determine the priority list according to the third sorting result.
11. The method for determining a processor core according to claim 9, wherein: Determining the priority list according to the comparison result further includes: When it is determined that the sum of the number of assignable processor cores corresponding to the multiple grouped nodes is greater than or equal to the target number, and there is no grouped node with the number of assignable processor cores greater than or equal to the target number, sort the multiple grouped nodes in descending order according to the number of assignable processor cores to obtain a fourth sorting result; Determine the priority list according to the fourth sorting result.
12. The method for determining a processor core according to claim 9, wherein: After obtaining the comparison result, the method further includes: When it is determined that the sum of the number of assignable processor cores corresponding to the multiple grouped nodes is less than the target number, determine that the first processing result of the target task is processing exception; Feedback the first processing result to the target object.
13. The method for determining a processor core according to claim 6, wherein: Determining the target processor core from the processor cores corresponding to the grouped nodes in the priority list includes: Traverse in sequence the processor cores corresponding to the grouped nodes in the priority list; Obtain the number of assignable processor cores among the traversed processor cores, and stop traversing when it is determined that the number of assignable processor cores is greater than the target number; Determine the assignable processor cores among the traversed processor cores as the target processor core.
14. The method for determining a processor core according to claim 1, wherein: After determining the requirement information of the target task from the task request, the method further includes: When it is determined that the requirement information further includes the processor core specified by the target task, obtain the allocation status of the specified processor core; When it is determined that the allocation status of the specified processor core is non-assignable, determine that the second processing result of the target task is processing exception; Feedback the second processing result to the target object.
15. The method for determining a processor core according to claim 3, wherein: After determining the target processor core according to the grouped node corresponding to each processor core and the allocation status of each processor core, the method includes: When it is determined that the target processor core starts to execute the target task, add a task processing record of the target processor core to the database to update the database; Update the allocation status list according to the task processing record of the updated database.
16. The method for determining a processor core according to claim 3, wherein: After determining the target processor core according to the grouped node corresponding to each processor core and the allocation status of each processor core, the method includes: When it is determined that the target processor core has completed the execution of the target task, delete the task processing record of the target processor core in the database to update the database; Update the allocation status list according to the task processing records in the updated database.
17. A determining device for a processor core, characterized in that, It includes: A task receiving module, configured to receive a task request initiated by a target object on the cloud platform, and determine the requirement information of the target task from the task request, where the requirement information at least includes the number of processor cores required to execute the target task; An information determining module, configured to determine the grouping node corresponding to each processor core in the cloud platform according to the processor core grouping node information, where the processor core grouping node information includes the corresponding relationship between multiple grouping nodes and processor cores, and each grouping node corresponds to at least one processor core; A task allocation module, configured to determine a target processor core according to the grouping node corresponding to each processor core and the allocation status of each processor core, and use the target processor core to execute the target task, where the allocation status is used to indicate whether the processor core has been assigned a task.
18. An electronic device, characterized in that, It includes: A memory, configured to store a computer program; A processor, configured to implement the steps of the method for determining a processor core according to any one of claims 1 to 16 when executing the computer program.
19. A computer-readable storage medium, characterized in that, A computer program is stored in the computer-readable storage medium, where the computer program implements the steps of the method for determining a processor core according to any one of claims 1 to 16 when executed by a processor.
20. A computer program product comprising a computer program, characterized in that, The computer program implements the steps of the method for determining a processor core according to any one of claims 1 to 16 when executed by a processor.
Citation Information
Patent Citations
Kernel dispatching method, kernel backup method and multi-core processor
CN101799772A
Multi-core processor chip, interruption control method and controller
CN107102966A
Resource allocation method and device, electronic equipment and storage medium
CN115098269A
Method for binding application program instance to processor core and related equipment
CN116700949A
Multi-task scheduling management system under NUMA architecture
CN116820750A