Large-scale multi-core network resource management design method and related equipment

By introducing the curling network structure and the Packtree tree algorithm in the traditional nuclear architecture, the problem that the traditional resource allocation cannot make full use of resources cannot be used, and the efficient management and security allocation of resources are realized.

CN119025250BActive Publication Date: 2025-01-28NANJING INST OF INTELLIGENT TECH INST OF MICROELECTRONICS OF THE CHINESE ACAD OF
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411536750.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-31
Publication Date
2025-01-28
Estimated Expiration
2044-10-31

AI Technical Summary

Technical Problem

Resource allocation under the traditional multi-core architecture cannot make full use of resources, and there is a problem of resource waste.

Method used

By setting up a rolled network structure between the server and the client, analyzing user instructions and client information, establishing tasks and performing task operations when meeting resource needs. Specifically, the ring -shaped hexagonal network structure is used for resource segmentation, and resources are divided and managed through the Packtree tree algorithm.

Benefits of technology

Realize the full use of resources, avoid waste of resources, and improve the isolation and safety of resource management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119025250B_ABST
    Figure CN119025250B_ABST
Patent Text Reader

Abstract

The present invention discloses a large-scale multi-core network resource management design method and related equipment, which relates to the field of resource management, and is mainly used to solve the problem that resource allocation under the traditional many-core architecture cannot fully utilize resources and there is a waste of resources. The method includes: controlling the server end to obtain user instructions and client information, wherein the user instructions include partition instructions, release instructions, and power on and off instructions, and a rollable network structure is set between the server end and the client; parsing the user instructions and client information based on the rollable network structure to establish tasks, wherein the tasks are placed in a queue; and executing task operations based on the user instructions and the client information when there are resource requirements that meet the task. The present invention is used in the large-scale multi-core network resource management design process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of resource management, and in particular to a large-scale multi-core network resource management design method and related equipment. Background Art

[0002] With the development of artificial intelligence, the data and tasks to be processed and trained are becoming more and more complex. Artificial intelligence algorithms require strong computing power support, and the demand for computing power is growing at a rate beyond Moore's Law). In particular, the large-scale use of deep learning algorithms has put forward higher requirements for computing power. Intelligent algorithms have high parallelism and strong data reusability. In addition, they are constantly evolving, new algorithms are emerging, and computing models are constantly changing. Multi-core processor architectures have emerged. How to manage and allocate resources for these many cores, especially heterogeneous cores, is a major problem.

[0003] In the traditional many-core architecture, each core of the processor is an execution unit, and the task scheduling strategy is responsible for scheduling tasks to run on the core. More often, virtual machine technology is used, which divides the core of the processor into multiple resources, and different applications are mapped to different resource sets, thereby achieving better isolation. In addition, there is also a direct greedy algorithm for resource allocation of computer resources. Of these two, one technology is more complex, and the other wastes resources during the allocation process, and cannot fully utilize the existing machine resources. Summary of the invention

[0004] In view of the above problems, the present invention provides a large-scale multi-core network resource management design method and related equipment, the main purpose of which is to solve the problem that resource allocation under the traditional many-core architecture cannot fully utilize resources and there is resource waste.

[0005] In order to solve at least one of the above technical problems, in a first aspect, the present invention provides a large-scale multi-core network resource management design method, the method comprising:

[0006] Controlling the server to obtain user instructions and client information, wherein the user instructions include a division instruction, a release instruction, and a power-on and power-off instruction, and a rollable network structure is provided between the server and the client;

[0007] Parsing the user instruction and the client information based on the rollable network structure to establish a task, wherein the task is placed in a queue;

[0008] In the case where there are resource requirements that meet the task, the task operation is performed based on the user instruction and the client information.

[0009] Optionally, the rollable network structure includes a ring-shaped hexahedron network structure, wherein the ring-shaped hexahedron network structure is used to divide the resources corresponding to the user instruction.

[0010] Optionally, the above method further includes:

[0011] Set the server address, closable board set, closable connection, machine tag group identifier and board location coordinates, wherein the board location coordinates are used to indicate the location of the board in plane coordinates and the location in physical space.

[0012] Optionally, when there is a resource requirement that satisfies the task, performing an operation based on the user instruction and the client information includes:

[0013] Determine a resource partitioning method based on the resource requirements of the task, wherein the partitioning method includes a resource partitioning method that can specify a number, a resource partitioning method that specifies a block, and a resource partitioning method that specifies a board;

