Method, system, device and medium for resource allocation based on reconfigurable network

CN116700957BActive Publication Date: 2026-08-21SUN YAT SEN UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310594898.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-24
Publication Date
2026-08-21
Estimated Expiration
2043-05-24

AI Technical Summary

Benefits of technology

[0043] This application proposes a resource allocation method, system, terminal device, and computer-readable storage medium based on a reconfigurable network. The resource allocation method includes: marking a job according to its resource requirements; if the job is marked as a small job, determining a small job target resource group based on the small job's resource requirements and allocating resources from the small job target resource group to the small job; if the job is marked as a large job, determining a resource allocation mode for the large job based on read first feedback information; determining multiple large job target resource groups based on the large job's resource allocation mode; and allocating resources and reconfigurable links from the multiple large job target resource groups to the large job.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116700957B_ABST
    Figure CN116700957B_ABST
Patent Text Reader

Abstract

The application discloses a resource allocation method and system based on a reconfigurable network, terminal equipment and a computer readable storage medium. The resource allocation method based on the reconfigurable network comprises the following steps: marking a job according to resource requirements of the job; if the job is marked as a small job, determining a small job target resource group according to the resource requirements of the small job, and allocating resources in the small job target resource group to the small job; if the job is marked as a large job, determining a resource allocation mode of the large job based on read first feedback information; determining a plurality of large job target resource groups according to the resource allocation mode of the large job; and allocating resources in the plurality of large job target resource groups and reconfigurable links to the large job. The application guarantees the connectivity and performance of the reconfigurable network in a high-performance computing system, meets the diversified needs of users, and reduces the waiting time of users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of high-performance computing technology, and in particular to a resource allocation method, system, terminal device, and computer-readable storage medium based on reconfigurable networks. Background Technology

[0002] A classic reconfigurable network topology uses microelectromechanical systems (MEMS)-based optical circuit switches to network the computing system. MEMS-based optical circuit switches change their configuration by adjusting internal micromirrors, establishing one-to-one connections between input and output ports. Optical signals from the input ports are reflected directly to the output ports through the internal micromirrors. This networking scheme also utilizes packet-switched electrical switches for interconnection within resource groups. Devices within the same resource group can communicate point-to-point via packet-switched electrical switches. Different resource groups in the computing system are interconnected through optical circuit switches; the links connecting resource groups to these switches are called reconfigurable links. By configuring the optical circuit switches to change the connections between resource groups, the computing system can be divided into multiple smaller subnets, and more physical links can be established between resource groups with high traffic to achieve higher communication speeds.

[0003] In HPC (High Performance Computing) systems using reconfigurable networks, it is necessary to allocate computing resources and reconfigurable links to jobs simultaneously. During resource allocation, it is crucial to ensure both connectivity between different resource groups—enabling them to communicate after configuration via optical circuit switches—and communication performance between these groups—ensuring a sufficient number of physical links after configuration via optical circuit switches to guarantee job performance. Summary of the Invention

[0004] The main objective of this application is to provide a resource allocation method, system, terminal device, and computer-readable storage medium based on reconfigurable networks, which ensures the connectivity and performance of reconfigurable networks in high-performance computing systems, meets diverse user needs, and reduces user waiting time.

[0005] To achieve the above objectives, this application provides a resource allocation method based on reconfigurable networks, the resource allocation method based on reconfigurable networks comprising:

[0006] The tasks are marked according to their resource requirements;

[0007] If the task is marked as a sub-task, a target resource group for the sub-task is determined based on the resource requirements of the sub-task, and resources from the target resource group for the sub-task are allocated to the sub-task.

[0008] If the job is marked as a large job, the resource allocation mode of the large job is determined based on the first feedback information read.

[0009] Multiple target resource groups for large tasks are determined based on the resource allocation model of the large tasks;

[0010] Allocate resources and reconfigurable links from the multiple target resource groups of the large jobs to the large jobs.

[0011] Optionally, the step of determining a target resource group for a sub-job based on its resource requirements includes:

[0012] Filter the set of alternative resource groups that meet the resource requirements of the sub-task;

[0013] From the set of candidate resource groups, select resource groups that contain resources used by large operations to form a priority set of candidate resource groups;

[0014] A target resource group for a small job is determined based on the amount of available resources in each resource group in the set of priority candidate resource groups.

[0015] Optionally, before the step of determining multiple target resource groups for large jobs based on the resource allocation pattern of the large jobs, the method further includes:

[0016] Filter the set of alternative resource groups that do not contain resources used in major assignments;

[0017] Based on the amount of available resources in each resource group in the candidate resource group set, sort the resource groups in the candidate resource group set to obtain a candidate resource group sequence.

[0018] The step of determining multiple target resource groups for large tasks based on the resource allocation mode of the large task includes:

[0019] Based on the resource allocation mode of the large task, multiple target resource groups for the large task are selected from the sequence of alternative resource groups.

[0020] Optionally, the resource allocation mode for the large job is: adaptive mode.

[0021] The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes:

[0022] In the adaptive mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the first number of the large task target resource groups and the first resource requirement of each task target resource group are determined.

[0023] Based on the first quantity and the first resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0024] Optionally, the resource allocation mode for the large job is: minimum balance mode;

[0025] The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes:

[0026] In the minimum balance mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the second quantity of the large task target resource group and the second resource requirement of each task target resource group are determined, wherein the difference between each second resource requirement is less than a preset threshold.

