COMPUTING SYSTEM, COMPUTING SYSTEM CONTROL METHOD AND PROGRAM

The computing system addresses the challenge of power allocation based on task priority to prevent processor overloads by calculating allocable power and adjusting task loads, ensuring efficient power usage and temperature management.

JP7792860B2Active Publication Date: 2025-12-26MITSUBISHI HEAVY IND LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022086739
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-05-27
Publication Date
2025-12-26
Estimated Expiration
2042-05-27

AI Technical Summary

Technical Problem

Existing computing systems fail to allocate power to tasks based on priority while preventing processor temperature and power consumption from exceeding limits.

Method used

A computing system that calculates the maximum power allocable to tasks, determines if the total power exceeds limits, and adjusts task loads based on priority to prevent exceeding these limits.

Benefits of technology

Effectively allocates power to tasks according to priority, preventing processor temperature and power consumption from exceeding limits.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007792860000001
    Figure 0007792860000001
  • Figure 0007792860000002
    Figure 0007792860000002
  • Figure 0007792860000003
    Figure 0007792860000003
Patent Text Reader

Abstract

To provide a calculation system capable of assigning computational amounts to tasks depending on task priority and processor temperature (power consumption).SOLUTION: The calculation system includes: means of calculating the maximum power of a processor available for assigning multiple tasks; means of determining whether the electric power exceeds the maximum power based on the assigned total amount of the calculation required by each task; means of assigning the calculation amount to the tasks according to the priority of the tasks when it is determined that the maximum power is exceeded; and means of adjusting the task load based on the assigned amount of calculation.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a computing system, a control method for a computing system, and a program. [Background technology]

[0002] For systems with multiple cores, a method has been proposed in which each task is scheduled so as not to reach the core's temperature limit by selecting a core with low power consumption and assigning the task to it, or the operating frequency of the core is adjusted to control so as not to reach the core's temperature limit (for example, Patent Document 1). Patent Document 1 discloses a technique for assigning tasks to cores so as not to reach the core's temperature limit, but does not disclose any consideration of task priority when doing so. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6337121 Summary of the Invention [Problem to be solved by the invention]

[0004] There is a need for a technology that not only prevents processor temperature and power consumption from exceeding limits, but also allocates available power to each task according to task priority.

[0005] The present disclosure provides a computing system, a control method for a computing system, and a program that can solve the above problems. [Means for solving the problem]

[0006] The computing system of the present disclosure includes means for calculating the maximum power of a processor that can be allocated to all of a plurality of tasks; means for determining whether the power based on the total amount of allocated computation required by each of the tasks exceeds the maximum power when the amount of computation required by each of the tasks is allocated; means for allocating the amount of computation to each task according to the priority of the task if it is determined that the maximum power will be exceeded; and means for adjusting the load of the task based on the allocated amount of computation.

[0007] The control method for a computing system disclosed herein includes the steps of calculating the maximum processor power that can be allocated to all of a plurality of tasks, determining whether the power based on the total amount of calculation allocated when the amount of calculation required by each of the tasks is allocated exceeds the maximum power, and if it is determined that the maximum power will be exceeded, allocating the amount of calculation to each task according to the priority of the task, and adjusting the load of the task based on the allocated amount of calculation.

[0008] The program disclosed herein causes a computer to function as: means for calculating the maximum processor power that can be allocated to all of a plurality of tasks; means for determining whether the power based on the total amount of calculation allocated when the amount of calculation required by each of the tasks is allocated exceeds the maximum power; means for allocating the amount of calculation to each task according to the priority of the task if it is determined that the maximum power will be exceeded; and means for adjusting the load on the task based on the allocated amount of calculation. [Effects of the Invention]

[0009] According to the above-described computing system, computing system control method, and program, it is possible to allocate power to each task according to the priority of the task while preventing the processor temperature and power consumption from exceeding their limits. [Brief explanation of the drawings]

[0010] [Figure 1]FIG. 1 is a block diagram illustrating an example of a computing system according to an embodiment. [Figure 2] FIG. 10 is a diagram illustrating a method of load adjustment according to an embodiment. [Figure 3] FIG. 4 is a diagram illustrating an example of setting information according to the embodiment. [Figure 4] FIG. 10 is a flowchart illustrating an example of a calculation amount allocation process according to the embodiment. [Figure 5] FIG. 10 is a flowchart illustrating an example of an execution process of an application according to the embodiment. [Figure 6] FIG. 10 is a diagram illustrating an example of load adjustment according to the embodiment. [Figure 7] FIG. 10 is a flowchart illustrating another example of the calculation amount allocation process according to the embodiment. [Figure 8] FIG. 1 is a diagram illustrating an example of a hardware configuration of a computing system according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] <Embodiment> The computing device of the present disclosure will be described below with reference to Figures 1 to 8. In the following description, components having the same or similar functions will be assigned the same reference numerals, and redundant descriptions of those components may be omitted.