[0014] Determine parameter configuration, wherein the parameter configuration includes the number of resources applied for and the name of a custom machine;

[0015] Wherein, the resource requirement of the task and the parameter configuration are determined based on the user instruction and the client information;

[0016] An execution operation is determined based on the resource partitioning method and parameter configuration.

[0017] Optionally, when there are resource requirements that meet the task, performing the task operation based on the user instruction and the client information includes:

[0018] Calculating the number of blocks, block width, and block height based on the number of boards;

[0019] A target range is determined based on a remaining width of the block width and a remaining height of the block height.

[0020] Optionally, the above method further includes:

[0021] Searching for an idle board that satisfies the number of boards and the number of blocks within the target range;

[0022] Determine the position coordinates of the first board of the idle single board;

[0023] Determine a comparison result of the remaining width and the remaining height;

[0024] When the comparison result shows that the remaining height is greater than the remaining width, performing resource division in the up-down direction, wherein the resource division operation is implemented based on a rectangular partition space;

[0025] Constructing a partitioning space tree based on the starting point coordinates and width and height data of the rectangular partitioning space, wherein the spatial structure of the partitioning space tree is used for the partitioning of the physical space, and the spatial coordinate system of the partitioning space tree is used for finding the position coordinates;

[0026] Record the divided resources based on the partition space tree;

[0027] The divided resources are searched while traversing the nodes of the partition space tree.

[0028] Optionally, the above method further includes:

[0029] Determining an initial resource network based on the user instruction, wherein the initial resource network includes a tree shape;

[0030] Determining the width and height of the initial resource network, wherein the width and height of the initial resource network are used to determine the scope of the target resource network;

[0031] In the case that the target resource network range has resources that meet the task's requirements, the target resource address is determined to perform resource segmentation.

[0032] In a second aspect, an embodiment of the present invention further provides a large-scale multi-core network resource management design device, comprising:

[0033] A control unit, used for controlling the server to obtain user instructions and client information, wherein the user instructions include division instructions, release instructions, and power on and off instructions, and a rollable network structure is provided between the server and the client;

[0034] a parsing unit, configured to parse the user instruction and the client information based on the rollable network structure to establish a task, wherein the task is put into a queue;

[0035] An execution unit is used to execute the task operation based on the user instruction and the client information when there are resource requirements that meet the task.

[0036] In order to achieve the above-mentioned purpose, according to the third aspect of the present invention, a computer-readable storage medium is provided, wherein the computer-readable storage medium includes a stored program, wherein when the above-mentioned program is executed by a processor, the steps of the above-mentioned large-scale multi-core network resource management design method are implemented.

[0037] In order to achieve the above-mentioned purpose, according to the fourth aspect of the present invention, an electronic device is provided, comprising at least one processor and at least one memory connected to the processor; wherein the above-mentioned processor is used to call the program instructions in the above-mentioned memory to execute the steps of the above-mentioned large-scale multi-core network resource management design method.

[0038] By means of the above technical scheme, the large-scale multi-core network resource management design method and related equipment provided by the present invention cannot fully utilize resources for resource allocation under the traditional many-core architecture, and there is a problem of resource waste. The present invention obtains user instructions and client information by controlling the server side, wherein the user instructions include division instructions, release instructions, and power on and off instructions. A rollable network structure is set between the server side and the client side; the user instructions and client information are parsed based on the rollable network structure to establish tasks, wherein the tasks are put into a queue; when there are resource requirements that meet the task, the task operation is performed based on the user instructions and the client information. In the above scheme, the client and the server side communicate through signals or data packets to manage the resources of the machine. This separate resource management is more conducive to resource management and security. First start the server and let the server listen to the client data. When the client sends a division or release or power on and off command, the client information is first encapsulated and checked before being sent to the server. The server parses the sent data and puts the corresponding task into the queue. When there is and meets the task resource requirements, it connects to the corresponding machine and performs the corresponding operation. Finally, the configured data is saved to facilitate data security and unified resource recording and management.

[0039] Correspondingly, the large-scale multi-core network resource management design device, equipment and computer-readable storage medium provided by the embodiments of the present invention also have the above-mentioned technical effects.

[0040] The above description is only an overview of the technical solution of the present invention. In order to more clearly understand the technical means of the present invention, it can be implemented according to the contents of the specification. In order to make the above and other purposes, features and advantages of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be considered as limiting the present invention. Moreover, the same reference symbols are used throughout the accompanying drawings to represent the same components. In the accompanying drawings:

