Non-uniform memory access (NUMA) system running state detection method, electronic device, and medium
By automatically acquiring and optimizing the binding of GPU, CPU, memory, and dynamic link libraries of processes in the NUMA system, the problems of low efficiency and poor accuracy in NUMA system runtime status detection are solved, achieving more efficient computing performance and stability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- MU XI LING ZHI KE JI (HANG ZHOU) YOU XIAN GONG SI
- Filing Date
- 2026-05-08
- Publication Date
- 2026-06-02
AI Technical Summary
Existing technologies are inefficient and inaccurate in detecting the operational status of NUMA systems, and cannot effectively improve the computing performance and stability of NUMA systems.
By automatically obtaining the NUMA nodes to which the GPU, CPU, memory, and dynamic link libraries used by the process to be processed are bound, as well as their loading ratios, optimization is performed to ensure that these resources are bound to the same NUMA node, reducing cross-node access.
It improves the efficiency and accuracy of NUMA system status detection, and enhances computing performance and stability.
Smart Images

Figure CN122132253A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and in particular to a method, electronic device, and medium for detecting the operating status of a NUMA system. Background Technology
[0002] With the rapid development of cloud computing, high-performance computing (HPC), and big data processing, the scale and complexity of data processing are continuously increasing, placing higher demands on the computing power, scalability, and stability of computer systems. Non-Unified Memory Access (NUMA) architecture, as a multiprocessor computer hardware architecture, divides the system into multiple NUMA nodes and enables communication between nodes via high-speed interconnect links. It is widely used in high-performance computing scenarios such as database servers, supercomputers, and cloud computing nodes. In a NUMA system, each NUMA node contains a set of CPU cores and local memory. The latency of CPU accessing different memory regions varies significantly; that is, accessing local memory has low latency and high bandwidth, while accessing remote memory across nodes has high latency and low bandwidth. This asymmetric memory access characteristic determines the complexity and uniqueness of its runtime state.
[0003] During the operation of a NUMA system, the runtime status of each NUMA node—including CPU load, memory usage, inter-node interconnect status, and local / remote memory access efficiency—directly affects the overall system's computing performance, response speed, and operational stability. Therefore, effective runtime status monitoring of NUMA systems is crucial. Current technologies require manual querying of NUMA system runtime status using maintenance tools, which is inefficient and inaccurate. Improving the efficiency and accuracy of NUMA system runtime status monitoring is a pressing technical problem that needs to be solved. Summary of the Invention
[0004] The purpose of this invention is to provide a method, electronic device, and medium for detecting the operating status of a NUMA system, thereby improving the efficiency and accuracy of NUMA system operating status detection.
[0005] According to a first aspect of the present invention, a method for detecting the operating status of a NUMA system is provided, comprising: The NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio, wherein the process to be processed is a process running in the NUMA system. Set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node corresponding to the process to be processed; If the CPU running the process to be processed is bound to a different NUMA node than the target NUMA node, then the CPU running the process to be processed will be bound to the target NUMA node. If the NUMA node to which the memory used by the process to be processed is bound is different from the target NUMA node, then the memory used by the process to be processed is restricted to be allocated on the target NUMA node; If the dynamic link libraries used by the process to be processed are not 100% loaded on the target NUMA node, clear the memory cache and restart the process to ensure that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
[0006] According to a second aspect of the present invention, a NUMA system operation status detection device is provided, comprising: The acquisition module is used to acquire the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. The process to be processed is a process running in the NUMA system. The configuration module is used to set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node corresponding to the process to be processed. The first processing module is used to determine whether the NUMA node bound to the CPU running the process to be processed is the same as the target NUMA node. If they are different, the CPU running the process to be processed is bound to the target NUMA node. The second processing module is used to determine whether the NUMA node to which the memory used by the process to be processed is bound is the same as the target NUMA node. If they are different, the memory used by the process to be processed is restricted to be allocated on the target NUMA node. The third processing module is used to determine whether the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node. If not, it clears the memory cache and restarts the process to be processed, so that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
[0007] According to a third aspect of the present invention, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being configured to perform the method described in the first aspect of the present invention.
[0008] According to a fourth aspect of the present invention, a computer-readable storage medium is provided, storing computer-executable instructions for performing the method described in the first aspect of the present invention.
[0009] Compared with existing technologies, this invention has significant advantages and beneficial effects. Through the above technical solution, the NUMA system operation status detection method, electronic device, and medium provided by this invention achieve considerable technological advancement and practicality, and have broad industrial application value. It has at least the following beneficial effects: This invention detects and optimizes the NUMA system's running status by automatically acquiring the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. This improves the efficiency and accuracy of NUMA system running status detection. Attached Figure Description
[0010] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0011] Figure 1 A flowchart of a NUMA system operation status detection method provided in an embodiment of the present invention; Figure 2 This is a schematic diagram of the NUMA system operating status detection results before optimization processing provided in an embodiment of the present invention; Figure 3 This is a schematic diagram of the optimized NUMA system operation status detection results provided in an embodiment of the present invention; Figure 4 This is a schematic diagram of a NUMA system operation status detection device provided in an embodiment of the present invention. Detailed Implementation
[0012] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0013] Example 1 Example 1 provides a method for detecting the operating status of a NUMA system, such as... Figure 1 As shown, it includes: Step S1: Obtain the NUMA node bound to the GPU (Graphics Processing Unit) used by the process to be processed, the NUMA node bound to the CPU (Central Processing Unit) running the process to be processed, the NUMA node bound to the memory used by the process to be processed, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. The process to be processed is a process running in the NUMA system.
[0014] In a NUMA system, a NUMA node includes a CPU core group, a GPU, and memory. The GPU can be physically connected to the corresponding CPU core group via a PCIe slot. In a NUMA system, the CPU core group within a NUMA node accesses local memory and the GPU much faster than accessing the CPU core group and GPU across nodes. Therefore, this embodiment of the invention obtains the corresponding parameters in step S1 to determine whether cross-node access to the GPU and memory exists. Dynamic link libraries are used to convert general computing or graphics rendering requests from applications into hardware-specific command formats.
[0015] Step S2: Set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node corresponding to the process to be processed.
[0016] It should be noted that the GPU used by the process to be processed can be specified according to the specific application requirements.
[0017] Step S3: If the NUMA node bound to the CPU running the process to be processed is different from the target NUMA node, then bind the CPU running the process to the target NUMA node.
[0018] Step S4: If the NUMA node to which the memory used by the process to be processed is bound is different from the target NUMA node, then restrict the memory used by the process to be processed to be allocated on the target NUMA node.
[0019] Step S5: If the dynamic link libraries used by the process to be processed are not 100% loaded on the target NUMA node, clear the memory cache and restart the process to be processed, so that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
[0020] It should be noted that in order to reduce cross-node access to memory, GPU, etc., configuration optimization is required through steps S3-S5. The GPU, CPU, memory and dynamic link library corresponding to the process to be processed are all bound to the same NUMA node, thereby improving the performance of the NUMA system.
[0021] As an example, if multiple processes are loading the same dynamic link library, then in step S5, loading all dynamic link libraries used by the processes being processed onto the target NUMA node includes: Step S51: Set a file path for each process to be processed.
[0022] Step S52: Deploy the same dynamic link library in the file paths corresponding to multiple processes to be processed.
[0023] Step S53: Each process to be processed will load 100% of the dynamic link libraries under the corresponding file path onto the target NUMA node.
[0024] It should be noted that when multiple processes need to use the same dynamic link library, by setting different file paths for each process, precise binding of the dynamic link library is achieved without affecting each other.
[0025] As an example, step S1 includes: Step S11: Read the GPU node attribute file to obtain the NUMA node to which the GPU belongs.
[0026] It should be noted that the GPU node attribute file is located in the GPU node attribute file system. The GPU node attribute file includes the NUMA node information to which the GPU belongs. Therefore, the NUMA node to which the GPU belongs can be obtained by reading the GPU node attribute file.
[0027] Step S12: Obtain the NUMA runtime node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA runtime node bitmask, generate the NUMA node binding status vector according to the bit status, and determine the NUMA node with the bit set as the NUMA node bound to the CPU of the process to be processed. Step S13: Obtain the NUMA memory binding node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA memory binding node bitmask, generate a memory binding status vector based on the bit status, and determine the NUMA node whose bit is set as the NUMA node to which the memory used by the process to be processed is bound.
[0028] It should be noted that the corresponding application programming interface (API) can be called to obtain the NUMA node access permission bitmask, NUMA runtime node bitmask, and NUMA memory binding node bitmask of the process to be processed. Steps S11-S13 can automatically obtain the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, and the NUMA node to which the memory used by the process to be processed is bound.
[0029] As an example, in step S1, obtaining the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio includes: Step S14: Read the NUMA memory mapping information of the process to be processed.
[0030] It should be noted that the NUMA memory mapping information of the process to be processed includes multiple memory mapping records. Each memory mapping record includes the corresponding NUMA node identifier and the number of pages specified by the dynamic link library used by the process to be processed by the NUMA node.
[0031] Step S15: Obtain the number of pages of the dynamic link library used by the process to be processed in each NUMA node of the NUMA memory mapping information of the process to be processed.
[0032] Step S16: Obtain the ratio of the number of pages in the dynamic link library used by each NUMA node to load the process to be processed to the total number of pages in the dynamic link library used by all NUMA nodes to load the process to be processed, as the loading ratio corresponding to the NUMA node.
[0033] As an example, the method also includes: Step S10: Generate a NUMA system operation status detection table based on the NUMA system operation status detection results and display it on the display interface.
[0034] The NUMA system operation status detection table uses NUMA nodes as column identifiers and GPU identifiers, CPU bindings, memory bindings, and preset dynamic link libraries as row identifiers. The intersection of the rows corresponding to GPU identifiers, CPUs, and memory with the columns corresponding to NUMA nodes is represented by setting a binding identifier to indicate the binding relationship between GPU, CPU, memory, and NUMA nodes. The intersection of the rows corresponding to preset dynamic link libraries with the columns corresponding to NUMA nodes is represented by setting a percentage to indicate the loading ratio of the preset dynamic link libraries in the corresponding NUMA nodes.
[0035] It should be noted that step S10 can display the NUMA system operation status detection results in real time, specifically showing the status before optimization or after optimization, thus providing a clear view of the NUMA system operation status.
[0036] The present invention will be further illustrated by a specific example below. This example includes 8 NUMA nodes: Node0, Node1, Node2, Node3, Node4, Node5, Node5, and Node7; 8 GPUs: GPU0, GPU1, GPU2, GPU3, GPU4, GPU5, GPU6, and GPU7; and dynamic link libraries including gpu_compute_lib1.so, gpu_compute_lib2.so, gpu_compute_lib3.so, and gpu_compute_lib4.so. However, those skilled in the art will understand that the names of the dynamic link libraries mentioned above are merely examples, and any dynamic link library name conforming to the operating system's naming rules can be used in actual deployment. Through the processing in step S1, the NUMA node to which the GPU used by the process to be processed belongs is Node0; the NUMA nodes bound to the CPU (corresponding to CPUBind in the diagram) running the process to be processed, and the NUMA nodes bound to the memory used by the process to be processed (corresponding to MemBind in the diagram) are both Node0 and Node6. gpu_compute_lib1.so is 97% loaded on Node0 and 3% on Node6. gpu_compute_lib2.so is 89% loaded on Node0 and 11% on Node6. gpu_compute_lib3.so is 96% loaded on Node0 and 4% on Node6. gpu_compute_lib4.so is 97% loaded on Node0 and 3% on Node6. (The rest of the text is a repetition of the previous sentence.) Figure 2 The example shown visually demonstrates the NUMA system's operational status detection results. Through optimization in steps S2-S5, the following can be generated: Figure 3 The NUMA system operation status detection results shown are as follows: Figure 2 and Figure 3 In the text, "X" is used to identify the binding relationship. Figure 3 In the results shown, after optimization, the NUMA node to which the GPU used by the process belongs, the NUMA node to which the CPU running the process is bound, and the NUMA node to which the memory used by the process is bound are all the same NUMA node. Furthermore, all dynamic link libraries used by the process are 100% loaded onto the NUMA node.
[0037] It should be noted that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the steps as sequential processes, many of these steps can be performed in parallel, concurrently, or simultaneously. Furthermore, the order of the steps can be rearranged. A process can be terminated when its operation is complete, but it may also have additional steps not included in the figures. A process can correspond to a method, function, procedure, subroutine, subroutine, etc.
[0038] The method described in Example 1 detects and optimizes the NUMA system's running status by automatically acquiring the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. This improves the efficiency and accuracy of NUMA system running status detection.
[0039] Example 2 Example 2 provides a NUMA system operation status detection device, such as Figure 4 As shown, the device includes: The acquisition module is used to acquire the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio, wherein the process to be processed is a process running in the NUMA system.
[0040] In a NUMA system, the CPU core group in a NUMA node accesses local memory and GPU much faster than the CPU core group and GPU across nodes. Therefore, this embodiment of the invention obtains the corresponding parameters through the acquisition module to determine whether there is cross-node use of GPU and memory.
[0041] The configuration module is used to set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node of the process to be processed; it should be noted that the GPU used by the process to be processed can be specified according to the specific application requirements.
[0042] The first processing module is used to determine whether the NUMA node bound to the CPU running the process to be processed is the same as the target NUMA node. If they are different, the CPU running the process to be processed is bound to the target NUMA node.
[0043] The second processing module is used to determine whether the NUMA node to which the memory used by the process to be processed is bound is the same as the target NUMA node. If they are different, the memory used by the process to be processed is restricted to be allocated on the target NUMA node.
[0044] The third processing module is used to determine whether the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node. If not, it clears the memory cache and restarts the process to be processed, so that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
[0045] It should be noted that, in order to reduce cross-node access to memory, GPU, etc., the configuration and optimization of the first processing module, the second processing module, and the third processing module are required. The GPU, CPU, memory, and dynamic link library corresponding to the process to be processed are all bound to the same NUMA node, thereby improving the performance of the NUMA system.
[0046] As an example, if multiple processes are loading the same dynamic link library, the third processing module may also include: The path setting unit is used to set a file path for each process to be processed.
[0047] The dynamic link library deployment unit is used to deploy the same dynamic link library in the file paths corresponding to multiple processes to be processed.
[0048] The dynamic link library loading unit is used by each process to load 100% of the dynamic link libraries under the corresponding file path onto the target NUMA node.
[0049] It should be noted that when multiple processes need to use the same dynamic link library, by setting different file paths for each process, precise binding of the dynamic link library is achieved without affecting each other.
[0050] As an example, the acquisition module includes: The first acquisition unit is used to read the GPU node attribute file to obtain the NUMA node to which the GPU belongs. It should be noted that the GPU node attribute file is located in the GPU node attribute file system and includes information about the NUMA node to which the GPU belongs. Therefore, the first acquisition unit can obtain the NUMA node to which the GPU belongs by reading the GPU node attribute file.
[0051] The second acquisition unit is used to acquire the NUMA runtime node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA runtime node bitmask, generate a NUMA node binding status vector based on the bit status, and determine the NUMA node with the bit set as the NUMA node bound to the CPU of the process to be processed.
[0052] The third acquisition unit is used to acquire the NUMA memory-bound node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA memory-bound node bitmask, generate a memory-bound status vector based on the bit status, and determine the NUMA node whose bit is set as the NUMA node to which the memory used by the process to be processed is bound.
[0053] It should be noted that the corresponding application programming interface (API) can be called to obtain the NUMA node access permission bitmask, NUMA runtime node bitmask, and NUMA memory binding node bitmask of the process to be processed. Steps S11-S13 can automatically obtain the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, and the NUMA node to which the memory used by the process to be processed is bound.
[0054] As an example, the acquisition module further includes: The memory mapping information reading unit is used to read the NUMA memory mapping information of the process to be processed.
[0055] It should be noted that the NUMA memory mapping information of the process to be processed includes multiple memory mapping records. Each memory mapping record includes the corresponding NUMA node identifier and the number of pages specified by the dynamic link library used by the process to be processed by the NUMA node.
[0056] The page count acquisition unit is used to obtain the number of pages specified by the dynamic link library used by each NUMA node in the NUMA memory mapping information of the process to be processed.
[0057] The loading ratio determination unit is used to obtain the ratio of the number of pages of dynamic link libraries used by each NUMA node to load the process to be processed to the total number of pages of dynamic link libraries used by all NUMA nodes to load the process to be processed, as the loading ratio of the NUMA node.
[0058] As an example, the device further includes: The display module is used to generate a NUMA system operation status detection table based on the NUMA system operation status detection results and display it on the display interface.
[0059] The NUMA system operation status detection table uses NUMA nodes as column identifiers and GPU identifiers, CPU bindings, memory bindings, and preset dynamic link libraries as row identifiers. The intersection of the rows corresponding to GPU identifiers, CPUs, and memory with the columns corresponding to NUMA nodes is represented by setting a binding identifier to indicate the binding relationship between GPU, CPU, memory, and NUMA nodes. The intersection of the rows corresponding to preset dynamic link libraries with the columns corresponding to NUMA nodes is represented by setting a percentage to indicate the loading ratio of the preset dynamic link libraries in the corresponding NUMA nodes.
[0060] It should be noted that the display module can display the NUMA system's operating status detection results in real time, specifically showing the status before optimization or after optimization, providing a clear view of the NUMA system's operating status.
[0061] The device described in this invention detects and optimizes the NUMA system's operating status by automatically acquiring the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node bound to the CPU running the process to be processed, the NUMA node bound to the memory used by the process to be processed, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. This improves the efficiency and accuracy of NUMA system operating status detection.
[0062] Example 3 Embodiment 3 also provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being configured to perform the method described in the embodiments of the present invention.
[0063] Example 4 Embodiment 4 also provides a computer-readable storage medium storing computer-executable instructions for performing the methods described in the embodiments of the present invention.
[0064] The above description is merely a preferred embodiment of the present invention and is not intended to limit the present invention in any way. Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make some modifications or alterations to the above-disclosed technical content to create equivalent embodiments without departing from the scope of the present invention. Any simple modifications, equivalent changes, and alterations made to the above embodiments based on the technical essence of the present invention without departing from the scope of the present invention shall still fall within the scope of the present invention.
Claims
1. A method for detecting the operating status of a NUMA system, characterized in that, include: The NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio, wherein the process to be processed is a process running in the NUMA system. Set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node corresponding to the process to be processed; If the CPU running the process to be processed is bound to a different NUMA node than the target NUMA node, then the CPU running the process to be processed will be bound to the target NUMA node. If the NUMA node to which the memory used by the process to be processed is bound is different from the target NUMA node, then the memory used by the process to be processed is restricted to be allocated on the target NUMA node; If the dynamic link libraries used by the process to be processed are not 100% loaded on the target NUMA node, clear the memory cache and restart the process to ensure that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
2. The method according to claim 1, characterized in that, If multiple processes are loading the same dynamic link library, then the dynamic link library used by each process will be loaded on the target NUMA node in 100% of cases, including: Set a file path for each process to be processed; Deploy the same dynamic link library in the file paths corresponding to multiple processes to be processed; Each process to be processed will load 100% of the dynamic link libraries under the corresponding file path onto the target NUMA node.
3. The method according to claim 1, characterized in that, The process of obtaining the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, and the NUMA node to which the memory used by the process to be processed is bound includes: Read the GPU node attribute file to obtain the NUMA node to which the GPU belongs; Obtain the NUMA runtime node bitmask of the process to be processed, traverse each NUMA node, verify the bit state of the corresponding bitmask of the NUMA runtime node bitmask, generate the NUMA node binding state vector based on the bit state, and determine the NUMA node with the bit set as the NUMA node bound to the CPU of the process to be processed. Obtain the NUMA memory-bound node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA memory-bound node bitmask, generate a memory-bound state vector based on the bit status, and determine the NUMA node whose bit is set as the NUMA node to which the memory used by the process to be processed is bound.
4. The method according to claim 1, characterized in that, The process of obtaining the NUMA nodes to which the dynamic link libraries used by the process to be processed are loaded and the corresponding loading ratios includes: Read the NUMA memory mapping information of the process to be processed; Obtain the number of pages of the dynamic link library used by the process to be processed in each NUMA node from the NUMA memory mapping information of the process to be processed; The ratio of the number of pages in the dynamic link libraries used by each NUMA node to load the pending process to the total number of pages in the dynamic link libraries used by all NUMA nodes to load the pending process is used as the loading ratio for the corresponding NUMA node.
5. The method according to claim 1, characterized in that, The method further includes: A NUMA system operation status check table is generated based on the NUMA system operation status check results and displayed on the display interface. The NUMA system operation status detection table uses NUMA nodes as column identifiers and GPU identifiers, CPU bindings, memory bindings, and preset dynamic link libraries as row identifiers. The intersection of the rows corresponding to GPU identifiers, CPUs, and memory with the columns corresponding to NUMA nodes is represented by setting a binding identifier to indicate the binding relationship between GPU, CPU, memory, and NUMA nodes. The intersection of the rows corresponding to preset dynamic link libraries with the columns corresponding to NUMA nodes is represented by setting a percentage to indicate the loading ratio of the preset dynamic link libraries in the corresponding NUMA nodes.
6. A NUMA system operation status detection device, characterized in that, include: The acquisition module is used to acquire the NUMA node to which the GPU used by the process to be processed belongs, the NUMA node to which the CPU running the process to be processed is bound, the NUMA node to which the memory used by the process to be processed is bound, and the NUMA node to which the dynamic link library used by the process to be processed is loaded and the corresponding loading ratio. The process to be processed is a process running in the NUMA system. The configuration module is used to set the NUMA node to which the GPU used by the process to be processed belongs to the target NUMA node corresponding to the process to be processed. The first processing module is used to determine whether the NUMA node bound to the CPU running the process to be processed is the same as the target NUMA node. If they are different, the CPU running the process to be processed is bound to the target NUMA node. The second processing module is used to determine whether the NUMA node to which the memory used by the process to be processed is bound is the same as the target NUMA node. If they are different, the memory used by the process to be processed is restricted to be allocated on the target NUMA node. The third processing module is used to determine whether the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node. If not, it clears the memory cache and restarts the process to be processed, so that the dynamic link libraries used by the process to be processed are 100% loaded on the target NUMA node.
7. The apparatus according to claim 6, characterized in that, If multiple processes are loading the same dynamic link library, the third processing module also includes: The path setting unit is used to set a file path for each process to be processed; The dynamic link library deployment unit is used to deploy the same dynamic link library in the file paths corresponding to multiple processes to be processed. The dynamic link library loading unit is used by each process to load 100% of the dynamic link libraries under the corresponding file path onto the target NUMA node.
8. The apparatus according to claim 6, characterized in that, The acquisition module includes: The first acquisition unit is used to read the GPU node attribute file and obtain the NUMA node to which the GPU belongs; The second acquisition unit is used to acquire the NUMA runtime node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA runtime node bitmask, generate a NUMA node binding status vector based on the bit status, and determine the NUMA node with the bit set as the NUMA node bound to the CPU of the process to be processed. The third acquisition unit is used to acquire the NUMA memory-bound node bitmask of the process to be processed, traverse each NUMA node, verify the bit status of the corresponding bitmask of the NUMA memory-bound node bitmask, generate a memory-bound status vector based on the bit status, and determine the NUMA node whose bit is set as the NUMA node to which the memory used by the process to be processed is bound.
9. The apparatus according to claim 6, characterized in that, The acquisition module further includes: The memory mapping information reading unit is used to read the NUMA memory mapping information of the process to be processed; The page count acquisition unit is used to acquire the number of pages of the dynamic link library used by each NUMA node in the NUMA memory mapping information of the process to be processed. The loading ratio determination unit is used to obtain the ratio of the number of pages of dynamic link libraries used by each NUMA node to load the process to be processed to the total number of pages of dynamic link libraries used by all NUMA nodes to load the process to be processed, as the loading ratio of the NUMA node.
10. The apparatus according to claim 6, characterized in that, The device further includes: The display module is used to generate a NUMA system operation status detection table based on the NUMA system operation status detection results and display it on the display interface. The NUMA system operation status detection table uses NUMA nodes as column identifiers and GPU identifiers, CPU bindings, memory bindings, and preset dynamic link libraries as row identifiers. The intersection of the rows corresponding to GPU identifiers, CPUs, and memory with the columns corresponding to NUMA nodes is represented by setting a binding identifier to indicate the binding relationship between GPU, CPU, memory, and NUMA nodes. The intersection of the rows corresponding to preset dynamic link libraries with the columns corresponding to NUMA nodes is represented by setting a percentage to indicate the loading ratio of the preset dynamic link libraries in the corresponding NUMA nodes.
11. An electronic device, characterized in that, include: At least one processor; And, a memory communicatively connected to the at least one processor; The memory stores instructions that are executed by the at least one processor, the instructions being configured to perform the method as described in any one of claims 1-5.
12. A computer-readable storage medium, characterized in that, The device stores computer-executable instructions for performing the method as described in any one of claims 1-5.