Computing power scheduling methods, devices, media and electronic equipment
By obtaining the permission level and available computing units of the receiving server, the system automatically matches the task to be processed with a suitable receiving server, solving the problem of mismatch between permission settings and data type requirements caused by traditional manual allocation, and realizing efficient and automated allocation of data processing.
Patent Information
- Application Number
- CN202411371756.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-29
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-09-29
AI Technical Summary
In regions with scarce energy resources and highly concentrated computing power demands, traditional manual server allocation leads to mismatches between permission settings and data type requirements, resulting in low efficiency and hindering the smooth progress of data processing.
By obtaining the permission level and available computing units of the receiving server, the system automatically matches the tasks to be processed with suitable receiving servers, thereby achieving automated and reasonable task allocation.
This improves the efficiency of receiving server selection, saves manpower, and ensures efficient data processing.
Smart Images

Figure CN119420756B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing, and in particular to computing power scheduling methods, apparatus, media and electronic equipment. Background Technology
[0002] For regions with energy shortages and highly concentrated computing power demands, some data to be processed can be intelligently migrated to areas with abundant energy and relatively relaxed computing power requirements. However, given the diverse and complex data types and varying server permission configurations at receiving locations, traditional methods often rely on manual allocation of servers for the transferred data. This process is not only inefficient but also prone to mismatches between permission settings and data type requirements, thus hindering the smooth progress of data processing. Therefore, there is an urgent need for an efficient and precise computing power scheduling method to optimize data center construction and alleviate data processing pressure in energy-scarce and computing-intensive regions. Summary of the Invention
[0003] To address the aforementioned technical problems, this application provides a computing power scheduling method, apparatus, medium, and electronic device, which at least partially solves the problems existing in the prior art.
[0004] In a first aspect of this application, a computing power scheduling method is provided for scheduling unprocessed tasks generated in a first geographical region to a second geographical region for processing. The method includes the following steps:
[0005] S100, at each preset time point, acquire the reception information of each receiving server in the second geographical area to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q ); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ p The permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed.
[0006] S200, in response to the target sending server in the first geographic region generating a currently pending task, obtain the target data type list DL = (DL1, DL2, ..., DL...). j , ...,DL m); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume.
[0007] S300, based on JF, DL, and the preset matching method, obtain the first key server list YF = (YF1, YF2, ..., YF...) corresponding to the current task to be processed. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed.
[0008] S400, if YF is not empty, then the first target receiving server is determined according to YF and the preset first determination method; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed.
[0009] S500 sends the current task to be processed to the first target receiving server and controls the first target receiving server to process the data of the current task.
[0010] In a second aspect of this application, a computing power scheduling device is provided for scheduling unprocessed tasks generated in a first geographical region to a second geographical region for processing. The device includes:
[0011] The receiving information acquisition unit is used to acquire the receiving information of each receiving server in the second geographical area at each preset time point, so as to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q ); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ pThe permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed.
[0012] The target type acquisition unit is used to respond to the target sending server in the first geographic region generating the current task to be processed, and to acquire the target data type list DL = (DL1, DL2, ..., DL...) corresponding to the current task to be processed. j , ...,DL m ); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume.
[0013] The key list acquisition unit is used to obtain the first key server list YF = (YF1, YF2, ..., YF3) corresponding to the current task to be processed, based on JF, DL, and a preset matching method. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed.
[0014] The determining unit is used to determine the first target receiving server according to YF and a preset first determining method if YF is not empty; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed.
[0015] The sending unit is used to send the current task to be processed to the first target receiving server and control the first target receiving server to process the data of the current task.
[0016] In a third aspect of this application, a non-transitory computer-readable storage medium is provided, wherein at least one instruction or at least one program is stored in the storage medium, and the at least one instruction or at least one program is loaded and executed by a processor to implement the aforementioned computing power scheduling method.
[0017] In a fourth aspect of this application, an electronic device is provided, including a processor and the aforementioned non-transitory computer-readable storage medium.
[0018] This application has at least the following beneficial effects:
[0019] The computing power scheduling method provided in this application updates the preset number of idle units for each receiving server at each preset time point, based on the actual computing power usage in the second geographical region, for the receiving area (second geographical region) of the task to be processed. Then, when a target sending server in the first geographical region generates the current task to be processed, it obtains each target data type corresponding to the current task. Since each receiving server belongs to a different department and has a different permission level, different permission levels can process different types of data; the higher the permission level, the more data types it can process. Therefore, based on the receiving server information list and the target data type list corresponding to the current task, a list of first key servers (receiving servers capable of processing each target data type corresponding to the current task) is obtained. However, some first key servers in this list may have insufficient current idle units, thus failing to process the task. Therefore, the number of current idle computing units of the obtained first target receiving server is equal to or greater than the number of computing units required by the current task. Finally, the current task to be processed is sent to the first target receiving server, and the first target receiving server is controlled to process the data for the current task. This application first obtains the permission level information and the number of preset idle computing units of each receiving server. Then, based on the data type of each target data corresponding to the current task to be processed, it filters out several first key servers and determines the first target receiving server from these first key servers. This application eliminates the need for manual allocation of receiving servers. It selects a suitable first target receiving server for data processing based on the correspondence between the target data of the task to be processed and each receiving server. This achieves automated and rational allocation of tasks to be processed, saving manpower and improving the efficiency of receiving server selection. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0021] Figure 1 A flowchart of the computing power scheduling method provided in the embodiments of this application;
[0022] Figure 2 This is a structural block diagram of the computing power scheduling device provided in the embodiments of this application. Detailed Implementation
[0023] 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 some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0024] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or server that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.
[0025] It should be noted that the following description covers various aspects of embodiments within the scope of the appended claims. It will be apparent that the aspects described herein can be embodied in a wide variety of forms, and any particular structure and / or function described herein is merely illustrative. Based on this application, those skilled in the art will understand that one aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement the device and / or practice the method. Additionally, this device and / or method can be implemented using structures and / or functionalities other than one or more of the aspects set forth herein.
[0026] Please refer to Figure 1 As shown, an embodiment of this application provides a computing power scheduling method for scheduling unprocessed tasks generated in a first geographical region to a second geographical region for processing. The method includes the following steps:
[0027] S100, at each preset time point, acquire the reception information of each receiving server in the second geographical area to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ p The permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed.
[0028] Specifically, for the task receiving area (second geographical region), at each preset time point, the receiving information of each receiving server within the second geographical region is obtained to generate a list of receiving server information. For example, the preset time point could be 7:00 AM every day. Here, the preset number of idle units for each receiving server can be updated based on the actual computing power usage in the second geographical region between the previous preset time point and the current preset time point. These preset idle units are the computing units reserved by the receiving server for receiving tasks.
[0029] It should be noted that each receiving server may belong to a different server cluster (or a department within a specific region). Within each server cluster, the receiving servers may have the same or different access levels. Similarly, receiving servers within different server clusters may have the same or different access levels. Furthermore, each access level corresponds to a set of data types that can be processed. Higher access levels allow for a wider range of data types to be processed, while lower access levels allow for a smaller range of data types to be processed.
[0030] S200, in response to the target sending server in the first geographic region generating a currently pending task, obtain the target data type list DL = (DL1, DL2, ..., DL...). j , ...,DL m ); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume.
[0031] Specifically, the target sending server can process n data types, and the current task to be processed generated by the target sending server includes at least one data type. This embodiment obtains each target data type included in the current task to be processed, thus obtaining a list of target data types.
[0032] It is understandable that each target data type in the current task to be processed has corresponding proportion information. This proportion information indicates the percentage of the total data volume corresponding to that target data type in the current task to be processed.
[0033] S300, based on JF, DL, and the preset matching method, obtain the first key server list YF = (YF1, YF2, ..., YF...) corresponding to the current task to be processed. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed.
[0034] Specifically, the preset matching methods include:
[0035] S310, Obtain the first receiving server list set SF = (SF1, SF2, ..., SF3) corresponding to the target sending server in the first geographical region. i , ..., SF n ); i = 1, 2, ..., n; where SF i This is a list of device identifiers for the receiving servers corresponding to the i-th data type that the target sending server can process within the first geographic region; SF i =(SF) i,1 SF i,2 , ..., SF i,a , ..., SF i,f(i) f(i) represents the number of receiving servers in JF that can handle the i-th data type at the corresponding permission level; SF i,a This is the device identifier of the receiving server in JF that can handle the i-th data type at the permission level corresponding to the a-th permission level.
[0036] Here, based on the correspondence between the permission level of each receiving server and the data type that the target sending server can process, the receiving server that can receive each data type of the target sending server is obtained.
[0037] It is understood that, since the number of receiving servers that can receive each data type of the target sending server may be different in this embodiment, f(i) does not refer to a specific function or function result value, but rather to a possible value that varies with the specific value of i. For example, when i = 1, f(i) = 5; when i = 2, f(i) = 8; when i = 3, f(i) = 8.
[0038] S320, according to DL traversal SF, obtain the receiving server list corresponding to each target data type, so as to obtain the second receiving server list set DF = (DF1, DF2, ..., DF... j , ...,DF m ); where DF j This is a list of device identifiers for the receiving server in JF corresponding to the j-th target data type of the current task to be processed; DF j =(DF j,1 DF j,2 , ...,DF j,b , ...,DF j,f(j) );DF j,b f(j) is the device identifier of the b-th receiving server in JF that can handle the j-th target data type at the corresponding permission level; f(j) is the number of receiving servers in JF that can handle the j-th target data type at the corresponding permission level.
[0039] Here, the DF is obtained from the SF based on the data type of each target corresponding to the current task to be processed.
[0040] It is understood that, in this embodiment, the number of receiving servers that can receive each target data type of the current task to be processed may be different. Therefore, in this embodiment, f(j) does not refer to a specific function or function result value, but rather to a possible value that varies with the specific value of j. For example, when j=1, f(j)=5; when j=2, f(j)=8; when j=3, f(j)=8.
[0041] S330, iterate through DF to obtain YF = (YF1, YF2, ..., YF...). x , ..., YF y ).
[0042] Here, we iterate through DF again, and filter out the receiving servers that can handle the data of each target data type corresponding to the current task from DF, and obtain YF.
[0043] S400, if YF is not empty, then the first target receiving server is determined according to YF and the preset first determination method; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed.
[0044] Specifically, if YF is not empty, it means that there exists at least one receiving server (first key server) with the corresponding permission level capable of handling data of each target data type corresponding to the current task to be processed. A first target receiving server is determined from at least one first key server through the following steps:
[0045] S410, based on YF, obtain the corresponding intermediate server list KF = (KF1, KF2, ..., KF...). g , ..., KF h ); g = 1, 2, ..., h; where h is the number of intermediate servers; KF g This is the device identifier corresponding to the g-th intermediate server; an intermediate server is a receiving server in YF whose number of preset idle computing units is equal to or greater than the number of computing units required by the current task to be processed.
[0046] Here, although the first critical server has the authority to process each target data type, the number of preset idle computing units corresponding to its current preset time is less than the number of computing units required by the current task to be processed (there is not enough preset computing power to process the current task to be processed); then such first critical servers are deleted from YF to obtain KF.
[0047] S420, if KF is not empty, then based on KF, obtain the intermediate server access priority list KP = (KP1, KP2, ..., KP...). g ..., KP h ); where KP g KP represents the access priority corresponding to the g-th intermediate server. g =α*KPY g +β*KPQ g α is the preset computing power weight; β is the preset permission weight; KPY g KPQ is a computing power score determined based on the number of preset idle computing units corresponding to the g-th intermediate server, and the number of preset idle computing units is positively correlated with the computing power score. g The permission score is determined based on the number of data types that can be processed by the permission level corresponding to the g-th intermediate server, and the number of data types that can be processed by the corresponding permission level is inversely correlated with the size of the permission score.
[0048] Here, if KF is not empty, it means that there is a receiving server in YF with a preset number of idle computing units equal to or greater than the number of computing units required by the current task. However, even if there is a receiving server with a corresponding preset number of idle computing units equal to or greater than the number of computing units required by the current task (sufficient preset computing power to process the current task), it may have already received other tasks before the current task, occupying certain computing resources (using a certain number of preset idle computing units), which may result in the remaining preset idle computing units being less than the number of computing units required by the current task (insufficient preset computing power to process the current task). In this embodiment, the access priority corresponding to each intermediate server is obtained, where α is the preset computing power weight; β is the preset permission weight, which can be set and adjusted according to the actual situation. The number of pre-set idle computing units is positively correlated with the computing power score. Here, the more pre-set idle computing units a certain intermediate server has, the greater the likelihood that it can handle the current pending task, resulting in a higher computing power score. Conversely, the more data types a corresponding permission level can handle, the greater the likelihood that other tasks have already been processed before the current pending task, leading to fewer remaining idle computing units. Therefore, the permission score is lower in this case, and vice versa. Furthermore, the higher the access priority of each intermediate server, the greater the likelihood that that intermediate server can handle the current pending task.
[0049] S430: Traverse KP in descending order of access priority for each intermediate server until the number of currently idle computing units corresponding to any intermediate server is equal to or greater than the number of computing units required by the current task to be processed. Then, determine the intermediate server as the first target receiving server and stop traversing.
[0050] Here, KP is traversed in descending order of access priority corresponding to each intermediate server, that is, in descending order of the probability of being able to handle the current task, until an intermediate server is encountered whose number of currently idle computing units is equal to or greater than the number of computing units required by the current task. Then, the intermediate server is determined as the first target receiving server and the traversal stops.
[0051] S500 sends the current task to be processed to the first target receiving server and controls the first target receiving server to process the data of the current task.
[0052] Specifically, the current task to be processed is sent to the first target receiving server, and the first target receiving server is controlled to process the data of the current task to be processed. After obtaining the processing result, the corresponding processing result is then sent to the target sending server that issued the current task to be processed.
[0053] In one exemplary embodiment of this application, after step S300, the method further includes:
[0054] S600, if YF is empty, then based on JF and DL, obtain the second key server information list set EF = (EF1, EF2, ..., EF...). c , ..., EF d ); c = 1, 2, ..., d; d is the number of second critical servers corresponding to the current pending task; EF c This is the device identifier of the c-th second critical server corresponding to the currently pending task; the second critical server is a receiving server in JF with the corresponding permission level capable of handling at least one target data type corresponding to the currently pending task; EF c =(EF) c,1 EF c,2 , ..., EF c,e , ..., EF c,f(c) ); e = 1, 2, ..., f(c); f(c) is the number of target data types that the c-th second critical server corresponding to the current task to be processed can handle; EF c,e This is the type identifier for the e-th target data type that the c-th second key server corresponding to the currently pending task can process.
[0055] Specifically, if YF is empty, it means that for the current task to be processed, there is no receiving server with the corresponding permission level that can handle all target data types of the current task. In this case, obtain the receiving server that can handle at least one target data type corresponding to the current task to obtain the second key server information list set EF.
[0056] It is understood that, since the number of second key receiving servers corresponding to each target data type of the current task to be processed may be different in this embodiment, f(c) does not refer to a specific function or function result value, but refers to a possible value that varies with the specific value of c. For example, when c=1, f(c)=5; when c=2, f(c)=8; when c=3, f(c)=8.
[0057] S700, according to EF, obtain the second critical server type list set LF = (LF1, LF2, ..., LF2). c , ..., LF d); among which, LF c This is the list of the c-th second critical server types corresponding to the currently pending task; LF c =(LF c,1 LF c,2 , ..., LF c,e , ..., LF c,r(c) ); r(c) represents the number of target data types that the c-th second critical server cannot process for the current pending task; LF c,e This is the type identifier for the e-th target data type that the c-th second critical server cannot process for the currently pending task.
[0058] Specifically, obtain each intractable target data type corresponding to each second critical server. This yields the LF (Leadership Level).
[0059] It is understood that, in this embodiment, the number of target data types that the second key receiving server cannot process for each target data type of the current task to be processed may be different. Therefore, in this embodiment, r(c) does not refer to a specific function or function result value, but rather to a possible value that varies with the specific value of c. For example, when c = 1, r(c) = 3; when c = 2, r(c) = 6; when c = 3, r(c) = 10.
[0060] S800 determines the second target receiving server according to LF and the preset second determination method.
[0061] Specifically, step S800 includes:
[0062] S810, based on LF and the proportional information corresponding to each target data type, obtain the second key server proportional list BF = (BF1, BF2, ..., BF...). c , ..., BF d ); among them, BF c The sum of the proportion of data that the c-th second critical server cannot process; BF c =Σ r(c) c=1 LFA c,e LFA c,e For LF c,e The corresponding data volume is the proportion of the total data volume of the current pending tasks.
[0063] S820, the second key server corresponding to MIN(BF) is determined as the second target receiving server; MIN() is a preset minimum value determination function.
[0064] Here, when selecting the second key server, since the permission level corresponding to each second key server cannot process data corresponding to all target data types of the current pending task, for the current pending task, there will be at least one target data type that the selected second key server cannot process. This data needs to be processed by the target issuing server. In order to minimize the processing load of the target issuing server and save its computing resources, the amount of data corresponding to the target data type that the selected second key server cannot process needs to be minimized compared to other second key servers. Therefore, in this embodiment, the second key server corresponding to MIN(BF), that is, the second key server with the smallest proportion of the sum of the data types of the unprocessable target data types to the total data volume of the current pending task, is determined as the second target receiving server.
[0065] S900 performs pre-processing on the current task to be processed according to the homomorphic encryption algorithm to obtain the encrypted current task to be processed.
[0066] Specifically, step S900 includes:
[0067] S910: Homomorphically encrypt the data corresponding to all unprocessable target data types corresponding to MIN(BF) using a homomorphic encryption algorithm to obtain the encrypted current task to be processed.
[0068] The homomorphic encryption algorithm is a fully homomorphic encryption algorithm. The target sending server performs fully homomorphic encryption on all data corresponding to the unprocessable target data types corresponding to MIN(BF) according to the fully homomorphic encryption algorithm, and sends the fully homomorphically encrypted part of the data to the second target receiving server.
[0069] It should be noted that homomorphic encryption algorithms are encryption algorithms that satisfy the property of homomorphic operation on ciphertext. That is, after data is homomorphically encrypted, performing a specific calculation on the ciphertext yields a ciphertext that, when homomorphically decrypted, results in plaintext that is equivalent to performing the same calculation directly on the plaintext data, achieving "computable but not visible" data. Fully homomorphic encryption algorithms, on the other hand, support arbitrary forms of calculation on ciphertext.
[0070] S1000 sends the encrypted current task to the second target receiving server and controls the second target receiving server to process the encrypted current task.
[0071] In this embodiment, the target sending server performs fully homomorphic encryption on all data corresponding to the unprocessable target data types corresponding to MIN(BF) and then sends it to the second target receiving server. It then performs corresponding operations on the data corresponding to the partial target data types of the task to be processed, which have already been processed by the second target receiving server. Due to the characteristics of the fully homomorphic encryption algorithm, the data sent to the second target receiving server after fully homomorphic encryption is processed with the partial target data types of the task to be processed, and finally, the data processing result is returned to the target sending server for decryption.
[0072] In this embodiment, on the one hand, the second key server with the smallest proportion of data that the target server does not have permission to process is selected as the second target receiving server, reducing the processing load of the target sending server and saving its computing resources. On the other hand, the target sending server performs homomorphic encryption on the data that the second target receiving server does not have permission to process before sending it to the second target sending server. This allows the data sent to the second target receiving server after full homomorphic encryption to be processed with a portion of the target data type of the task to be processed by the second target receiving server itself, and finally the data processing result is returned to the target sending server for decryption. This not only ensures data security but also ensures that all data undergoes normal processing.
[0073] Please refer to Figure 2 As shown, an embodiment of this application provides a computing power scheduling device 100, the device comprising:
[0074] The receiving information acquisition unit 110 is used to acquire the receiving information of each receiving server in the second geographical area at each preset time point, so as to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q ); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ p The permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed.
[0075] Target type acquisition unit 120 is used to obtain the target data type list DL = (DL1, DL2, ..., DL...) corresponding to the target sending server in the first geographic area when it generates a current task to be processed. j , ...,DL m ); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume.
[0076] The key list acquisition unit 130 is used to obtain the first key server list YF = (YF1, YF2, ..., YF3) corresponding to the current task to be processed, based on JF, DL, and a preset matching method. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed.
[0077] The determining unit 140 is used to determine the first target receiving server according to YF and a preset first determining method if YF is not empty; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed.
[0078] The sending unit 150 is used to send the current task to be processed to the first target receiving server and control the first target receiving server to process the data of the current task.
[0079] Embodiments of this application also provide a computer program product including program code that, when the program product is run on an electronic device, causes the electronic device to perform the steps of the methods described above according to various exemplary embodiments of this application.
[0080] Furthermore, although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or a step may be broken down into multiple steps.
[0081] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, mobile terminal, or network device, etc.) to execute the method according to the embodiments of this application.
[0082] In an exemplary embodiment of this application, an electronic device capable of implementing the above-described method is also provided.
[0083] Those skilled in the art will understand that various aspects of this application can be implemented as a system, method, or program product. Therefore, various aspects of this application can be specifically implemented in the following forms: a completely hardware implementation, a completely software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, collectively referred to herein as a "circuit," "module," or "system."
[0084] An electronic device according to this embodiment of the present application. The electronic device is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments of this application.
[0085] Electronic devices are manifested in the form of general-purpose computing devices. Components of an electronic device may include, but are not limited to: at least one processor, at least one memory, and buses connecting different system components (including memory and processor).
[0086] The memory stores program code that can be executed by a processor, causing the processor to perform the steps described in the "Exemplary Methods" section above, according to various exemplary embodiments of this application.
[0087] The storage may include readable media in the form of volatile storage, such as random access memory (RAM) and / or cache memory, and may further include read-only memory (ROM).
[0088] The storage may also include programs / utilities having a set (at least one) of program modules, including but not limited to: an operating system, one or more applications, other program modules, and program data, each or some combination of these examples may include an implementation of a network environment.
[0089] A bus can represent one or more of several bus architectures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor, or a local bus that uses any of the various bus architectures.
[0090] The electronic device can also communicate with one or more external devices (e.g., keyboards, pointing devices, Bluetooth devices, etc.), one or more devices that enable a user to interact with the electronic device, and / or any device that enables the electronic device to communicate with one or more other computing devices (e.g., routers, modems, etc.). This communication can be achieved through input / output (I / O) interfaces. Furthermore, the electronic device can communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter. As shown in the figure, the network adapter communicates with other modules of the electronic device via a bus. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in conjunction with the electronic device, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0091] Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the method according to the embodiments of this application.
[0092] In exemplary embodiments of this application, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible implementations, various aspects of this application may also be implemented as a program product including program code, which, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of this application described in the "Exemplary Methods" section above.
[0093] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0094] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.
[0095] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0096] Program code for performing the operations of this application can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java and C++, and conventional procedural programming languages such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0097] Furthermore, the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of this application, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Additionally, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.
[0098] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to the embodiments of this application, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.
[0099] The above are merely specific embodiments of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A computing power scheduling method, characterized in that, The method for scheduling pending tasks generated in a first geographic region to a second geographic region for processing includes: S100, at each preset time point, acquire the reception information of each receiving server in the second geographical area to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q ); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ p The permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed. S200, in response to the target sending server in the first geographic region generating a currently pending task, obtain the target data type list DL = (DL1, DL2, ..., DL...). j , ...,DL m ); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume. S300, based on JF, DL, and the preset matching method, obtain the first key server list YF = (YF1, YF2, ..., YF...) corresponding to the current task to be processed. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed; S400, if YF is not empty, then the first target receiving server is determined according to YF and the preset first determination method; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed; S500 sends the current task to be processed to the first target receiving server and controls the first target receiving server to process the data of the current task.
2. The computing power scheduling method according to claim 1, characterized in that, The preset matching methods include: S310, Obtain the first receiving server list set SF = (SF1, SF2, ..., SF3) corresponding to the target sending server in the first geographical region. i , ..., SF n ); i = 1, 2, ..., n; where SF i This is a list of device identifiers for the receiving servers corresponding to the i-th data type that the target sending server can process within the first geographic region; SF i =(SF) i,1 SF i,2 , ..., SF i,a , ..., SF i,f(i) f(i) represents the number of receiving servers in JF that can handle the i-th data type at the corresponding permission level; SF i,a This is the device identifier of the receiving server in JF that can handle the i-th data type at the a-th permission level. S320, according to DL traversal SF, obtain the list of receiving servers corresponding to each target data type, so as to obtain the second receiving server list set DF = (DF1, DF2, ..., DF...). j , ...,DF m ); where DF j This is a list of device identifiers for the receiving server in JF corresponding to the j-th target data type of the current task to be processed; DF j =(DF j,1 DF j,2 , ...,DF j,b , ...,DF j,f(j) );DF j,b f(j) is the device identifier of the b-th receiving server in JF that can handle the j-th target data type at the corresponding permission level; f(j) is the number of receiving servers in JF that can handle the j-th target data type at the corresponding permission level. S330, traverse DF to obtain YF = (YF1, YF2, ..., YF... x , ..., YF y ).
3. The computing power scheduling method according to claim 1, characterized in that, The preset first determination method includes the following steps: S410, based on YF, obtain the corresponding intermediate server list KF = (KF1, KF2, ..., KF...). g , ..., KF h ); g = 1, 2, ..., h; where h is the number of intermediate servers; KF g This is the device identifier corresponding to the g-th intermediate server; an intermediate server is a receiving server in YF whose number of preset idle computing units is equal to or greater than the number of computing units required by the current task to be processed; S420, if KF is not empty, then based on KF, obtain the intermediate server access priority list KP = (KP1, KP2, ..., KP...). g ..., KP h ); where KP g KP represents the access priority corresponding to the g-th intermediate server. g =α*KPY g +β*KPQ g α is the preset computing power weight; β is the preset permission weight; KPY g KPQ is a computing power score determined based on the number of preset idle computing units corresponding to the g-th intermediate server, and the number of preset idle computing units is positively correlated with the computing power score. g The permission score is determined based on the number of data types that can be processed by the permission level corresponding to the g-th intermediate server, and the number of data types that can be processed by the corresponding permission level is inversely correlated with the size of the permission score; S430: Traverse KP in descending order of access priority for each intermediate server until the number of currently idle computing units corresponding to any intermediate server is equal to or greater than the number of computing units required by the current task to be processed. Then, determine the intermediate server as the first target receiving server and stop traversing.
4. The computing power scheduling method according to claim 1, characterized in that, After step S300, the method further includes: S600, if YF is empty, then based on JF and DL, obtain the second key server information list set EF = (EF1, EF2, ..., EF...). c , ..., EF d ); c = 1, 2, ..., d; d is the number of second critical servers corresponding to the current pending task; EF c This is the device identifier of the c-th second critical server corresponding to the currently pending task; the second critical server is a receiving server in JF with the corresponding permission level capable of handling at least one target data type corresponding to the currently pending task; EF c =(EF) c,1 EF c,2 , ..., EF c,e , ..., EF c,f(c) ); e = 1, 2, ..., f(c); f(c) is the number of target data types that the c-th second critical server corresponding to the current task to be processed can handle; EF c,e This is the type identifier for the e-th target data type that can be processed by the c-th second key server corresponding to the currently pending task; S700, according to EF, obtain the second critical server type list set LF = (LF1, LF2, ..., LF2). c , ..., LF d ); among which, LF c This is the list of the c-th second critical server types corresponding to the currently pending task; LF c =(LF c,1 LF c,2 , ..., LF c,e , ..., LF c,r(c) ); r(c) represents the number of target data types that the c-th second critical server cannot process for the current pending task; LF c,e This is the type identifier for the e-th target data type that the c-th second critical server cannot process for the currently pending task. S800, determine the second target receiving server according to LF and the preset second determination method; S900 performs pre-processing on the current task to be processed according to the homomorphic encryption algorithm to obtain the encrypted current task to be processed; S1000 sends the encrypted current task to the second target receiving server and controls the second target receiving server to process the encrypted current task.
5. The computing power scheduling method according to claim 4, characterized in that, The preset second determination method includes: S810, based on LF and the proportional information corresponding to each target data type, obtain the second key server proportional list BF = (BF1, BF2, ..., BF...). c , ..., BF d ); among them, BF c The sum of the proportion of data that the c-th second critical server cannot process; BF c =Σ r(c) c=1 LFA c,e LFA c,e For LF c,e The corresponding data volume represents the proportion of the total data volume of the current pending tasks; S820, the second key server corresponding to MIN(BF) is determined as the second target receiving server; MIN() is a preset minimum value determination function.
6. The computing power scheduling method according to claim 5, characterized in that, Step S900 includes: S910: Homomorphically encrypt the data corresponding to all unprocessable target data types corresponding to MIN(BF) using a homomorphic encryption algorithm to obtain the encrypted current task to be processed.
7. The computing power scheduling method according to claim 6, characterized in that, The homomorphic encryption algorithm is a fully homomorphic encryption algorithm.
8. A computing power scheduling device, characterized in that, The device is used to schedule pending tasks generated in a first geographic region to a second geographic region for processing. The receiving information acquisition unit is used to acquire the receiving information of each receiving server in the second geographical area at each preset time point, so as to obtain a receiving server information list JF = (JF1, JF2, ..., JF...). p , ..., JF q ); p = 1, 2, ..., q; where q is the number of receiving servers in the second geographical region; JF p This refers to the received information from the p-th receiving server within the second geographical region; JF p =(JFQ p JFY p JFQ p The permission level of the p-th receiving server within the second geographical region; JFY p The number of idle computing units is preset for the p-th receiving server in the second geographical region; each permission level has a corresponding data type that can be processed. The target type acquisition unit is used to respond to the target sending server in the first geographic region generating the current task to be processed, and to acquire the target data type list DL = (DL1, DL2, ..., DL...) corresponding to the current task to be processed. j , ...,DL m ); j = 1, 2, ..., m; m ≤ n, where m is the number of target data types included in the current pending tasks of the target sending server within the first geographic region; DL j The j-th target data type is the type identifier of the current pending task of the target sending server in the first geographic region; n is the number of data types that the target sending server in the first geographic region can process; each target data type in the current pending task has corresponding proportion information; the proportion information indicates the proportion of the data volume corresponding to the target data type in the current pending task to the total data volume. The key list acquisition unit is used to obtain the first key server list YF = (YF1, YF2, ..., YF3) corresponding to the current task to be processed, based on JF, DL, and a preset matching method. x , ..., YF y ); x = 1, 2, ..., y; where y is the number of first critical servers corresponding to the current task to be processed; YF x This is the device identifier of the xth first key server corresponding to the current task to be processed; the first key server is the receiving server in JF that has the corresponding permission level to process data of each target data type corresponding to the current task to be processed; The determining unit is used to determine the first target receiving server according to YF and a preset first determining method if YF is not empty; the number of currently idle computing units corresponding to the first target receiving server is equal to or greater than the number of computing units required by the current task to be processed. The sending unit is used to send the current task to be processed to the first target receiving server and control the first target receiving server to process the data of the current task.
9. A non-transitory computer-readable storage medium, characterized in that, The storage medium stores at least one instruction or at least one program segment, which is loaded and executed by a processor to implement the method as described in any one of claims 1-7.
10. An electronic device, characterized in that, Includes a processor and the non-transitory computer-readable storage medium as described in claim 9.
Citation Information
Patent Citations
Computing power network node distribution method and device, electronic equipment and storage medium
CN115801896A
Distributed computing power scheduling method and device, electronic equipment and storage medium
CN116069498A