[0027] Based on the second quantity and the second resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0028] Optionally, the resource allocation mode for the large job is: a custom balancing mode.

[0029] The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes:

[0030] In the custom balancing mode, the third quantity of the target resource group for the large task is determined based on the second feedback information read.

[0031] Calculate the third resource requirement of each major task target resource group based on the third quantity;

[0032] The target resource group for the large operation is selected from the sequence of candidate resource groups based on the third quantity and the demand for each of the third resources.

[0033] Optionally, the resource allocation mode for the large job is: custom mode.

[0034] The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes:

[0035] In the custom mode, the fourth quantity of the large task target resource group and the fourth resource requirement of each large task target resource group are determined based on the third feedback information read.

[0036] Based on the fourth quantity and the fourth resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0037] Furthermore, to achieve the above objectives, this application also provides a resource allocation system based on a reconfigurable network, the resource allocation system based on a reconfigurable network comprising:

[0038] A tagging module is used to tag the job according to its resource requirements;

[0039] The small task resource allocation module is used to determine a target resource group for a small task based on the resource requirements of the small task if the task is marked as a small task, and to allocate resources from the target resource group for the small task.

[0040] A large job resource allocation module is configured to, if the job is marked as a large job, determine the resource allocation mode of the large job based on the read first feedback information; and, determine multiple target resource groups for large jobs according to the resource allocation mode of the large jobs; and, allocate resources and reconfigurable links from the multiple target resource groups for large jobs to the large job.

[0041] In addition, to achieve the above objectives, the present invention also provides a terminal device, the terminal device comprising: a memory, a processor, and a resource allocation program based on a reconfigurable network stored in the memory and executable on the processor, wherein the resource allocation program based on the reconfigurable network, when executed by the processor, implements the steps of the resource allocation method based on the reconfigurable network as described above.

[0042] Furthermore, to achieve the above objectives, the present invention also proposes a computer-readable storage medium storing a resource allocation program based on a reconfigurable network, wherein when the resource allocation program based on the reconfigurable network is executed by a processor, it implements the steps of the resource allocation method based on the reconfigurable network as described above.

[0043] This application proposes a resource allocation method, system, terminal device, and computer-readable storage medium based on a reconfigurable network. The resource allocation method includes: marking a job according to its resource requirements; if the job is marked as a small job, determining a small job target resource group based on the small job's resource requirements and allocating resources from the small job target resource group to the small job; if the job is marked as a large job, determining a resource allocation mode for the large job based on read first feedback information; determining multiple large job target resource groups based on the large job's resource allocation mode; and allocating resources and reconfigurable links from the multiple large job target resource groups to the large job.

[0044] Compared to traditional resource allocation methods, this application first marks jobs as small jobs or large jobs based on the amount of resources they require. If the amount of resources a job needs is less than or equal to the amount of resources in a resource group, the job is marked as a small job; if the amount of resources a job needs is greater than the amount of resources in a resource group, the job is marked as a large job. When a job is marked as a small job, a resource group that can meet the resource requirements of the small job is selected based on the resource usage of each resource group. When a job is marked as a large job, resources from several resource groups are allocated to the large job according to the resource allocation mode selected by the user, and all reconfigurable links in the aforementioned resource groups are allocated to the large job.

[0045] In this way, by allocating resources according to the resource requirements of the job, the resource usage of the resource group, and the user's needs, this application meets diverse user needs, ensures the connectivity and performance of user jobs, and reduces user waiting time. Attached Figure Description

[0046] Figure 1 This is a schematic diagram of the hardware operating environment of the terminal device involved in the embodiments of this application;

[0047] Figure 2 This is a flowchart illustrating the first embodiment of the resource allocation method based on reconfigurable networks in this application;

[0048] Figure 3 This is a schematic diagram illustrating a practical scenario of the resource allocation method based on reconfigurable networks proposed in this application;

[0049] Figure 4 This is a schematic diagram of the functional modules of an embodiment of a resource allocation system based on a reconfigurable network.

[0050] The purpose, features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation

[0051] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.

[0052] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0053] It should be noted that all directional indicators (such as up, down, left, right, front, back, etc.) in the embodiments of this application are only used to explain the relative positional relationship and movement of each component in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indicator will also change accordingly.

[0054] In this application, unless otherwise expressly specified and limited, the terms "connection," "fixed," etc., should be interpreted broadly. For example, "fixed" can mean a fixed connection, a detachable connection, or an integral part; it can mean a mechanical connection or an electrical connection; it can mean a direct connection or an indirect connection through an intermediate medium; it can mean the internal communication of two components or the interaction between two components, unless otherwise expressly limited. Those skilled in the art can understand the specific meaning of the above terms in this application according to the specific circumstances.

[0055] Furthermore, the use of terms such as "first" and "second" in this application is for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include at least one of those features. Additionally, the technical solutions of the various embodiments can be combined with each other, but only on the basis of being achievable by those skilled in the art. If the combination of technical solutions is contradictory or impossible to implement, such a combination of technical solutions should be considered non-existent and not within the scope of protection claimed in this application.

[0056] This application provides a terminal device.

[0057] like Figure 1 As shown, Figure 1 This is a schematic diagram of the hardware operating environment of the terminal device involved in the embodiments of this application.