[0012] (System Configuration) FIG. 1 is a block diagram illustrating an example of a computing system according to an embodiment. The computing system 1 is configured by a computer and includes one or more processors. The computing system 1 includes a GPU (Graphics Processing Unit) 2, a storage unit 3, a controller 100, and application programs 10, 20, ..., N0 (hereinafter, application programs may be simply referred to as "apps"). The GPU 2 is an example of a processor. In the computing system 1, the controller 100 and N apps 10 to N0 run. The controller 100 and the apps 10 to N0 are both software, and are realized by the GPU 2 executing the programs stored in the storage unit 3.

[0013] The controller 100 is a task scheduling system that allocates power to the execution tasks of the applications 10 to N0 according to the priority of the applications 10 to N0. The power is the power used by the GPU 2 to execute the tasks of the applications 10 to N0. For example, if a certain amount of power is allocated to the application 10, the GPU 2 executes the application 10 within the power range. The power used by the GPU 2 can be expressed as the number of instructions executed by the GPU 2, in other words, the amount of calculation. The controller 100 allocates the amount of calculation to the applications 10 to N0 according to the priority of each application. The controller 100 includes a visualization unit 101, a temperature monitoring unit 102, an allocation unit 103, and a communication unit 104.

[0014] The visualization unit 101 visualizes the allocation status of the computational load to the applications 10 to N0, and outputs information, diagrams, graphs, etc. showing the allocation status to the display device 4. For example, when 100% of the computational load is allocated to the application 10, 50% of the computational load is allocated to the application 20, and 1% of the computational load is allocated to the application N0, the visualization unit 101 outputs the allocations of 100%, 50%, and 1% to the applications 10, 20, and N0.

[0015] The temperature monitoring unit 102 monitors the temperature of the GPU 2 included in the computing system 1. Generally, the GPU 2 is equipped with a thermometer that measures the core temperature, and the temperature of the GPU 2 can be monitored by acquiring data from this thermometer.

[0016] The allocation unit 103 allocates the amount of calculation to the applications 10 to N0 so that the temperature of the GPU 2 acquired by the temperature monitoring unit 102 does not exceed an upper limit. Generally, when the temperature of the GPU 2 is about to exceed an upper limit, a control is provided that reduces the frequency of the GPU 2 to suppress the temperature rise. In such a case, there is a possibility that the entire processing of the applications 10 to N0 may be delayed. Some of the applications 10 to N0 have high priority, and it is undesirable to delay the processing. In this embodiment, in accordance with the priority of the applications 10 to N0, a large amount of calculation is allocated to the applications with high priority so that the processing can be executed smoothly or without a decrease in processing accuracy, while the amount of calculation allocated to the applications with low priority is reduced, thereby suppressing the temperature rise of the GPU 2 or lowering the temperature.

[0017] The communication unit 104 communicates with the applications 10 to N0. For example, the communication unit 104 receives a request for a calculation amount from each of the applications 10 to N0, and notifies each of the applications 10 to N0 of the calculation amount to be allocated to each application.

[0018] The application 10 includes a load adjusting unit 11 and a communication unit 12. The communication unit 12 communicates with the controller 100. For example, the communication unit 12 requests a desired amount of calculation from the controller 100 at a predetermined timing, and acquires the amount of calculation allocated by the controller 100 in response to the request.

[0019] The load adjuster 11 adjusts the load of the application 10 to match the allocated amount of calculation based on the amount of calculation acquired by the communication unit 12. An example of a load adjustment method is shown in FIG. 2. Examples of the load adjustment method include adjusting the processing frequency or the processing load. For example, the load adjuster 11 sets the processing frequency high when the amount of calculation is large (high priority), and sets the processing frequency low when the amount of calculation is small (low priority). Furthermore, for example, if the application 10 is an application that performs calculation processing, the load adjuster 11 increases the calculation accuracy when the amount of calculation is large, and decreases the calculation accuracy when the amount of calculation is small. Furthermore, for example, if the application 10 is an application that performs image processing, the load adjuster 11 processes an image with a large amount of information (e.g., an image with high resolution or a wide area) when the amount of calculation is large, and processes an image with a small amount of information (e.g., an image with low resolution or a narrow area) when the amount of calculation is small. These mechanisms for adjusting the load are incorporated into the applications 10 to N0.