[0042] Figure 1 A schematic diagram of a process flow of a large-scale multi-core network resource management design method provided by an embodiment of the present invention is shown;

[0043] Figure 2 A schematic diagram of a system framework structure provided by an embodiment of the present invention is shown;

[0044] Figure 3A schematic diagram of a machine network structure provided by an embodiment of the present invention is shown;

[0045] Figure 4 A schematic diagram of an independent unit structure provided by an embodiment of the present invention is shown;

[0046] Figure 5 A schematic diagram of a client and server task function design provided by an embodiment of the present invention is shown;

[0047] Figure 6 A schematic diagram of a client and server task function interface design provided by an embodiment of the present invention is shown;

[0048] Figure 7 A schematic diagram of a machine resource plane position provided by an embodiment of the present invention is shown;

[0049] Figure 8 A schematic diagram of a machine resource location provided by an embodiment of the present invention is shown;

[0050] Fig. 9 A schematic diagram of resource partitioning provided by an embodiment of the present invention is shown;

[0051] Fig.10 A schematic block diagram showing the composition of a large-scale multi-core network resource management design device provided by an embodiment of the present invention;

[0052] Fig.11 A schematic block diagram of the composition of an electronic device for large-scale multi-core network resource management design provided by an embodiment of the present invention is shown. DETAILED DESCRIPTION

[0053] The exemplary embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present invention are shown in the accompanying drawings, it should be understood that the present invention can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present invention and to enable the scope of the present invention to be fully communicated to those skilled in the art.

[0054] In order to solve the problem that resource allocation under the traditional many-core architecture cannot fully utilize resources and there is resource waste, an embodiment of the present invention provides a large-scale multi-core network resource management design method, such as Figure 1 As shown, the method includes:

[0055] S101, controlling the server to obtain user instructions and client information, wherein the user instructions include a division instruction, a release instruction, and a power on / off instruction, and a rollable network structure is provided between the server and the client;

[0056] like Figure 2and Figure 5 As shown, the server has the functions of parameter configuration, resource division, release, power on and off, use and storage of resource configuration information data, and the client also has the functions of parameter configuration, resource division, release, power on and off, use and storage of resource configuration information data. The specific functional interfaces of the server and client are as follows Figure 6 The functions of the above server and client are corresponding, mainly including adding new resource application requests, modifying resource parameters, deleting resource configuration requests, and saving resource request data information.

[0057] Based on the above solution, improvements are made at the machine network level. In order to fully utilize resources and isolate each resource, a rollable network structure is designed to obtain several rolled-up square resource allocation spaces. This can achieve the effectiveness of resource segmentation in structure. At the same time, each such independent unit can directly interact with the outside through the p2p protocol (Peer-to-Peer, ‌Peer-to-Peer network), so as to achieve the isolation of allocated resources. At the same time, users are required to apply for resources through the server side, and direct control of the machine is not allowed. Here, the server and client are separated to achieve the isolation and security of resource allocation.

[0058] S102, parsing the user instruction and the client information based on the rollable network structure to establish a task, wherein the task is put into a queue;

[0059] This application manages tasks and resources in a packaged manner based on the rollable network structure, so that resources are created and released with tasks, and resources are fully utilized. The designed service-client architecture system facilitates the management of multi-core system resources.

[0060] S103: When there are resource requirements that meet the task, perform task operations based on the user instruction and the client information.

[0061] Based on the above solution, the client and server communicate through signals or data packets to manage the resources of the machine. This separate resource management is more conducive to resource management and security. Start the server first and let the server listen to the client data. When the client sends a division or release or power-on and power-off command, the client information is first encapsulated and checked before being sent to the server. The server parses the sent data and enters the corresponding task into the queue. When there is and meets the task resource requirements, it connects to the corresponding machine and performs the corresponding operation. Finally, the configured data is saved to facilitate data security and unified resource recording and management.

[0062] In one embodiment, the rollable network structure includes a ring-shaped hexahedron network structure, wherein the ring-shaped hexahedron network structure is used to divide the resources corresponding to the user instruction.

[0063] For example, in order to better divide resources, the present application designs the machine network into a ring-shaped hexahedron structure, which can be rolled up to fully utilize resources. There is no situation where the remaining resources cannot be divided due to the previous resource division. The remaining resources are still in the ring-shaped hexahedron and other blocks to form new units and thus be used. In addition, this rolled-up structure also achieves the shortest communication path and realizes the effectiveness of communication.