[0058] It should be noted that a classic networking scheme for reconfigurable networks in this application embodiment uses microelectromechanical systems (MEMS)-based optical circuit switches to network the computing system. MEMS-based optical circuit switches change their configuration by adjusting internal micromirrors, establishing a one-to-one connection between the input and output ports. The optical signal from the input port reaches the output port directly through reflection from the internal micromirrors. This networking scheme also utilizes packet-switching electrical switches for interconnection within resource groups. Devices within the same resource group can communicate point-to-point via packet-switching electrical switches. Different resource groups in the computing system are interconnected through optical circuit switches. The links connecting resource groups to optical circuit switches are called reconfigurable links. By configuring and changing the connection relationships between resource groups, optical circuit switches can divide the computing system into multiple small subnets and establish more physical links between resource groups with high traffic to achieve higher communication speeds.

[0059] In high-performance computing systems using reconfigurable networks, it is necessary to allocate both compute node resources and reconfigurable link resources to jobs. During resource allocation, it is crucial to ensure both connectivity between different resource groups, enabling communication between groups that require communication after configuration via optical circuit switches, and communication performance between different resource groups, ensuring a sufficient number of physical links to guarantee job performance after configuration via optical circuit switches.

[0060] HPC cluster systems are groups of servers connected by a high-performance network. These servers work together to complete data analysis or scientific computing tasks. With the widespread application of cluster systems in scientific computing and business operations, their role is becoming increasingly important, gradually becoming an indispensable tool in scientific computing and business services. More and more users are using clusters to complete computing tasks; a single cluster may have hundreds of users simultaneously, each submitting multiple computing tasks. When the cluster's computing resources are insufficient, these jobs will be queued and waiting.

[0061] like Figure 1As shown, in the hardware operating environment of the terminal device, the terminal device may include: a processor 1001, such as a CPU, a network interface 1004, a user interface 1003, a memory 1005, and a communication bus 1002. The communication bus 1002 is used to implement communication between these components. The user interface 1003 may include a display screen and an input unit such as a keyboard; optionally, the user interface 1003 may also include a standard wired interface or a wireless interface. The network interface 1004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1005 may be high-speed RAM or stable non-volatile memory, such as a disk storage device. Optionally, the memory 1005 may also be a storage system independent of the aforementioned processor 1001.

[0062] Those skilled in the art will understand that Figure 1 The terminal device structure shown does not constitute a limitation on the device and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0063] like Figure 1 As shown, the memory 1005, which serves as a computer storage medium, may include an operating system, a network communication module, a user interface module, and a resource allocation program based on a reconfigurable network.

[0064] exist Figure 1 In the device shown, network interface 1004 is mainly used to connect to the backend server and communicate with it; user interface 1003 is mainly used to connect to the client (user end) and communicate with it; while processor 1001 can be used to call the resource allocation program based on the reconfigurable network stored in memory 1005 and perform the following operations:

[0065] The tasks are marked according to their resource requirements;

[0066] If the task is marked as a sub-task, a target resource group for the sub-task is determined based on the resource requirements of the sub-task, and resources from the target resource group for the sub-task are allocated to the sub-task.

[0067] If the job is marked as a large job, the resource allocation mode of the large job is determined based on the first feedback information read.

[0068] Multiple target resource groups for large tasks are determined based on the resource allocation model of the large tasks;

[0069] Allocate resources and reconfigurable links from the multiple target resource groups of the large jobs to the large jobs.

[0070] Optionally, the processor 1001 can also be used to invoke a resource allocation program based on a reconfigurable network stored in memory 1005 to perform the following operations:

[0071] Filter the set of alternative resource groups that meet the resource requirements of the sub-task;

[0072] From the set of candidate resource groups, select resource groups that contain resources used by large operations to form a priority set of candidate resource groups;

[0073] A target resource group for a small job is determined based on the amount of available resources in each resource group in the set of priority candidate resource groups.

[0074] Optionally, the processor 1001 can also be used to call a resource allocation program based on a reconfigurable network stored in the memory 1005, and before performing the step of determining multiple target resource groups for large jobs according to the resource allocation mode of the large jobs, it further performs the following operations:

[0075] Filter the set of alternative resource groups that do not contain resources used in major assignments;

[0076] Based on the amount of available resources in each resource group in the candidate resource group set, sort the resource groups in the candidate resource group set to obtain a candidate resource group sequence.

[0077] Based on this, the processor 1001 can also be used to call the resource allocation program based on the reconfigurable network stored in the memory 1005 to perform the following operations:

[0078] Based on the resource allocation mode of the large task, multiple target resource groups for the large task are selected from the sequence of alternative resource groups.

[0079] Optionally, the resource allocation mode of the large job is: adaptive mode. The processor 1001 can also be used to call the resource allocation program based on the reconfigurable network stored in the memory 1005 to perform the following operations:

[0080] In the adaptive mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the first number of the large task target resource groups and the first resource requirement of each task target resource group are determined.

[0081] Based on the first quantity and the first resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0082] Optionally, the resource allocation mode for the large job is: minimum balance mode;

[0083] Based on this, the processor 1001 can also be used to call the resource allocation program based on the reconfigurable network stored in the memory 1005 to perform the following operations:

[0084] In the minimum balance mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the second quantity of the large task target resource group and the second resource requirement of each task target resource group are determined. The difference between the second resource requirements is less than a preset threshold.