[0020] For example, if the calculation amount allocated by the controller 100 is 50%, the load adjuster 11 delays the execution of the application 10 (waits for a predetermined time and then executes the application 10) (an example of setting a low processing frequency). If the calculation amount allocated by the controller 100 is even lower and is equal to or less than a predetermined value (for example, 1%), the load adjuster 11 skips the execution of the application 10 for a predetermined time (an example of setting a low processing frequency). If the calculation amount allocated by the controller 100 is 50%, the load adjuster 11 executes the process with a processing load of 50%. For example, if the application 10 is an application that performs image processing, the load of the image processing is reduced by limiting the image processing to a portion of the images to be processed or by processing images with a lower resolution compared to when 100% of the calculation amount is allocated (an example of reducing the processing load). For example, if application 10 is an application that performs calculations using a neural network, the calculations are performed using a neural network with reduced calculation accuracy compared to a neural network that would be used when 100% of the calculation load is allocated, so that the calculation load is 50% (an example of reducing the processing load). Note that 50% given here is just an example and is not limited to 50%. For example, it may be 60% or 40%. The same applies hereinafter.

[0021] The process to be executed for the allocated amount of calculation is predetermined for each application, and the application 10 and its execution environment are configured so that the process can be executed.

[0022] For example, when a 50% computational load is allocated and processing is delayed for a predetermined time, a delay time (e.g., the time required to execute one processing cycle) is described in the source code of the application 10 or a configuration file read by the application 10 in association with the 50% computational load. When the application 10 is allocated a 50% computational load, the application 10 is configured to wait for this delay time and then execute processing for only one processing cycle. Furthermore, the application 10 is configured to request a desired computation load from the controller 100 after executing processing for only one processing cycle. If the load on the GPU 2 is reduced and the temperature drops during operation with a 50% computation load, there is a possibility that, in response to this request, for example, 100% computation load will be allocated to the application 10. In this example, the process of waiting for a delay time corresponding to the computation load and the process of requesting a desired computation load from the controller 100 after executing one processing cycle are functions of the load adjuster 11. Note that one processing cycle is a single process. For example, if the application 10 is an image processing application, one processing cycle can be defined as the time from when the application 10 acquires one image file to when it completes a series of image processing operations.

[0023] In a load adjuster that adjusts the processing frequency, when a computational load lower than a predetermined value is allocated, the source code or configuration file of the application 10 describes a waiting time for when the computational load allocation is lower than the predetermined value. The application 10 waits for this waiting time without executing the process, and after the waiting time is released, the application 10 requests the desired computational load from the controller 100 without executing the process (i.e., skipping the process). The reason why the normal waiting is not performed for a computational load allocation lower than the predetermined value is that, for example, if the computational load allocation is 1%, the waiting time is equivalent to 99 normal processing cycles. In this case, even if the temperature of the GPU 2 drops and the computational load allocation increases, the process cannot be immediately resumed. To prevent this, the application 10 waits for a short time, skips the process, and then queries the controller 100 again for an allocable computational load. The skipping process in this example and the process of requesting the desired computational load from the controller 100 immediately after the skip are functions of the load adjuster 11.

[0024] Furthermore, when changing the processing load according to the allocated calculation amount, the application 10 is configured to execute image processing according to the allocated calculation amount or execute calculation using a neural network. Furthermore, the application 10 is configured to execute processing for only one processing cycle with a processing load according to the calculation amount, and then request a desired calculation amount from the controller 100. The process of switching the processing load according to the allocated calculation amount and the process of requesting a desired calculation amount from the controller 100 are functions of the load adjuster 11.

[0025] The application 20 includes a load adjuster 21 and a communication unit 22. The application N0 includes a load adjuster N1 and a communication unit N2. The functions of the load adjusters 21 and N1 are similar to those of the load adjuster 11. The functions of the communication units 22 and N2 are similar to those of the communication unit 12.

