Apparatus, device and method for allocating CPU resources
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/46
G06F-009/50
출원번호
US-0014744
(2016-02-03)
등록번호
US-10089150
(2018-10-02)
우선권정보
CN-2015 1 0055803 (2015-02-03)
발명자
/ 주소
Zhou, Zhiyuan
출원인 / 주소
Alibaba Group Holding Limited
인용정보
피인용 횟수 :
0인용 특허 :
21
초록▼
A method of central processor unit (CPU) resource allocation for a multi-processor device includes the step of obtaining the amounts of demanded CPU resources for the process groups executing on the multi-processor device during a pre-configured time period. The method also includes the step of obta
A method of central processor unit (CPU) resource allocation for a multi-processor device includes the step of obtaining the amounts of demanded CPU resources for the process groups executing on the multi-processor device during a pre-configured time period. The method also includes the step of obtaining the amounts of idle CPU resources for the CPUs of the multi-processor device during the pre-configured time period. The method further includes the step of allocating the CPUs to the process groups based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs.
대표청구항▼
1. A method of allocating processors in a multi-processor device, the method comprising: executing a plurality of process groups on a plurality of CPUs such that a process group is executed on the plurality of CPUs;determining a plurality of process group execution times for the plurality of process
1. A method of allocating processors in a multi-processor device, the method comprising: executing a plurality of process groups on a plurality of CPUs such that a process group is executed on the plurality of CPUs;determining a plurality of process group execution times for the plurality of process groups such that a process group execution time is determined for the process group, the process group execution time of the process group indicating how long the process group was executing on the plurality of CPUs during a measurement time;determining a plurality of idle times for the plurality of CPUs such that an idle time is determined for a CPU, the idle time of the CPU indicating how long the CPU was idle during the measurement time; andallocating whichever CPU has the largest idle time of the plurality of idle times of the plurality of CPUs to whichever process group has the largest process group execution time of the plurality of process group execution times of the plurality of process groups. 2. The method of claim 1, wherein the process group execution time of the process group is a sum of a plurality of local execution times of the plurality of CPUs. 3. The method of claim 1, wherein determining a plurality of process group execution times includes: obtaining a plurality of local execution times for the plurality of CPUs such that a local execution time is obtained for the CPU, the local execution time of the CPU indicating how long the process group was executing on the CPU during the measurement time; andsumming the plurality of local execution times to generate the process group execution time of the process group. 4. The method of claim 3, wherein obtaining a plurality of local execution times includes reading a value from cpuacct.usage_per_cpu under cgroups to obtain an execution time of the CPUs. 5. The method of claim 3, wherein the idle time of the CPU is the measurement time less the local execution time of the CPU. 6. The method of claim 5, wherein determining a plurality of process group execution times further includes generating an execution list of the plurality of process group execution times in a descending order of execution time. 7. The method of claim 6, wherein determining a plurality of idle times includes generating an idle list of the plurality of idle times in a descending order of idle time. 8. The method of claim 7, wherein allocating whichever CPU includes allocating a CPU at the top of the idle list to a process group at the top of the execution list. 9. A method of central processor unit (CPU) resource allocation for a multi-processor device, the method comprising: obtaining amounts of demanded CPU resources for process groups executing on the multi-processor device during a pre-configured time period;obtaining amounts of idle CPU resources for CPUs of the multi-processor device during the pre-configured time period;allocating CPUs to the process groups to form designated CPUs based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs, wherein the allocating CPUs to the process groups based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs comprises: generating a strategy for allocating CPUs based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs, wherein the generating a strategy for allocating CPU resources based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs comprises the steps of: a) obtaining a first list of process groups, wherein the process groups are arranged in a first descending order of the amounts of demanded CPU resources during the pre-configured time period;b) obtaining a second list of CPUs, wherein the CPUs are arranged in a second descending order of the amounts of idle CPU resources of the CPUs during the pre-configured time period;c) designating a process group at a first position of the first list;d) selecting CPUs from the second list in the second descending order, based on an amount of demanded CPU resources of the process group at the first position;e) allocating the CPUs selected from the second list to the process group at the first position;f) updating the amounts of idle CPU resources for the allocated CPUs based on execution time of the process group at the first position on the allocated CPUs;g) updating the second list of CPUs, wherein the CPUs are arranged in the second descending order of updated amounts of idle CPU resources;h) determining whether the process group at the first position is a last process group of the first list;i) in response to a determination that the process group at the first position is the last process group of the first list, terminating the method; andj) in response to a determination that the process group at the first position is not the last process group of the first list, designating a position next in the first list as the first position and continuing from step d); anddeploying the generated strategy by pinning the process groups to the designated CPUs that were allocated to the process groups. 10. The method of claim 1, further comprising: re-determining a plurality of process group execution times for the plurality of process groups when a predetermined condition has been met such that a process group execution time is re-determined for the process group;re-determining a plurality of idle times for the plurality of CPUs when the predetermined condition has been met such that an idle time is re-determined for the CPU; andre-allocating whichever CPU has the largest re-determined idle time to whichever process group has the largest re-determined process group execution time. 11. The method of claim 10, wherein the predetermined condition is met when a predefined time has expired. 12. The method of claim 10, wherein the predetermined condition is met when a CPU exceeds a maximum CPU usage rate. 13. The method of claim 10, wherein the predetermined condition is met when a CPU usage rate exceeds N times a minimal CPU usage rate, N being an integer. 14. The method of claim 10, wherein the predetermined condition is met when a CPU exceeds a maximum CPU usage rate, and when the CPU usage rate exceeds N times a minimal CPU usage rate, N being an integer. 15. A computer program product tangibly embodied in a non-transitory computer-readable storage device and comprising instructions that when executed by a processor perform a method for allocating processors in a multi-processor device, the method comprising: executing a plurality of process groups on a plurality of CPUs such that a process group is executed on the plurality of CPUs;determining a plurality of process group execution times for the plurality of process groups such that a process group execution time is determined for the process group, the process group execution time of the process group indicating how long the process group was executing on the plurality of CPUs during a measurement time;determining a plurality of idle times for the plurality of CPUs such that an idle time is determined for a CPU, the idle time of the CPU indicating how long the CPU was idle during the measurement time; andallocating whichever CPU has the largest idle time of the plurality of idle times of the plurality of CPUs to whichever process group has the largest process group execution time of the plurality of process group execution times of the plurality of process groups. 16. The product of claim 15, wherein determining a plurality of process group execution times includes: obtaining a plurality of local execution times for the plurality of CPUs such that a local execution time is obtained for the CPU, the local execution time of the CPU indicating how long the process group was executing on the CPU during the measurement time; andsumming the plurality of local execution times to generate the process group execution time of the process group. 17. The product of claim 16, wherein the idle time of the CPU is the measurement time less the local execution time of the CPU. 18. The product of claim 15, wherein: determining a plurality of process group execution times includes generating an execution list of the plurality of process group execution times in a descending order of execution time;determining a plurality of idle times includes generating an idle list of the plurality of idle times in a descending order of idle time; andallocating whichever CPU includes allocating a CPU at the top of the idle list to a process group at the top of the execution list. 19. An apparatus for allocating CPU resources, the apparatus comprising: a processor; anda non-transitory computer-readable medium operably coupled to the processor, the non-transitory computer-readable medium having computer-readable instructions stored thereon to be executed when accessed by the processor, the instructions comprising:an obtaining module configured to obtain amounts of demanded CPU resources for process groups executing on the multi-processor device during a pre-configured time period and to obtain amounts of idle CPU resources for CPUs of the multi-processor device during the pre-configured time period; andan allocation module configured to allocate CPUs to the process groups to form designated CPUs based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs, the allocation module comprising: a generating sub-module configured to generate a strategy for allocating CPU resources based upon the obtained amounts of demanded CPU resources for the process groups and the obtained amounts of idle CPU resources for the CPUs, the generating sub-module comprising: an initial ordering sub-module configured to obtain a first list of process groups and to obtain a second list of CPUs, wherein the process groups are arranged in a first descending order of the amounts of demanded CPU resources during the pre-configured time period, and wherein the CPUs are arranged in a second descending order of the amounts of idle CPU resources of the CPUs during the pre-configured time period;a first positioning sub-module configured to designate a process group at a first position of the first list a process group;an allocation sub-module configured to select CPUs from the second list in the second descending order, based on an amount of demanded CPU resources of the process group at the first position, and to allocate the CPUs selected from the second list to the process group at the first position;an updating sub-module configured to update the amounts of idle CPU resources for the allocated CPUs based on execution time of the process group at the first position on the allocated CPUs;an re-ordering sub-module configured to update the second list of CPUs, wherein the CPUs are arranged in the second descending order of updated amounts of idle CPU resources;a determination sub-module configured to determine whether the process group at the first position is a last process group of the first list;a conclusion sub-module configured to, in response to a determination that the process group at the first position is the last process group of the first list, terminating the method; anda second positioning sub-module configured to, in response to a determination that the process group at the first position is not the last process group of the first list, designate a position next in the first list as the first position and execute the first positioning allocation sub-module; anda deployment sub-module configured to deploy the generated strategy by pinning the process groups to the designated CPUs that were allocated to the process groups. 20. The product of claim 15 wherein the method further includes: re-determining a plurality of process group execution times for the plurality of process groups when a predetermined condition has been met such that a process group execution time is re-determined for the process group;re-determining a plurality of idle times for the plurality of CPUs when the predetermined condition has been met such that an idle time is re-determined for the CPU; andre-allocating whichever CPU has the largest re-determined idle time to whichever process group has the largest re-determined process group execution time. 21. An electronic device comprising: a memory; anda plurality of CPUs coupled to the memory, the plurality of CPUs to execute a plurality of process groups such that a process group is executed by the plurality of CPUs, a method of allocating the plurality of CPUs to the plurality of process groups comprises: determining a plurality of process group execution times for the plurality of process groups such that a process group execution time is determined for the process group, the process group execution time of the process group indicating how long the process group was executing on the plurality of CPUs during a measurement time;determining a plurality of idle times for the plurality of CPUs such that an idle time is determined for a CPU, the idle time of the CPU indicating how long the CPU was idle during the measurement time; andallocating whichever CPU has the largest idle time of the plurality of idle times of the plurality of CPUs to whichever process group has the largest process group execution time of the plurality of process group execution times of the plurality of process groups.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (21)
Glidewell, Keith, Apparatus and method for process dispatching between individual processors of a multi-processor system.
Hays ; Jr. Daniel O. (Raleigh NC) Maholick Andrew W. (Raleigh NC) Mize William N. (Cary NC), Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles.
Puri,Rahoul; Carrie,Susan; de la Iglesia,Erik, Method and system for maintaining temporal consistency of resources and data in a multiple-processor packet switch.
Shan Ming-Chien (Saratoga CA) Murphy Marguerite C. (Berkeley CA), Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a.
Powers, John T.; Anderson, Robert W.; Trueblood, Nathan; Ciruli, Daniel, Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics.
Morrison Gordon E. (Denver CO) Brooks Christopher B. (Boulder CO) Gluck Frederick G. (Boulder CO), Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructi.
Dorofeev,Andrei V.; Tucker,Andrew G., System using fair-share scheduling technique to schedule processes within each processor set based on the number of shares assigned to each process group.
Noel S. Otterness ; William A. Brant ; Keith E. Short ; Joseph G. Skazinski, System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment.
Ostermeyer, John Andrew; Hofer, James Michael; Childers, Mark Steven; Condy, Michael Hugh, Systems and methods for analyzing performance of virtual environments.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.