[0085] Based on the second quantity and the second resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0086] Optionally, the resource allocation mode for the large job is: minimum balance mode;

[0087] Based on this, the processor 1001 can also be used to call the resource allocation program based on the reconfigurable network stored in the memory 1005 to perform the following operations:

[0088] In the custom balancing mode, the third quantity of the target resource group for the large task is determined based on the second feedback information read.

[0089] Calculate the third resource requirement of each major task target resource group based on the third quantity;

[0090] The target resource group for the large operation is selected from the sequence of candidate resource groups based on the third quantity and the demand for each of the third resources.

[0091] Optionally, the resource allocation mode of the large job is a custom mode. The processor 1001 can also be used to call the resource allocation program based on the reconfigurable network stored in the memory 1005 to perform the following operations:

[0092] In the custom mode, the fourth quantity of the large task target resource group and the fourth resource requirement of each large task target resource group are determined based on the third feedback information read.

[0093] Based on the fourth quantity and the fourth resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

[0094] Based on the hardware structure of the resource allocation method based on reconfigurable networks described above, various embodiments of the resource allocation method based on reconfigurable networks are proposed.

[0095] Please refer to Figure 2 , Figure 2This is a flowchart illustrating the first embodiment of the resource allocation method based on a reconfigurable network according to this application. It should be noted that although a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than that shown here.

[0096] In this embodiment, for ease of understanding and explanation, the resource allocation system is used as the direct execution subject to illustrate the resource allocation method based on reconfigurable networks in this application.

[0097] like Figure 2 As shown, in this embodiment, the resource allocation method based on a reconfigurable network may include:

[0098] Step S10: Mark the job according to its resource requirements;

[0099] In this embodiment, the resource allocation system marks jobs according to the amount of resources required by the job, classifying them as small jobs or large jobs. Specifically, if the amount of resources required by a job is less than or equal to the amount of resources in a resource group, the resource allocation system marks the job as a small job; if the amount of resources required by a job is greater than the amount of resources in a resource group, the resource allocation system marks the job as a large job.

[0100] It should be noted that, in this embodiment, the amount of resources required by the job includes, but is not limited to, node resources, CPU resources, memory resources, GPU resources, computing acceleration component resources, etc.; a resource group refers to each largest subset of resources in the system that can communicate without reconfigurable links, that is, devices in different resource groups must communicate with each other through reconfigurable links.

[0101] Step S20: If the job is marked as a sub-job, then a target resource group for the sub-job is determined according to the resource requirements of the sub-job, and resources in the target resource group for the sub-job are allocated to the sub-job.

[0102] In this embodiment, when a job is marked as a small job, the resource allocation system will select a target resource group of small jobs that can meet the resource requirements of the small job in the system, and allocate the resources in the target resource group of small jobs to the small job.

[0103] It should be noted that in this embodiment, different small jobs can share the same resource group, that is, different small jobs can use the resources in a resource group at the same time; small jobs and large jobs can also share the same resource group, that is, small jobs and large jobs can use the resources in a resource group at the same time; if there is no resource group in the system that can meet the resource requirements of the current small job, the small job needs to wait in the queue.

[0104] Step S30: If the job is marked as a large job, the resource allocation mode of the large job is determined based on the first feedback information read.

[0105] Step S40: Determine multiple target resource groups for large tasks according to the resource allocation mode of the large task;

[0106] Step S50: Allocate resources and reconfigurable links from the multiple target resource groups of large jobs to the large job.

[0107] In this embodiment, if the current job is marked as a large job, the resource allocation system will allocate resources from several resource groups to the large job according to the resource allocation mode selected by the user. These resource groups are the target resource groups of the large job. The total amount of resources in the target resource groups of the large job can meet the resource requirements of the large job. The resource allocation system allocates resources from the target resource groups of the large job and all reconfigurable links to the large job.

[0108] It should be noted that, in this embodiment, in order to facilitate the management and allocation of reconfigurable links by the HPC system, large jobs do not share resources in the same resource group, but large jobs and small jobs can share resources in the same resource group.

[0109] Furthermore, in a feasible embodiment, prior to step S40, the resource allocation method based on a reconfigurable network of this application further includes:

[0110] Step A: Filter the set of alternative resource groups that do not contain resources used by major assignments;

[0111] Step B: Sort the resource groups in the candidate resource group set according to the amount of available resources in each resource group to obtain a candidate resource group sequence;

[0112] In this embodiment, the resource selection module in the resource allocation system filters out all candidate resource groups that do not contain resources used by large jobs, and sorts each resource group in the candidate resource group set in ascending order of the amount of available resources in each resource group to obtain a candidate resource group sequence.

[0113] Based on this, step S40: determine multiple target resource groups for large jobs according to the resource allocation mode of the large jobs, including:

[0114] Step S401: Select multiple target resource groups for large tasks from the sequence of candidate resource groups according to the resource allocation mode of the large task.

[0115] In this embodiment, the resource allocation system selects multiple target resource groups for the large job from the candidate resource group sequence based on the resource allocation mode selected by the user for the large job, and the total resource amount meets the resource requirements of the large job.

[0116] It should be noted that, in this embodiment, the feedback information read by the resource allocation system is the information input by the user regarding the selection of the resource allocation mode. The user can select the resource allocation mode by means of virtual buttons, mechanical buttons, or voice input, etc., and this application does not make specific limitations on this.