[0026] The storage unit 3 stores various information. For example, the storage unit 3 stores setting information indicating the correspondence between the priorities of the applications 10 to N0, the amount of calculation to be allocated to the applications 10 to N0, and the power consumption of the GPU 2. An example of this setting information is shown in FIG. 3. For example, suppose that applications 10 and 20 are currently running with 100% calculation amount, and the current temperature of the GPU 2 monitored by the temperature monitoring unit 102 is T1. Now, suppose that application N0 is newly launched and requests 100% of the calculation amount. Then, the allocation unit 103 refers to the setting information in FIG. 3 stored in the storage unit 3 and calculates that allocating 100% of the calculation amount to application N0 will result in power consumption of x9(w). The allocation unit 103 calculates the temperature rise of GPU2 caused by an increase in power consumption of x9(w) based on a predetermined conversion formula, function, etc., and by adding the temperature rise to temperature T1, it can determine whether it is possible to allocate 100% of the calculation amount to application N0 (i.e., whether the temperature limit of GPU2 will be exceeded by allocating 100% of the calculation amount to application N0).

[0027] (Allocation process) Next, a method for calculating the amount of calculation to be allocated to the applications 10 to N0 will be described with reference to Fig. 4. Fig. 4 is a flow chart showing an example of a calculation amount allocation process according to the embodiment. First, the allocation unit 103 calculates the allocatable power (step S1). For example, the allocation unit 103 calculates the difference between the temperature of the GPU 2 monitored by the temperature monitoring unit 102 while the applications 10 to N0 are not running and the upper temperature limit value of the GPU 2. The allocation unit 103 calculates the power consumption of the GPU 2 required to raise the temperature by the calculated difference, and sets this value as the power allocatable to the applications 10 and the like. Next, the allocation unit 103 allocates the computational load in response to a request (step S2). For example, it is assumed that three applications, application 10, application 20, and application N0, are about to run in the computing system 1. It is also assumed that application 10, application 20, and application N0 each request allocation of 100% of the computational load. The allocation unit 103 calculates the power consumption when 100% of the computational load is allocated to application 10, 100% of the computational load to application 20, and 100% of the computational load to application N0 in response to the request, based on the setting information exemplified in FIG. 3. In this example, it is x3+x6+x9(w). Next, the allocation unit 103 determines whether the power consumption corresponding to the total demand for the computational load exceeds the allocable power calculated in step S1 (step S3). If it does not exceed the allocable power (step S3; No), the allocation unit 103 allocates the requested computational load to each application and completes the allocation of the computational load (step S7).

[0028] If the total power exceeds the allocable power (step S3; Yes), the allocating unit 103 reduces the computational load allocated to the low-priority application, using the minimum computational load as a lower limit, until the total power does not exceed the allocable power (step S4). The minimum computational load is, for example, the value of "minimum computational load required for operation at the minimum required cycle" in the setting information illustrated in FIG. 3. In this example, the allocating unit 103 reduces the computational load allocated to the low-priority application N0, using 50% of the minimum computational load as a lower limit. The computational load to be allocated can be set arbitrarily between the requested computational load and the minimum computational load. The allocating unit 103 calculates the power consumption corresponding to the allocated computational load. If the computational load to be allocated is the minimum computational load, the power consumption is x3 + x6 + x8 (w). Next, the allocating unit 103 determines whether the power consumption corresponding to the total computational load demand (total demand after allocation in step S4) exceeds the allocable power (step S5). In the above example, the allocation unit 103 determines whether the power consumption corresponding to the total demand for the computational load, x3+x6+x8(w), exceeds the allocatable power. If it does not exceed the allocatable power (step S5; No), the allocation unit 103 allocates the computational load allocated in step S4 to the applications 10 to N0, thereby completing the allocation of the computational load (step S7).

[0029] If the total power demand exceeds the allocable power (step S5; Yes), the allocating unit 103 reduces the amount of calculation to be allocated to the low-priority applications without any restrictions (step S6). For example, the allocating unit 103 reduces the amount of calculation to be allocated to application N0 to 0%. In the processing flow illustrated in FIG. 4, the allocation of the amount of calculation is completed by reducing the amount of calculation to be allocated to the low-priority applications without any restrictions, but the allocation process is not limited to this. For example, the processing from step S3 onwards may be repeated in order of decreasing priority applications until the total power allocated to applications N0 to N0 falls within the allocable power range. In this case, in step S4, the processing targets the applications with the next lowest priority after the applications whose calculation amounts have been reduced so far, and reduces the amount of calculation to be allocated to those applications to the minimum amount of calculation (step S4). If the total power demand still exceeds the allocable power (step S5; Yes), the allocating unit 103 reduces the amount of calculation to be allocated without any restrictions (step S6). The allocation unit 103 repeatedly executes the processes from step S3 onwards for applications with lower priority until the power corresponding to the total amount of calculation allocated to all applications (i.e., the total demand) falls within the range of power that can be allocated, and then terminates the allocation process.