[0064] Specifically, Figure 4 As shown, the unit of the annular hexahedral network structure is composed of three single plates, thereby forming a rectangle that can be rolled up, that is, each unit is a rectangle, so the entire network is a rectangle, which is conducive to utilizing the arbitrary segmentation characteristics of the rectangle to achieve effective division of resources. Figure 4 It is a plan view composed of three single boards. When rolled up, 1 corresponds to 7, and 3 corresponds to 6.

[0065] In one embodiment, the method further includes:

[0066] Set the server address, closable board set, closable connection, machine tag group identifier and board location coordinates, wherein the board location coordinates are used to indicate the location of the board in plane coordinates and the location in physical space.

[0067] Exemplarily, on the server side, it includes task setting, machine parameter configuration, and a complete configuration button. After setting the task, click the machine parameter configuration button to enter the machine parameter configuration page, configure the parameters therein, and finally click the complete configuration button to implement the server-side configuration. The main parameters to be set are: the server address bmp_ips, the above bmp_ips is the IP address of the server, which is used to identify the resource address that the system wants to access and connect to; the dead_boards set that can be closed, the above dead_boards is used to represent a set of unusable board objects; the dead_links connection that can be closed, the above dead_links is used to represent the route to be closed, and is used to implement resource isolation during resource management, only opening the required parts, and disconnecting the routes between the other parts that are not opened and opened; the machine label grouping identifier, the above identifier represents the group label of resource management, and this label is used to group the use of machine resources, and the board location coordinates board_locations, the above board_locations is a method of representing machine resources. The board position here is the position of the board in the entire machine (XYZ): (CFB), C is the rack position, F is the frame position, and B is the board position, corresponding to Figure 8 The machine resources in the machine resources are the rack, the machine resources are the frame, and the machine resources are the board (single board); X, Y are the coordinates in space, and Z is the position of the single board in a block under the space coordinates. Three single boards form a block and are connected together for use as a whole. Figure 7 As shown, for example, (0, 0,1): (0, 0, 2) represents the second board of the 0th frame of the 0th rack, or the board 1 in the (0, 0) block. These are the positions of the boards in two different coordinates. The former is the position in the plane coordinates, and the latter is the physical space position. In order to better configure the parameters, the server parameters can be configured in the form of file import. The server also supports cold start. When the server receives an interrupt signal, the server will save the status information at this time. When the server is restarted later, the data will be restored and the original server status will be maintained to continue running. After these settings, the entire machine or a specific machine can be controlled.

[0068] Exemplarily, on the client side, it includes resource application task name setting, user name setting, and user setting, which indicates the owner of the client resource application object, used to distinguish who applied for it, which is equivalent to a key, and is a unique identifier for each user to prevent the resource from being used by others. Keep connection settings are used to set that when the server does not receive information within a certain period of time, the task will be automatically destroyed. Reconnection delay setting, if you cannot connect to the server within a few seconds, you will reconnect to ensure the stability of the connection. Finally, set the number of resources to apply for. After setting all, click the Complete Configuration button, the system will automatically apply. If the application is successful, it will display "Ready", otherwise the status will display "Waiting", and then the user will use the resource according to the customized name and key, without affecting the application of other users' resources. Specifically, if the resource application is successful, you will see the "Ready" or "Useable" status on the display page. If it is not successful, it will display the "Waiting" status, waiting for resources to be allocated to it. Each record of the application will be saved in a database for backup.

[0069] In one embodiment, when there is a resource requirement that satisfies the task, performing an operation based on the user instruction and the client information includes:

[0070] Determine a resource partitioning method based on the resource requirements of the task, wherein the partitioning method includes a resource partitioning method that can specify a number, a resource partitioning method that specifies a block, and a resource partitioning method that specifies a board;

[0071] Determine parameter configuration, wherein the parameter configuration includes the number of resources applied for and the name of a custom machine;

[0072] Wherein, the resource requirement of the task and the parameter configuration are determined based on the user instruction and the client information;

[0073] An execution operation is determined based on the resource partitioning method and parameter configuration.

[0074] Exemplarily, the present application constructs a machine network according to user needs that can specify the number of resource divisions, the resource division of specified "blocks", the resource division of specified boards, and other division methods. The parameter configuration mainly includes the number of resources applied for and the customized machine name. The "block" here is because the computer network is a ring-shaped hexahedron structure, and every three single boards can constitute an independently controllable unit. The focus of this application is on multiple boards and the division of resources by blocks. The specified board only needs to connect to this single board, and will not be elaborated later.