[0117] In this embodiment, the application uses a resource allocation system to mark jobs according to the amount of resources required, classifying them as small jobs or large jobs. Specifically, if the amount of resources required by a job is less than or equal to the amount of resources in a resource group, the resource allocation system marks the job as a small job; if the amount of resources required by a job is greater than the amount of resources in a resource group, the resource allocation system marks the job as a large job. Then, when a job is marked as a small job, the resource allocation system selects a target resource group in the system that can meet the resource requirements of the small job and allocates resources from the target resource group to the small job. If the current job is marked as a large job, the resource allocation system allocates resources from several resource groups to the large job according to the resource allocation mode selected by the user. These several resource groups are the target resource groups for the large job. The total amount of resources in the target resource groups can meet the resource requirements of the large job. Then, the resource allocation system allocates all reconfigurable links in the target resource groups for the large job.

[0118] In this way, by allocating resources according to the resource requirements of the job, the resource usage of the resource group, and the user's needs, this application meets diverse user needs, ensures the connectivity and performance of user jobs, and reduces user waiting time.

[0119] Furthermore, based on the first embodiment of this application described above, a second embodiment of the resource allocation method based on a reconfigurable network is proposed.

[0120] In this embodiment, the step of "determining a target resource group for a sub-job based on the resource requirements of the sub-job" in step S20 above includes:

[0121] Step S201: Filter the set of candidate resource groups that meet the resource requirements of the sub-job;

[0122] In this embodiment, the resource selection module in the resource allocation system filters out a set S1 of all candidate resource groups that can meet the current small job with the current amount of available resources; if no resource group has available resources that can meet the resource requirements of the current small job, the current small job must wait in the queue and then the resource allocation ends.

[0123] Step S202: Select resource groups containing resources used by large operations from the set of candidate resource groups to form a set of priority candidate resource groups;

[0124] Step S203: Determine a target resource group for a small job based on the amount of available resources in each resource group in the set of priority candidate resource groups.

[0125] In this embodiment, the resource selection module in the resource allocation system selects a priority candidate resource set S2 from the candidate resource set S1, which contains resources used by large jobs. If the resource set S2 is not empty, the resource selection module selects the target resource group R1 of the small job with the least amount of idle resources from S2, selects resources from R1 to allocate resources to the current small job, and then ends the resource allocation.

[0126] In addition, in one feasible embodiment, if the resource group set S2 is empty, the resource allocation system selects the resource group R2 with the least amount of idle resources from S1, selects resources from R2 to allocate resources to the current small job, and then ends the resource allocation.

[0127] Furthermore, based on the first embodiment of this application described above, a third embodiment of the resource allocation method based on a reconfigurable network is proposed.

[0128] In this embodiment, the resource allocation mode for large jobs is adaptive mode. Step S401 above: selecting multiple target resource groups for large jobs from the candidate resource group sequence according to the resource allocation mode for large jobs, including:

[0129] Step S4011: Calculate the total resource amount of each target resource group in the large task under the adaptive mode of the large task. When the total resource amount meets the resource requirements of the large task, determine the first number of target resource groups in the large task and the first resource requirement of each target resource group in the large task.

[0130] Step S4012: Select the target resource group for the large operation from the candidate resource group sequence according to the first quantity and the first resource demand.

[0131] In this embodiment, the resource allocation system selects T1 (a first number) target resource groups for the large job, where T1 is the minimum number of resource groups that can meet the resource requirements of the current large job when the system is idle. In the aforementioned T1 resource groups, the resource allocation system will allocate a certain amount of resources to the large job in each resource group, with the amount of resources used in each resource group being as close as possible, and the total amount of resources allocated to the current large job in these T1 resource groups being able to meet the resource requirements of the current large job. If the resource allocation system cannot select T1 resource groups that meet the requirements in the system, the large job needs to wait in the queue.

[0132] Specifically, in this embodiment, the step of the resource allocation module selecting a target resource group for a large job using a custom mode includes the following steps:

[0133] Step a1: Filter out all resource groups that do not contain large jobs, and sort them in descending order of available resources to obtain resource group sequence A1;

[0134] Step a2: Calculate the minimum number of resource groups T1 that can meet the resource requirements of the current large job when the system is idle. Divide the resource requirement of the current job by the total resource quantity of a resource group and round up. If T1 is greater than the length of the aforementioned resource group sequence A1, the current large job must wait in the queue and then the resource allocation will end.

[0135] Step a3: If the total amount of idle resources in the first T1 resource groups in the aforementioned resource group sequence A1 cannot meet the resource requirements of the current large job, then the current large job must wait in the queue, and then the resource allocation will end.

[0136] Step a4: Set the sliding window s = 1 and d = T1; if the total amount of idle resources in the (s+1)th to (d+1)th resource groups in the resource group sequence A1 can meet the resource requirements of the current large job, then move the sliding window s = s+1 and d = d+1.

[0137] Step a5, repeat step a4 until the sliding window can no longer be moved;

[0138] Step a6: Traverse the resource group from the d-th resource group in the aforementioned resource group sequence A1 in reverse order to the s-th resource group. Let the current traversal reach the i-th resource group, and the current large job does not satisfy the resource quantity requirement of V; if the resource quantity in the i-th resource group is greater than or equal to... Then allocate from the i-th resource group. Resources are allocated to the current large job, and the amount of resources allocated is the first resource requirement; otherwise, all resources in the i-th resource group are allocated to the current large job; then V is reduced by the amount of resources allocated to the current large job by the i-th resource group, and the next iteration begins.