[0030] Even if applications 10 and 20 are already running and application N0 is about to be launched, the allocation amount for application N0 can be calculated by executing the process described above with reference to FIG.

[0031] (Application execution process) Next, the execution process of an application will be described using the application 10 and the controller 100 as an example. FIG. 5 is a flow diagram illustrating an example of an execution process of an application according to the embodiment. The load adjusting unit 11 of the application 10 requests a desired amount of calculation (for example, 100%) from the controller 100 via the communication unit 12 (step S11). In the controller 100, the communication unit 104 acquires the requested amount of calculation. Next, the allocation unit 103 executes allocation processing to calculate the amount of calculation to be allocated to the applications 10 to N0 (step S12). This processing is as described in FIG. 4. The communication unit 12 notifies the application 10 of the amount of calculation to be allocated to the application 10 (step S13). In the application 10, the communication unit 12 acquires the allocated amount of calculation and outputs the value to the load adjusting unit 11. Next, the load adjusting unit 11 adjusts the load of the application 10 (step S14).

[0032] An example of load adjustment is shown in FIG. 6. FIG. 6(a) shows the execution status of application 10 when 100% of the calculation amount is allocated. Prior to the execution of processing cycle 1, a calculation amount is requested (step S11) and a calculation amount is allocated (step S12). Since 100% of the calculation amount has been allocated, the load adjuster 11 immediately executes processing cycle 1. When processing cycle 1 is completed, a calculation amount is requested and allocated, and since 100% of the calculation amount has been allocated, the load adjuster 11 continues to execute processing cycle 2. Thereafter, a calculation amount is requested and allocated each time a processing cycle is completed, and if 100% of the calculation amount has been allocated, the load adjuster 11 executes processing cycles 3 and 4.

[0033] FIG. 6(b) shows the execution status of application 10 when 50% of the calculation amount is allocated. First, a calculation amount is requested and allocated, and 50% of the calculation amount is allocated. Load adjuster 11 waits for a predetermined time (for example, the total time required to execute processing cycle 1 without delay, and then executes the calculation amount request and allocation), and then executes processing cycle 1. As a result, processing cycle 1 is executed with a delay of one processing cycle compared to when 100% of the calculation amount is allocated. In other words, when 100% of the calculation amount is allocated, processing cycle 1 and processing cycle 2 are executed at time T, but when 50% of the calculation amount is allocated, only half of that, processing cycle 1, is executed. When 50% of the calculation amount is also allocated in the subsequent calculation amount allocation, processing is executed in the same cycle.

[0034] FIG. 6(c) shows the execution status of application 10 when 1% of the computational load is allocated and then 100% of the computational load is allocated. A computational load request and allocation are first performed, and 1% of the computational load is allocated. The load adjuster 11 waits for a predetermined time, and then requests a computational load without executing the processing of application 10. Since the processing of application 10 is not executed, the temperature of GPU 2 drops. As a result, the computational load may be allocated more than a certain amount (in this example, 100% of the computational load) when a computational load request is made. When 100% of the computational load is allocated, the load adjuster 11 executes processing cycle 1, which had been skipped without being executed until then. If 100% of the computational load is also allocated in the subsequent computational load allocation, the load adjuster 11 executes processing cycle 2. Even if the computational load allocation after the skip is not 100%, as long as it is more than a certain amount, the processing is resumed. For example, when the allocated computational load is 50%, the processing of application 10 is resumed in the manner described in FIG. 6(b).

[0035] The load adjustment described in Figure 6 is one example. As another example, if application 10 is an application that performs image processing, it is often possible to handle images of various resolutions and various sizes using the same algorithm. In such cases, the processing load can be adjusted by preparing images of various resolutions and processing images of resolutions according to the allocated amount of calculation, or by performing image processing on only a portion of the image.

[0036] Furthermore, if the application 10 is an application that performs calculations, multiple programs with different calculation accuracy for achieving the same purpose may be prepared and the load may be adjusted by switching between them. For example, in calculations using neural networks, there is often a trade-off between accuracy and processing speed, and multiple neural networks with different calculation amounts and accuracy are often prepared. In such cases, the processing load can be adjusted by selecting a neural network with an accuracy appropriate to the allocated calculation amount and executing the process. Also, for example, in optimization calculations, the calculation accuracy can be changed by adjusting parameters. In such cases, the load may be adjusted by adjusting parameters according to the allocated calculation amount. When adjusting the processing load by adjusting image processing or calculation accuracy, the application 10, etc., can be executed without disrupting the processing cycle, as shown in the examples of Figures 6(b) and 6(c).