[0075] It should be noted that when a resource is no longer in use, it will be released and marked as available for allocation, and deleted from the node in the tree. When applying for new resources, the previously released resources will be re-allocated as searchable space and added to the tree, thereby achieving full and effective utilization of resources. Each resource allocation situation has a corresponding log for backup, which facilitates rapid migration and deployment.

[0076] In one embodiment, when there are resource requirements that meet the task, performing the task operation based on the user instruction and the client information includes:

[0077] Calculating the number of blocks, block width, and block height based on the number of boards;

[0078] A target range is determined based on a remaining width of the block width and a remaining height of the block height.

[0079] Based on the above scheme, this application first calculates the number of blocks according to the number of boards applied for, calculates the width and height of the blocks, and then searches for idle boards that meet the number of resources within the remaining height and remaining width. After finding, the coordinates of the location of the first board among the boards that meet the conditions are returned, and then the remaining width and remaining height are compared. If the remaining height is greater than the remaining width, the resources are first divided in the up and down directions, and then the partition space tree of PackTree (x, y, w, h) is constructed. The above PackTree means packaging tree, which specifically refers to the name of the resource allocation algorithm used in this article. It has four input parameters x, y, w, and h. x and y are the starting addresses of machine resources, generally 0, 0, and w and h are the width and height of machine resources. In this way, the allocated resources are recorded. When applying again, you can find the leaf node with the smallest partition space from top to bottom based on this tree, and repeat the above process on its basis.

[0080] It should be noted that after comparing the remaining height and the remaining width, the present application divides the direction of the larger one to achieve horizontal and vertical balance, thus avoiding the restrictive waste due to physical space.

[0081] In one embodiment, the method further includes:

[0082] Searching for an idle board that satisfies the number of boards and the number of blocks within the target range;

[0083] Determine the position coordinates of the first board of the idle single board;

[0084] Determine a comparison result of the remaining width and the remaining height;

[0085] When the comparison result indicates that the remaining height is greater than the remaining width, resource division is performed in the up-down direction, where the resource division operation is implemented based on a rectangular division space;

[0086] A division space tree is constructed based on the starting coordinates and width-height data of the rectangular division space. The space structure of the division space tree is used for the division of the physical space, and the space coordinate system of the division space tree is used for finding position coordinates;

[0087] The divided resources are recorded based on the division space tree;

[0088] When traversing the nodes of the division space tree, the divided resources are searched for.

[0089] Exemplarily, for a resource network with a total of board_nums, where the above-mentioned board_nums is the total number of boards in the machine resources and can be approximated as a square with a width of W and a height of H. The entire network is managed using the structure of a tree. The initial resource network can be regarded as a tree of packTree(0,0,W,H), where (0, 0) is the starting coordinate X, Y of this resource network. When a user applies for resources of board_num, first calculate the width w and height h of the resources in the case of an approximate square according to board_num. Then search for resources that meet the requirements within the range of (0, dw), (0, dh), where dw is the value of W - w and dh is the value of H - h. When resources that meet the requirements are found, return the address (x, y) of the resources, and then perform resource division in different cases.

[0090] Specifically as follows:

[0091] 1. When dw > dh, perform horizontal division. First step, if x is not equal to X, then x remains x, otherwise x equals x + w. Second step, compare the new x in the first step with the previous X. If they are equal, the resource space tree for the applied resources is packTree(X, Y, (x - X), H), otherwise it is PackTree(x, Y, W - (x - X), H). Here, the space applied for is called child, and the above-mentioned child is the subset sum.