[0139] Furthermore, based on the first embodiment of this application described above, a fourth embodiment of the resource allocation method based on a reconfigurable network is proposed.

[0140] In this embodiment, the resource allocation mode for large jobs is: minimum balance mode. Step S401 above: Selecting multiple target resource groups for large jobs from the candidate resource group sequence according to the resource allocation mode for large jobs includes:

[0141] Step S4013: Calculate the total resource amount of each target resource group in the minimum balance mode of the large operation. When the total resource amount meets the resource requirements of the large operation, determine the second quantity of the target resource group of the large operation and the second resource requirement of each target resource group of the large operation, wherein the difference between each second resource requirement is less than a preset threshold.

[0142] Step S4014: Select the target resource group for the large operation from the candidate resource group sequence according to the second quantity and the second resource requirement.

[0143] In this embodiment, the resource allocation system will select T2 (i.e., the second number) resource groups for the job, where T2 is the minimum number of resource groups that can meet the resource requirements of the current large job when the system is idle. The resource selection module in the resource allocation system will allocate the same amount of resources to the current large job in each of the aforementioned resource groups, or the difference in the amount of resources allocated in different resource groups will not exceed a preset threshold, which is preferably 1. If the resource allocation system cannot select T2 resource groups that meet the requirements in the system, the large job needs to wait in the queue.

[0144] Furthermore, in this embodiment, when the resource allocation system reads that the user has selected a balancing mode, the user can further select a minimum balancing mode or a custom balancing mode. Based on the feedback information further input by the user after selecting a balancing mode, the resource allocation system determines that the resource allocation mode for the large job is the minimum balancing mode.

[0145] Specifically, in this embodiment, the step of the resource allocation module selecting a target resource group for a large job using the minimum balancing mode includes the following steps:

[0146] Step b1: The resource selection module in the resource allocation system filters out all resource groups that do not contain large jobs, and sorts them in ascending order of available resources to obtain resource group sequence A2.

[0147] Step b2: Calculate the minimum number of resource groups T2 that can meet the resource requirements of the current large job when the system is idle. Divide the resource requirement of the current job by the total resource quantity of a resource group and round up. If T2 is greater than the length of the aforementioned resource group sequence A2, the current large job must wait in the queue and then the resource allocation ends.

[0148] Step b3: Calculate the resource requirement sequence Q1 (i.e. the second resource requirement sequence) of the current large job in each resource group. The length of Q1 is T2. Each element in Q1 differs by at most 1. They are arranged in ascending order and the sum is the resource requirement of the current large job.

[0149] Step b4: Take each resource requirement in Q1 in sequence. For each resource requirement taken from Q1, find the first available resource group in A2 that can satisfy the resource requirement. Allocate resources from this resource group to the large job according to the resource requirement, and then remove the resource group from the resource group sequence A2. If no suitable resource group can be found in A2, the current large job must wait in the queue, and then the resource allocation ends. If each resource requirement in Q1 can be satisfied, the resource allocation is successful.

[0150] Furthermore, based on the first embodiment of this application described above, a fifth embodiment of the resource allocation method based on a reconfigurable network is proposed.

[0151] In this embodiment, the resource allocation mode for large jobs is a custom balancing mode. Step S401 above: selecting multiple target resource groups for large jobs from the candidate resource group sequence according to the resource allocation mode for large jobs, including:

[0152] Step S4015: In the custom balancing mode, determine the third quantity of the target resource group for the large operation based on the read second feedback information;

[0153] Step S4016: Calculate the third resource requirement of each major task target resource group based on the third quantity;

[0154] Step S4017: Select the target resource group for the large operation from the candidate resource group sequence according to the third quantity and the demand of each third resource.

[0155] In this embodiment, the user needs to specify the number of resource groups T3 (i.e., the third number). The resource allocation system will select T3 resource groups for the job. The resource selection module in the resource allocation system will use the same amount of resources in each of the aforementioned resource groups, or the difference in the amount of resources used in different resource groups will not exceed 1. If the resource allocation system cannot select T3 resource groups that meet the requirements in the system, the large job will need to wait in the queue.

[0156] Furthermore, in this embodiment, when the resource allocation system reads that the user has selected a balancing mode, the user can further select a minimum balancing mode or a custom balancing mode. Based on the feedback information further input by the user after selecting a balancing mode, the resource allocation system determines that the resource allocation mode for the large job is a custom balancing mode.

[0157] Specifically, in this embodiment, the step of the resource allocation module selecting a target resource group for a large job using a custom balancing mode includes the following steps:

[0158] Step c1: The resource selection module in the resource allocation system filters out all resource groups that do not contain large jobs, and sorts them in ascending order of available resources to obtain resource group sequence A3.

[0159] Step c2: Read the number of resource groups T3 required by the current large job from the user input; if T3 is greater than the length of the aforementioned resource group sequence A3, the current large job must wait in the queue, and then the resource allocation ends.

[0160] Step c3: Calculate the resource requirement sequence Q2 (i.e. the sequence of the third resource requirement) of the current large job in each resource group. The length of Q2 is T3. Each element in Q2 differs by at most 1. They are arranged in ascending order and the sum is the resource requirement of the current large job.