[0037] (Round Robin) In the description of FIG. 4, the computational load is allocated to applications with lower priority, but allocating the computational load in this manner may allow applications with higher priority to achieve the desired performance, but may also significantly delay the processing of applications with lower priority. To prevent this, a round-robin allocation process may be performed, in which the computational load is allocated to each application in proportion to its priority. FIG. 7 shows an example of the allocation process using the round-robin method. FIG. 7 is a flow chart showing another example of the computational load allocation process according to the embodiment. The same steps as those in FIG. 4 are designated by the same reference numerals and will be briefly described. First, the allocation unit 103 calculates the allocable power (step S1). Next, the allocation unit 103 allocates the computational load according to the request (step S2). Next, the allocation unit 103 determines whether the power consumption corresponding to the total demand for the computational load exceeds the allocable power (step S3). If it does not exceed the allocable power (step S3; No), the allocation unit 103 allocates the requested computational load to each application, and the allocation is completed (step S7).

[0038] If it exceeds the allocable power (step S3; Yes), the allocating unit 103 allocates the computational load according to the priority (step S4A). For example, the allocation ratio according to the priority is predetermined, such as 100% for high priority, 80% for medium priority, and 50% for low priority. Based on the information of the predetermined ratios, the allocating unit 103 allocates 100% of the computational load to the high priority application, 80% of the computational load to the medium priority application, and 50% of the computational load to the low priority application. Next, the allocating unit 103 determines whether the power consumption corresponding to the total demand for computational load (total demand after allocation in step S4A) exceeds the allocable power (step S5). If it does not exceed the allocable power (step S5; No), the allocating unit 103 allocates the computational load allocated in step S4A to the applications 10 to N0, thereby completing the allocation (step S7).

[0039] If it exceeds the allocable power (step S5; Yes), the allocating unit 103 reduces the amount of calculation allocated to each application while maintaining the ratio of the amount of calculation (step S6A). For example, the allocating unit 103 allocates 100% × 0.9 of the amount of calculation to the high-priority application, 80% × 0.9 of the amount of calculation to the medium-priority application, and 50% × 0.9 of the amount of calculation to the low-priority application. Next, the allocating unit 103 determines whether the power consumption corresponding to the total demand for the amount of calculation (total demand after the allocation in step S6A) exceeds the allocable power (step S6B). If it does not exceed the allocable power (step S6B; No), the allocating unit 103 allocates the amount of calculation allocated in step S6A to applications N0 to N0, thereby completing the allocation of the amount of calculation (step S7). If it exceeds the allocable power (step S6B; Yes), the allocating unit 103 repeats the process from step S6A. For example, in the above example, the allocation unit 103 allocates 100%×0.9×0.9 of the calculation amount to the high-priority application, 80%×0.9×0.9 of the calculation amount to the medium-priority application, and 50%×0.9×0.9 of the calculation amount to the low-priority application. According to the round robin method, even when the allocatable power is small, it is possible to allocate a certain amount of power to low-priority applications.

[0040] (Application example) Next, an application example of the computing system 1 of this embodiment will be described. For example, the computing system 1 can be applied to a control device for an autonomous vehicle. For example, a road surface recognition application in an autonomous vehicle is designated as application 20 (medium priority), an obstacle detection application as application 10 (high priority), and a driver state recognition application as application N0 (low priority). A GPU 2 installed in a moving object such as a vehicle often cannot be operated at maximum performance due to heat dissipation constraints. Therefore, during normal operation, autonomous driving is performed by setting a computational load with limited processing performance for each of the road surface recognition (application 20), obstacle detection (application 10), and driver state recognition (application N0). This keeps the temperature of the GPU 2 low. When an obstacle is detected on the path by the obstacle detection (application 10), the power allocation (computational load allocation) to the obstacle detection application 10, which has the highest priority in such a situation, is increased, allowing the GPU 2 to operate at maximum performance. In this way, control may be performed to reduce processing performance under normal circumstances to suppress heat generation from GPU 2, and allocate a larger amount of calculations than normal only for a limited time until the temperature of GPU 2 rises when necessary. Also, in this case, if the temperature rises too much due to conditions such as the outside temperature or the original temperature of GPU 2, the amount of calculations allocated to the low-priority driver state recognition (application No. 0) can be reduced, thereby ensuring the amount of calculations allocated to obstacle detection (application No. 10).