[0092] 2. If dw < dh, perform vertical division. If y is not equal to Y, then y remains y, otherwise y equals y + h. Then determine whether y and Y are equal. If they are equal, the new subspace is (PackTree(X, Y, (x - X), H), otherwise the subspace is PackTree(x, Y, W - (x - X), H).

[0093] 3. Then determine whether child.w of the resource applied for in the above step is equal to w. The above child.w is the width of the sub-collection. If not, continue to determine whether x and child.x are equal. The above child.x is the horizontal coordinate of the sub-collection. If they are equal, update x to child.x+w, otherwise x is x. Finally, determine whether x is equal to child.x. If they are equal, the space applied for is PackTree(x, y, (child.x - x), h), otherwise the space applied is PackTree(child.x, y, w -(child.x - x), h); if child.h of the resource applied for in the above step is not equal to h, then determine whether y is equal to child.y. The above child.h is the height of the sub-collection. The above child.y is the vertical coordinate of the sub-collection. If they are equal, it is y, and if they are not equal, it is child.y + h. Finally, determine whether y is equal to child.y. If they are equal, the resource space is PackTree(x, y,(child.x - x), h, otherwise the resource space is PackTree(child.x, y, w - (child.x - x), h).

[0094] Based on the above solution, it is possible to achieve fast and independent resource allocation, and unified management of allocation records. At the same time, the developed resource configuration, application, and management supporting systems can manage machine resources throughout the entire process, achieving a closed loop.

[0095] In one embodiment, the method further includes:

[0096] Determining an initial resource network based on the user instruction, wherein the initial resource network includes a tree shape;

[0097] Determining the width and height of the initial resource network, wherein the width and height of the initial resource network are used to determine the scope of the target resource network;

[0098] In the case that the target resource network range has resources that meet the task's requirements, the target resource address is determined to perform resource segmentation.

[0099] Specifically, Fig. 9 As shown in the figure, in the 4*4 resources, 2*1 resources and 1*2 resources are allocated, and the search starts from the packTree(0,0,4,4) space tree. Here (0,0) is the starting coordinate, and (4,4) is the width and height of the space involved in the space tree. First, apply for 2*1 resources, and calculate the remaining height (dh) and remaining width (dw) as 3 and 2. dh is greater than dw, so the upper and lower parts are divided according to the required height. The divided space is as follows Fig. 9The 2*1 horizontal segmentation result in is obtained, and packTree(0,0,4,1) and packTree(0,1,4,3) are obtained. On this basis, vertical segmentation is performed with a width of 2, thus obtaining packTree(0,0,2,1) and packTree(2,0,2,1). The final segmentation result is as follows Fig. 9 The 2*1 segmentation result is shown in the figure. On the basis of the above, apply for 1*2 resources. At this time, the 0-leaf, i.e., leaf node 0, and 1-leaf, i.e., leaf node 1 in the figure are searched from small to large according to the resources (the resources are 4*3 and 2*1 respectively). So start the search from 1-leaf(packTree(2,0,2,1)). The above leaf is a leaf node. At this time, dh=1-1=0, dw=2-1=1, dw is greater than dh. First, split according to the width requirements on the left and right to obtain packTree(3,0,1,1) and packTree(2,0,1,1). Then, on the basis of packTree(2,0,1,1), split up and down according to the height to obtain packTree(2,2,1,-1) and packTree(2,0,1,2). Finally, a 1*2 resource is obtained. The resources applied for twice are as follows: Fig. 9 As shown in the “Two Allocation Results” in .

[0100] Based on the above solution, an adaptive resource partitioning method is designed for machine resources under the many-core architecture, including machine network design and PackTree-based traversal search. It can easily apply for and manage machine resources while viewing the resource allocation situation. The queue is used to implement task resource waiting, which facilitates resource tracking. At the same time, each resource is keyed to facilitate the security of resource use.

[0101] The following is a pseudo code for the implementation of the above scheme for reference:

[0102]

[0103]

[0104] Exemplarily, this application also includes a resource usage list and a data saving interface:

[0105] This interface will display the resources applied for by all users and the current status of these resources. These tasks can be deleted, added, and modified. At the same time, these data can also be saved, which facilitates the migration and rapid deployment of task resource data. In addition, it also ensures the security of resource allocation.

[0106] In summary, the solution provided by this application, in the process of building a server network, in order to realize that the entire network is a rectangle and make full use of resources, the entire server resource network is built into a ring-shaped hexahedron structure, such as Figure 3 As shown, in order to realize the structure of the annular hexahedron, the specific network diagram between the boards is as follows Figure 4 As shown, there are three boards according to Figure 4 The spatial structure shown in the figure is connected to form an independent unit, and the spatial coordinate information of the server network is constructed to facilitate the subsequent packTree tree algorithm to find resources. The construction of the above coordinate information is as follows Figure 7 and Figure 8 As shown, Figure 7 The entire network is divided into independent units, each of which is a basic unit. In this way, each board can be represented by (X, Y, Z) to indicate its spatial position, and can also be represented by spatial coordinate information such as (C, F, B). Then, according to the characteristics of resource scheduling, the functions of the server and client are designed, such as the design of functional interfaces such as resource application, resource release, resource recovery, resource usage status log storage, board power on and off, and the design of the PackTree algorithm in resource application. The specific functional interface design is as follows: Figure 6As shown, in the actual use, the resource manager first configures the server resource name and resource address related information in the background (the above resource address is constructed according to the above spatial location construction method). After the configuration is completed, the server will expose an IP address for users to remotely connect and access, and then the user can set the number of resources applied for and the owner of the resources. After the setting is completed, the background will search according to the applied resources according to the packtree algorithm and return the IP address of the searched resources. The user can connect and use it according to this resource IP address or the IP address of the remote connection to the server plus the user name (owner). Finally, each resource application process will be displayed, including the number, address, owner, current status of each resource application, and these resources can be managed, such as viewing and deleting released resources. Improvements are made from the machine network and algorithm levels. In order to fully utilize resources and isolate each resource, the machine network is designed as a ring hexahedron structure. Every three boards can form an independent unit (a square that can be rolled up). In this way, several rolled-up square resource allocation spaces can be obtained. At this time, the entire computer network is a rectangle, and the rectangle can be arbitrarily cut into small resource spaces and is still a rolled-up three-dimensional space. In this way, the effectiveness of resource segmentation can be achieved in structure. At the same time, each such independent unit can directly interact with the outside through the p2p protocol, achieving the isolation of allocated resources. In terms of algorithm, using the segmentation characteristics of the rectangle, the resource partitioning algorithm in the second part is adopted. Here, the independent unit is regarded as a 1*1 rectangle. On this basis, the machine is divided into several independent unit spaces, and the segmentation results are constructed into a tree. This resource partitioning method is suitable for the spatial resource partitioning characteristics of the multi-core architecture. Each resource is fully utilized, and there is no remaining unallocated space caused by the previous resource partitioning. At the same time, users are required to apply for resources through the server, and are not allowed to directly control the machine. Here, the server and client are separated to achieve isolation and security of resource allocation.

[0107] Furthermore, as a response to the above Figure 1 In order to realize the method shown in the figure, the embodiment of the present invention also provides a large-scale multi-core network resource management design device for Figure 1 The device embodiment corresponds to the aforementioned method embodiment. For ease of reading, this device embodiment will not repeat the details of the aforementioned method embodiment one by one, but it should be clear that the device in this embodiment can correspond to all the contents of the aforementioned method embodiment. Fig.10 As shown, the device includes: a control unit 21, a parsing unit 22, and an execution unit 23, wherein

[0108] A control unit 21, used to control the server to obtain user instructions and client information, wherein the user instructions include partition instructions, release instructions, and power on and off instructions;

[0109] A parsing unit 22, for parsing the user instruction and the client information to establish a task, wherein the task is put into a queue;

[0110] The execution unit 23 is used to execute an operation based on the user instruction and the client information when there is a resource requirement that satisfies the task.

[0111] The processor contains a kernel, which calls the corresponding program unit from the memory. One or more kernels can be set, and a large-scale multi-core network resource management design method is implemented by adjusting kernel parameters, which can solve the problem that resource allocation under the traditional multi-core architecture cannot fully utilize resources and there is resource waste.

[0112] An embodiment of the present invention provides a computer-readable storage medium, which includes a stored program, and when the program is executed by a processor, the large-scale multi-core network resource management design method is implemented.

[0113] An embodiment of the present invention provides a processor, which is used to run a program, wherein the large-scale multi-core network resource management design method is executed when the program is running.

[0114] An embodiment of the present invention provides an electronic device, the electronic device comprising at least one processor and at least one memory connected to the processor; wherein the processor is used to call program instructions in the memory to execute the large-scale multi-core network resource management design method as described above

[0115] An embodiment of the present invention provides an electronic device 30, such as Fig.11 As shown, the electronic device includes at least one processor 301, and at least one memory 302 and a bus 303 connected to the processor; wherein the processor 301 and the memory 302 communicate with each other through the bus 303; the processor 301 is used to call the program instructions in the memory to execute the above-mentioned large-scale multi-core network resource management design method.

[0116] The intelligent electronic devices in this article can be PCs, PADs, mobile phones, etc.

[0117] The present application also provides a computer program product, which, when executed on a process management electronic device, is suitable for executing a program that initializes the steps of the above-mentioned large-scale multi-core network resource management design method.

[0118] It should be noted that in the above embodiments, the description of each embodiment has its own emphasis, and for parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0119] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0120] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded computer, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0121] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0122] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable device. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0123] The present application also provides a computer program product, which includes computer software instructions. When the computer software instructions are executed on a processing device, the processing device is caused to execute the following Figure 1This corresponds to the flow of control of the memory in the embodiment.