[0161] Step c4: Take each resource requirement from Q2 in sequence. For each resource requirement taken from Q2, find the first available resource group in A3 that can satisfy the resource requirement. Allocate resources from that resource group to the large job according to the resource requirement, and then remove the resource group from the resource group sequence A3. If no suitable resource group can be found in A3, the current large job must wait in the queue, and then the resource allocation ends. If each resource requirement in Q2 can be satisfied, the resource allocation is successful.

[0162] Furthermore, based on the first embodiment of this application described above, a sixth embodiment of the resource allocation method based on a reconfigurable network is proposed.

[0163] In this embodiment, the resource allocation mode for large jobs is a custom mode. Step S401 above involves selecting multiple target resource groups for large jobs from the candidate resource group sequence according to the resource allocation mode for the large jobs, including:

[0164] Step S4018: In the custom mode, determine the fourth quantity of the large task target resource group and the fourth resource requirement of each large task target resource group based on the read third feedback information.

[0165] Step S4019: Select the target resource group for the large operation from the candidate resource group sequence according to the fourth quantity and the demand of each of the fourth resources.

[0166] In this embodiment, the user needs to specify the number of resource groups T4 (i.e., the fourth number) and the amount of resources {a} used in each resource group. i : 1≤i≤T4} (i.e., the fourth resource requirement). The resource allocation system will search for T4 resource groups in the system, and these T4 resource groups satisfy b i ≤c i (1≤i≤T4), where {b i:1≤i≤T4} is {a i The sequence after ascending order, {c i : 1≤i≤T4} is the sequence of resource quantities of the T4 resource groups selected by the resource allocation system in ascending order of available resources; if the resource allocation system cannot select T4 resource groups that meet the requirements, the large job needs to wait in the queue.

[0167] Specifically, in this embodiment, the step of the resource allocation module selecting a target resource group for a large job using a custom mode includes the following steps:

[0168] Step d1: The resource selection module in the resource allocation system filters out all resource groups that do not contain large jobs, and sorts them in ascending order of available resources to obtain resource group sequence A4.

[0169] Step d2: Read the number of resource groups T4 required by the current large job from the user input; if T4 is greater than the length of the aforementioned resource group sequence A4, the current large job must wait in the queue, and then the resource allocation ends.

[0170] Step d3: Read the resource demand of each resource group from the user input and sort them in ascending order to obtain sequence Q3, the length of which is T4;

[0171] Step d4: Take each resource requirement from Q3 in sequence. For each resource requirement taken from Q3, find the first available resource group in A4 that can satisfy the resource requirement. Allocate resources from that resource group to the large job according to the resource requirement, and then remove the resource group from the resource group sequence A4. If no suitable resource group can be found in A4, the current large job must wait in the queue, and then the resource allocation ends. If each resource requirement in Q3 can be satisfied, the resource allocation is successful.

[0172] In addition, to aid in understanding the resource allocation method based on reconfigurable networks in this embodiment, examples are provided below.

[0173] For example, such as Figure 3 The diagram shows a resource allocation system where nodes are the smallest unit of resource allocation.

[0174] Job 1 is a large job requiring 12 nodes, and the user selected the minimum balancing mode for it. The resource allocation system allocated node resources from resource group 1 and resource group 2 to job 1, allocating 6 nodes to each of resource group 1 and resource group 2. All reconfigurable links in resource group 1 and resource group 2 were allocated to job 1, and these reconfigurable links can be configured to achieve better performance for job 1.

[0175] Job 2 is a large job requiring 12 nodes, and the user selected adaptive mode for it. The resource allocation system allocated node resources from resource groups 3 and 4 to Job 2, allocating 7 nodes to each resource group in resource group 3 and 5 nodes to each resource group in resource group 4. All reconfigurable links in resource groups 3 and 4 were allocated to Job 2, and these reconfigurable links can be configured to achieve better performance for Job 2.

[0176] Job 3 is a large job requiring 22 nodes. The user selected a custom mode for Job 3, setting the number of resource groups to be used to 4, with the required number of nodes in each resource group being 4, 5, 6, and 7 respectively. The resource allocation system allocated resources from resource groups 5, 6, 7, and 8 to Job 3. Four nodes were allocated to Job 3 in resource group 5, seven in resource group 6, five in resource group 7, and six in resource group 8. All reconfigurable links in resource groups 5, 6, 7, and 8 were allocated to Job 3. These reconfigurable links can be configured to achieve better performance for Job 3.

[0177] There is a small job using 3 nodes in resource group 4. This small job has not been allocated reconfigurable link resources and only communicates within resource group 4. There is a small job using 4 nodes in resource group 5. This small job has not been allocated reconfigurable link resources and only communicates within resource group 5. There is a small job using 3 nodes in resource group 7. This small job has not been allocated reconfigurable link resources and only communicates within resource group 7. There is a small job using 2 nodes in resource group 8. This small job has not been allocated reconfigurable link resources and only communicates within resource group 2.

[0178] In addition, please refer to Figure 4 This application also proposes a resource allocation system based on a reconfigurable network, which includes:

[0179] A tagging module is used to tag the job according to its resource requirements;

[0180] The small task resource allocation module is used to determine a target resource group for a small task based on the resource requirements of the small task if the task is marked as a small task, and to allocate resources from the target resource group for the small task.

[0181] A large job resource allocation module is configured to, if the job is marked as a large job, determine the resource allocation mode of the large job based on the read first feedback information; and, determine multiple target resource groups for large jobs according to the resource allocation mode of the large jobs; and, allocate resources and reconfigurable links from the multiple target resource groups for large jobs to the large job.

[0182] Furthermore, this application also proposes a storage medium storing a resource allocation program based on a reconfigurable network, which, when executed by a processor, implements the steps of the resource allocation method based on a reconfigurable network described above.

[0183] The specific embodiments of the storage medium in this application are basically the same as the embodiments of the resource allocation method based on reconfigurable networks described above, and will not be repeated here.

[0184] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or system that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or system. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or system that includes that element.

[0185] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0186] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0187] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. A resource allocation method based on reconfigurable networks, characterized in that, The resource allocation method based on reconfigurable networks includes: The tasks are marked according to their resource requirements; If the task is marked as a sub-task, a target resource group for the sub-task is determined based on its resource requirements, and resources from the target resource group are allocated to the sub-task. The step of determining the target resource group based on the resource requirements of the sub-task includes: Filter the set of alternative resource groups that meet the resource requirements of the sub-task; From the set of candidate resource groups, select resource groups that contain resources used by large operations to form a priority set of candidate resource groups; A target resource group for a small job is determined based on the amount of available resources in each resource group in the set of priority alternative resource groups. If the job is marked as a large job, the resource allocation mode of the large job is determined based on the first feedback information read, wherein the first feedback information is information input by the user about the selected resource allocation mode, and the resource allocation mode includes adaptive mode, minimum balance mode, custom balance mode and custom mode. Based on the resource allocation mode of the large task, multiple target resource groups for the large task are determined. Before the step of determining multiple target resource groups for the large task based on the resource allocation mode of the large task, the method further includes: Filter the set of alternative resource groups that do not contain resources used in major assignments; Based on the amount of available resources in each resource group in the candidate resource group set, sort the resource groups in the candidate resource group set to obtain a candidate resource group sequence. The step of determining multiple target resource groups for large tasks based on the resource allocation mode of the large task includes: Based on the resource allocation mode of the large task, select multiple target resource groups for the large task from the sequence of alternative resource groups; Allocate resources and reconfigurable links from the multiple target resource groups of the large job to the large job, wherein the reconfigurable link is: a link in the computer system in which different resource groups are interconnected through an optical circuit switch, and the resource group is connected to the optical circuit switch; The resource allocation mode for the large task is selected as: adaptive mode. The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes: In the adaptive mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the first number of the large task target resource groups and the first resource requirement of each task target resource group are determined. Based on the first quantity and the first resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