[0041] (effect) As described above, according to this embodiment, it is possible to prevent the processor temperature from exceeding a limit value, while allocating to an application the amount of calculation (i.e., power) required to execute the application according to the priority of the application.

[0042] In the above embodiment, the priority of an application is determined in advance using the setting information illustrated in FIG. 3, for example. However, for example, when a calculation amount is requested (step S11), the priority may be notified to the controller 100 together with the desired calculation amount. The controller 100 allocates the calculation amount based on the notified priority. This enables power allocation that can accommodate situations where the priority of an application changes depending on the situation, as illustrated in the application example.

[0043] FIG. 8 is a diagram illustrating an example of a hardware configuration of a computing system according to an embodiment. The computer 900 includes a processor 901, a main memory device 902, an auxiliary memory device 903, an input / output interface 904, and a communication interface 905. The computing system 1 is implemented in the computer 900. The above-described functions are stored in the auxiliary memory device 903 in the form of a program. The processor 901 reads the program from the auxiliary memory device 903, loads it into the main memory device 902, and executes the above-described processing in accordance with the program. The processor 901 also allocates a storage area in the main memory device 902 in accordance with the program. The processor 901 also allocates a storage area in the auxiliary memory device 903 for storing data being processed in accordance with the program.

[0044] A program for implementing all or part of the functions of the computing system 1 may be recorded on a computer-readable recording medium, and the program may be loaded into the computer system and executed to perform processing by each functional unit. The term "computer system" as used herein includes hardware such as an OS and peripheral devices. If a WWW system is used, the term "computer system" also includes the homepage provision environment (or display environment). The term "computer-readable recording medium" refers to portable media such as CDs, DVDs, and USBs, as well as storage devices such as hard disks built into the computer system. If the program is distributed to the computer 900 via a communication line, the computer 900 may load the program into the main storage device 902 and execute the above-described processing. The program may be for implementing part of the above-described functions, or may be capable of implementing the above-described functions in combination with a program already stored in the computer system.

[0045] As described above, several embodiments according to the present disclosure have been described, but all of these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope of the invention and its equivalents as defined in the claims, as well as in the scope and spirit of the invention.

[0046] <Additional Notes> The computing system, the control method for the computing system, and the program described in each embodiment can be understood, for example, as follows.

[0047] (1) A computing system according to a first aspect includes a means for calculating the maximum processor power that can be allocated to a plurality of tasks (execution tasks of applications 10 to N0) as a whole (S1), a means for determining whether the power based on the total amount of calculations allocated when the amount of calculations required by each of the tasks is allocated exceeds the maximum power (S3), and if it is determined that the maximum power will be exceeded, a means for allocating the amount of calculations to the tasks according to the priority of the tasks (S4, S6, S4A, S6A), and a means for adjusting the load of the tasks based on the allocated amount of calculations (S14). This allows power to be allocated to each task according to its priority while preventing the processor's maximum power from exceeding its limit.

[0048] (2) A computing system according to a second aspect is the computing system of (1), in which the means for allocating the computational load reduces the computational load to be allocated in order from the task with the lowest priority until the power based on the total computation load does not exceed the maximum power (FIG. 4). This allows more power to be allocated to higher priority tasks.

[0049] (3) A computing system according to a third aspect is the computing system of (1), wherein the means for allocating the computational amount allocates the computational amount to each of the plurality of tasks based on the ratio of the computational amount allocation according to the priority set so that a larger amount of computational amount is allocated to the task with a higher priority (FIG. 7). This allows not only a large amount of power to be allocated to high-priority tasks, but also a certain amount of power to be allocated to low-priority tasks.

[0050] (4) A computing system according to a fourth aspect is the computing system of (1) to (3), wherein the load is the execution frequency (processing frequency) of the task. This allows tasks to be executed at a frequency that corresponds to the amount of calculation assigned to them.

[0051] (5) A computing system according to a fifth aspect is the computing system of (4), wherein the load adjusting means delays or skips the task based on the amount of calculation assigned to the task. If the amount of calculation assigned to a task is small, the processor's power consumption can be reduced by delaying or skipping the task.

[0052] (6) A computing system according to a sixth aspect is the computing system of (1) to (3), wherein the load is a load of a computing process assigned to the task. This allows the processing to be executed with a load according to the allocated amount of calculation.