[0124] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.

[0125] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0126] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0127] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0128] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0129] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program codes.

[0130] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some of the technical features therein by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A large-scale multi-core network resource management design method, characterized in that: include: Controlling the server to obtain user instructions and client information, wherein the user instructions include division instructions, release instructions, and power on / off instructions, and a rollable network structure is provided between the server and the client, and the rollable network structure includes a ring-shaped hexahedron network structure, wherein the ring-shaped hexahedron network structure is used to divide the resources corresponding to the user instructions; Parsing the user instruction and the client information based on the rollable network structure to establish a task, wherein the task is placed in a queue; In the case where there are resource requirements that meet the task, performing the task operation based on the user instruction and the client information; The performing of the task operation based on the user instruction and the client information when there are resource requirements that meet the task includes: Determine a resource partitioning method based on the resource requirements of the task, wherein the partitioning method includes a resource partitioning method that can specify a number, a resource partitioning method that specifies a block, and a resource partitioning method that specifies a board; Determine parameter configuration, wherein the parameter configuration includes the number of resources applied for and the custom machine name; Wherein, the resource requirement of the task and the parameter configuration are determined based on the user instruction and the client information; An execution operation is determined based on the resource partitioning method and parameter configuration.

2. The method according to claim 1, characterized in that Also includes: Set the server address, closable board set, closable connection, machine tag group identifier and board location coordinates, wherein the board location coordinates are used to indicate the location of the board in plane coordinates and the location in physical space.