2. The resource allocation method based on reconfigurable networks as described in claim 1, characterized in that, The resource allocation mode for the large task is selected as: minimum balance mode. The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes: In the minimum balance mode of the large task, the total resource amount of each task target resource group is calculated. When the total resource amount meets the resource requirements of the large task, the second quantity of the large task target resource group and the second resource requirement of each task target resource group are determined, wherein the difference between each second resource requirement is less than a preset threshold. Based on the second quantity and the second resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

3. The resource allocation method based on reconfigurable networks as described in claim 1, characterized in that, The resource allocation mode for the large task is selected as: custom balancing mode. The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes: In the custom balancing mode, the third quantity of the target resource group for the large task is determined based on the second feedback information read. Calculate the third resource requirement of each major task target resource group based on the third quantity; The target resource group for the large operation is selected from the sequence of candidate resource groups based on the third quantity and the demand for each of the third resources.

4. The resource allocation method based on reconfigurable networks as described in claim 1, characterized in that, The resource allocation mode for the large task is selected as: custom mode. The step of selecting multiple target resource groups for large jobs from the sequence of candidate resource groups according to the resource allocation mode of the large job includes: In the custom mode, the fourth quantity of the large task target resource group and the fourth resource requirement of each large task target resource group are determined based on the third feedback information read. Based on the fourth quantity and the fourth resource requirement, select the target resource group for the large operation from the sequence of candidate resource groups.

5. A resource allocation system based on a reconfigurable network that implements the resource allocation method based on a reconfigurable network as described in any one of claims 1 to 4, characterized in that, The resource allocation system based on reconfigurable networks includes: A tagging module is used to tag the job according to its resource requirements; The small task resource allocation module is used to determine a target resource group for a small task based on the resource requirements of the small task if the task is marked as a small task, and to allocate resources from the target resource group for the small task. A large job resource allocation module is configured to, if the job is marked as a large job, determine the resource allocation mode of the large job based on the read first feedback information; and, determine multiple target resource groups for large jobs according to the resource allocation mode of the large jobs; and, allocate resources and reconfigurable links from the multiple target resource groups for large jobs to the large job.

6. A terminal device, characterized in that, The terminal device includes: a memory, a processor, and a resource allocation program based on a reconfigurable network stored in the memory and executable on the processor. When the reconfigurable network-based resource allocation program is executed by the processor, it implements the steps of the resource allocation method based on a reconfigurable network as described in any one of claims 1 to 4.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a resource allocation program based on a reconfigurable network, which, when executed by a processor, implements the steps of the resource allocation method based on a reconfigurable network as described in any one of claims 1 to 4.