[0053] (7) A computing system according to a seventh aspect is the computing system of (6), in which the computing process is image processing, and the task with a high priority processes an image with a large amount of information. The load of calculation processing can be adjusted by adjusting the resolution, size, etc. of the image to be processed.

[0054] (8) The computing system according to the eighth aspect is the computing system of (6), in which multiple processes with different calculation accuracy that achieve the same purpose are prepared for each task, and the task with the higher priority is made to execute the process with the higher calculation accuracy. By adjusting the calculation accuracy, the load of the calculation process can be adjusted.

[0055] (9) A control method for a computing system according to a ninth aspect includes a step of calculating the maximum computational amount of a processor that can be allocated to all of a plurality of tasks; a step of determining whether the total of the allocated computational amounts exceeds the maximum computational amount when the computational amount required by each of the tasks is allocated; and a step of allocating the computational amount according to the priority of the task if it is determined that the total exceeds the maximum computational amount; and a step of adjusting the load of the task based on the allocated computational amount.

[0056] (10) A program according to a tenth aspect causes a computer to function as a means for calculating the maximum amount of computation that can be allocated to a processor for allocating a plurality of tasks; a means for determining whether the total amount of computation that is allocated when the amount of computation required by each of the tasks exceeds the maximum amount of computation; a means for allocating the amount of computation according to the priority of the task if it is determined that the total amount of computation exceeds the maximum amount of computation; and a means for adjusting the load of the task based on the allocated amount of computation. [Explanation of symbols]

[0057] 1. Computational System 2. GPU 3...Storage section 4...Display device 10, 20, No. 0... App (application program) 11, 21, N1...Load adjustment section 12, 22, N2...Communications Department 100... Controller 101...Visualization section 102...Temperature monitoring section 103 Allocation section 104 Communications Department 900···Computer 901 Processor 902...Main memory 903...Auxiliary storage device 904 Input / Output Interface 905···Communication Interface

Claims

1. means for calculating the maximum power of a processor that can be allocated to all of a plurality of tasks; means for determining whether or not the power required based on the total amount of calculation allocated when the amount of calculation required by each of the tasks is allocated exceeds the maximum power; means for allocating the amount of calculation to the task in accordance with the priority of the task when it is determined that the maximum power will be exceeded; means for adjusting the load of the task based on the allocated amount of calculation; A computing system comprising:

2. the means for allocating the computational amount reduces the computational amount to be allocated in order from the task with the lowest priority until the power based on the total of the computational amounts does not exceed the maximum power. The computing system of claim 1 .

3. the means for allocating the computational amount allocates the computational amount to each of the plurality of tasks based on a ratio of allocation of the computational amount according to priority set so that a larger ratio of the computational amount is allocated to the task with a higher priority. The computing system of claim 1 .

4. The load is the execution frequency of the task.

4. A computing system according to claim 1, claim 2 or claim 3.

5. the load adjusting means delays or skips the task based on the amount of calculation assigned to the task; The computing system of claim 4.

6. The load is a computational load to be assigned to the task.

4. A computing system according to claim 1, claim 2 or claim 3.

7. the computational processing is image processing, and the task with the higher priority is made to process an image with a large amount of information; The computing system of claim 6.

8. A plurality of processes with different calculation accuracy that achieve the same purpose are prepared for each task, The task with the higher priority is made to execute the process with the higher calculation precision. The computing system of claim 6.

9. calculating a maximum processor power that can be allocated to all of the tasks; determining whether or not the power required based on the total amount of calculation allocated when the amount of calculation required by each of the tasks is allocated exceeds the maximum power; If it is determined that the maximum power is exceeded, allocating the computational complexity to the task in accordance with the priority of the task; adjusting the load of the task based on the allocated amount of calculation; A method for controlling a computing system having the above-mentioned components.

10. Computer, means for calculating the maximum processor power that can be allocated to all of the multiple tasks; means for determining whether or not the power required based on the total amount of calculation allocated when the amount of calculation required by each of the tasks is allocated exceeds the maximum power; means for allocating the amount of calculation to the task in accordance with the priority of the task when it is determined that the maximum power will be exceeded; means for adjusting the load of the task based on the allocated amount of calculation; A program to function as a

Citation Information

Patent Citations

  • Production of copolyester

    JP1988037121A

  • Arithmetic unit

    JP2007122337A

  • Electronic equipment with communication functions, processing control method, and processing control program

    JP2007208460A

  • Selective GPU throttling

    US20150348226A1

  • Integrated circuit and sensor data processing method

    US20220044043A1