3. The method according to claim 1, characterized in that The performing of the task operation based on the user instruction and the client information when there are resource requirements that meet the task includes: calculating the number of blocks, block width, and block height based on the number of boards; A target range is determined based on a remaining width of the block width and a remaining height of the block height.

4. The method according to claim 3, characterized in that Also includes: Searching for an idle board that satisfies the number of boards and the number of blocks within the target range; Determine the position coordinates of the first board of the idle single board; Determine a comparison result of the remaining width and the remaining height; When the comparison result shows that the remaining height is greater than the remaining width, performing resource division in the up-down direction, wherein the resource division operation is implemented based on a rectangular partition space; Constructing a partitioning space tree based on the starting point coordinates and width and height data of the rectangular partitioning space, wherein the spatial structure of the partitioning space tree is used for the partitioning of the physical space, and the spatial coordinate system of the partitioning space tree is used for finding the position coordinates; Record the divided resources based on the partition space tree; The divided resources are searched while traversing the nodes of the partition space tree.

5. The method according to claim 1, characterized in that Also includes: Determining an initial resource network based on the user instruction, wherein the initial resource network includes a tree shape; Determining the width and height of the initial resource network, wherein the width and height of the initial resource network are used to determine the scope of the target resource network; In the case that there are resources in the target resource network range that meet the resource requirements of the task, the target resource address is determined to perform resource segmentation.

6. A large-scale multi-core network resource management design device, characterized in that: A control unit, used to control the server to obtain user instructions and client information, wherein the user instructions include division instructions, release instructions, and power on and off instructions, and a rollable network structure is provided between the server and the client, and the rollable network structure includes a ring-shaped hexahedron network structure, wherein the ring-shaped hexahedron network structure is used to divide the resources corresponding to the user instructions; a parsing unit, configured to parse the user instruction and the client information based on the rollable network structure to establish a task, wherein the task is put into a queue; An execution unit, configured to execute the task operation based on the user instruction and the client information when there are resource requirements that meet the task; The performing of the task operation based on the user instruction and the client information when there are resource requirements that meet the task includes: Determine a resource partitioning method based on the resource requirements of the task, wherein the partitioning method includes a resource partitioning method that can specify a number, a resource partitioning method that specifies a block, and a resource partitioning method that specifies a board; Determine parameter configuration, wherein the parameter configuration includes the number of resources applied for and the custom machine name; Wherein, the resource requirement of the task and the parameter configuration are determined based on the user instruction and the client information; An execution operation is determined based on the resource partitioning method and parameter configuration.

7. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored program, wherein when the program is executed by a processor, the steps of the large-scale multi-core network resource management design method according to any one of claims 1 to 5 are implemented.

8. An electronic device, characterized in that: The electronic device includes at least one processor and at least one memory connected to the processor; wherein the processor is used to call program instructions in the memory to execute the steps of the large-scale multi-core network resource management design method as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Markov game-based resource division management method

    CN111880937A

  • Cloud resource management method and device, equipment and storage medium

    CN117354118A