Server, program, and split accelerator allocation method

The server system optimizes accelerator usage by employing a load monitoring and management unit to dynamically switch between large and small divided accelerators based on load demands, addressing inefficiencies and reducing power consumption and restarts, thus enhancing server efficiency.

WO2025009056A1PCT designated stage expired Publication Date: 2025-01-09NT T INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/024753
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-04
Publication Date
2025-01-09

AI Technical Summary

Technical Problem

Existing server technologies face inefficiencies in using accelerators, particularly when switching between divided accelerator sizes, leading to increased power consumption and application restarts, especially in environments with varying load demands.

Method used

A server system equipped with a load monitoring unit and an accelerator management unit that dynamically allocates and switches between large and small divided accelerators based on application load, minimizing the number of accelerators used and reducing restarts by optimizing accelerator usage and power management.

Benefits of technology

This approach enables efficient use of accelerators, reduces power consumption, and minimizes application restarts by dynamically adjusting accelerator allocation and switching, thereby improving overall server efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023024753_09012025_PF_FP_ABST
    Figure JP2023024753_09012025_PF_FP_ABST
Patent Text Reader

Abstract

A server (100) comprises: a load monitoring unit (112) for monitoring the load of a split accelerator, which is divided into sizes corresponding to loads of an application (see application processing unit (111)); and an accelerator management unit (113) for allocating a split accelerator used by the application in accordance with the load, and instructing that the split accelerator to be used for the application be switched. The split accelerator may be a large split accelerator that is large in size, or a small split accelerator that is small in size, the split accelerator being sized according to the maximum load of the application.
Need to check novelty before this filing date? Find Prior Art

Description

Server, program, and division accelerator allocation method

[0001] The present invention relates to a server and a divided accelerator allocation method that efficiently uses an accelerator installed in a computer.

[0002] In computers including servers, processing is mainly performed by a central processing unit (CPU). However, depending on the processing content, an accelerator installed in the computer may perform the processing. For example, some servers are equipped with a Secure Sockets Layer (SSL) accelerator that performs encrypted communication processing and a Graphics Processing Unit (GPU) accelerator that performs machine learning processing.

[0003] Some accelerators can be divided into multiple parts so that multiple applications can use the divided accelerators (see Non-Patent Documents 1 and 2). By dividing one accelerator and allowing as many applications as possible to use it, the power consumption of the unused accelerator can be reduced. This type of accelerator usage is particularly effective on servers running virtual machines or containers (see Non-Patent Document 3).

[0004] NVIDIA Multi-Instance GPU User Guide, [online], [Retrieved June 15, 2023], Internet<URL:https: / / docs.nvidia.com / datacenter / tesla / mig-user-guide / > NVIDIA GPU Operator with MIG, [online], [Retrieved June 15, 2023], Internet<URL:https: / / docs.nvidia.com / datacenter / cloud-native / gpu-operator / gpu-operator-mig.html> Kubernetes Documentation / Tasks / GPU Scheduling, [online], [Retrieved June 15, 2023], Internet<URL:https: / / kubernetes.io / ja / docs / tasks / manage-gpus / scheduling-gpus / >

[0005] Even for accelerators that can be partitioned so that multiple applications can use them, switching the partition size may require restarting the application that uses the accelerator (see Non-Patent Document 2). However, restarting an application due to switching is desirable to avoid as much as possible. Also, it is desirable to reduce the number of accelerators used by an application by switching between the partitioned accelerators, thereby reducing power consumption. Ultimately, it is desirable to utilize a computer efficiently. The present invention has been made in light of this background, and its objective is to enable the use of a partitioned accelerator while ensuring efficient computer utilization.

[0006] In order to solve the above-mentioned problems, the server of the present invention includes a load monitoring unit that monitors the load of a split accelerator, which is an accelerator divided into sizes according to the load of an application, and an accelerator management unit that allocates a split accelerator to be used by the application according to the load and instructs switching of the split accelerator to be used for the application.

[0007] The present invention allows for the use of partitioned accelerators while ensuring efficient computer utilization.

[0008] 1 is a functional block diagram of a server according to the present embodiment. FIG. 2 is a diagram showing an accelerator before division according to the present embodiment. FIG. 3 is a diagram showing division of an accelerator according to the present embodiment. FIG. 4 is a diagram showing an example of allocation of small divided accelerators according to the present embodiment. FIG. 5 is a diagram showing an example of allocation of large divided accelerators according to the present embodiment. FIG. 6 is a diagram showing allocation of divided accelerators when the load on a large divided accelerator (application processing unit) according to the present embodiment changes from high load to normal load. FIG. 7 is a diagram showing allocation of divided accelerators when the load on a large divided accelerator (application processing unit) according to the present embodiment changes from high load to normal load. FIG. 8 is a diagram showing allocation of divided accelerators when the load on a large divided accelerator (application processing unit) according to the present embodiment changes from high load to normal load. FIG. 9 is a flowchart of accelerator switching processing according to the present embodiment. FIG. 10 is a hardware configuration diagram showing an example of a computer that realizes the functions of the server according to the above embodiment.

[0009] Next, a server equipped with multiple accelerators in an embodiment of the present invention will be described. Multiple applications run on the server. The accelerators are divided, and the applications use the divided accelerators (divided accelerators). The accelerators are divided into, for example, large-sized large-divided accelerators that handle high-load application processing, and small-sized small-divided accelerators that handle normal-load application processing.

[0010] The server allocates (places) small-scale accelerators to a small number of accelerators, thereby reducing the number of accelerators used. The server can reduce power consumption by operating unused accelerators in power-saving mode. In addition, applications are restarted only when the size of the accelerator partition changes, reducing the number of times the application is restarted.

[0011] 1 is a functional block diagram of a server 100 according to this embodiment. The server 100 is a computer on which a plurality of applications (see application processing unit 111 described later) that provide network services run. The applications may be virtual machines or containers.

[0012] The server 100 includes a control unit 110, a storage unit 120, a communication unit 180, and multiple accelerators 200. The communication unit 180 transmits and receives communication data to and from a computer (e.g., a smartphone or a personal computer) that requests a network service. The accelerators 200 receive instructions from the server 100 main body (see the control unit 110) and execute part of the processing of the network service. Examples of the processing include cryptographic communication processing and machine learning processing.

[0013] <Server: Storage Unit> The storage unit 120 includes storage devices such as a read-only memory (ROM), a random access memory (RAM), a solid-state drive (SSD), etc. The storage unit 120 stores accelerator settings 130, application data 140, an application program 127, and a program 128.

[0014] The application data 140 is data accessed by an application running on the server 100. The application program 127 includes a description of the processing of an application that provides a network service. The program 128 includes a description of the switching processing (see FIG. 9 described later) of the divided accelerators used by the application.

[0015] <Storage Unit: Accelerator Settings> The accelerator settings 130 store information related to the division of the accelerator 200, which will be described below. FIG. 2 is a diagram showing the accelerators 210, 220, 230, and 240 before division according to this embodiment. The server 100 in this embodiment is assumed to be equipped with four accelerators 210, 220, 230, and 240. The accelerators 210, 220, 230, and 240 are collectively referred to as accelerators 200. The accelerator 200 can be divided into multiple parts. An application can combine one or more divided accelerators and use them as a single accelerator. In the following description, the accelerator 200 can be divided into seven parts.

[0016] FIG. 3 is a diagram showing the division of the accelerator 200 according to this embodiment. The size of the division is determined by the amount of accelerator processing required by the application. In this embodiment, the load of an application is divided into a high load and a normal load, which is a load lower than the high load. For a high-load application, five of the seven divided accelerators are combined into one large-division accelerator, which is a single accelerator. The large-division accelerator is an accelerator that can handle accelerator processing according to the high-load application. Specifically, the large-division accelerator is an accelerator that has the processing capacity of an accelerator that can handle the application with the highest load.

[0017] Furthermore, for normal load applications, two of the seven divided accelerators are combined as a single accelerator, called a small-partition accelerator. A normal load is lower than a high load (maximum load). A small-partition accelerator is an accelerator that can handle accelerator processing according to normal load applications, and is the smallest-sized divided accelerator that can handle normal loads.

[0018] The accelerator 200 is first divided into small-divided accelerators equal to the number of applications. The accelerator 200 is divided so as to pack as many small-divided accelerators as possible into one accelerator 200 (so as to maximize the number of small-divided accelerators). In the following explanation, it is assumed that there are four applications. Then, as shown in FIG. 3 , the accelerator 210 is first divided into small-divided accelerators 211, 212, and 213, and then the accelerator 220 is divided into small-divided accelerator 221. In this way, as few accelerators 200 as possible are divided into small-divided accelerators, and division is performed so that as many free accelerators 200 as possible are available. If there are seven applications, three small-divided accelerators are assigned to each of the two accelerators 200, and one small-divided accelerator is assigned to each accelerator 200.

[0019] If two of the seven divided accelerators are combined into small divided accelerators 211, 212, and 213, one of the seven divided accelerators will be left over. This remaining divided accelerator will be used as the small divided accelerator 213. The small divided accelerator 213 is an accelerator formed by combining three divided accelerators into one.

[0020] The remaining accelerator 200 is divided into large division accelerators. As a result, as shown in Figure 3, accelerators 220, 230, and 240 are divided into large division accelerators 226, 236, and 246, respectively. When four large division accelerators are used, accelerator 210 is divided into large division accelerator 216 (see Figure 5, which will be described later). Hereinafter, the small division accelerators 211 to 213, and 221 and the large division accelerators 216, 226, 236, and 246 will be collectively referred to as divided accelerators.

[0021] 3, three subdivision accelerators 211, 212, and 213 are assigned to the accelerator 210, and one subdivision accelerator 221 is assigned to the accelerator 220. Alternatively, three subdivision accelerators may be assigned to the accelerator 220, and one subdivision accelerator may be assigned to the accelerator 210 (see FIG. 8, which will be described later). Alternatively, three subdivision accelerators may be assigned to the accelerator 240, and one subdivision accelerator may be assigned to the accelerator 230.

[0022] In this way, the accelerators 200 are divided so as to pack small-division accelerators into as few accelerators 200 as possible (to maximize the number), and so as to increase the number of accelerators to which small-division accelerators are not assigned. Large-division accelerators are assigned to accelerators 200 to which small-division accelerators are not assigned. Note that if large-division accelerators can be assigned to the remaining part of the accelerator 200 to which small-division accelerators are not assigned after small-division accelerators have been assigned, they are assigned in this way (see accelerator 220 in FIG. 3).

[0023] In this way, the accelerator 200 is divided so as to pack the small divided accelerators first, and then the accelerator 200 is divided so as to pack the large divided accelerators. The divided accelerators are allocated so as to pack as few accelerators 200 as possible, and the number of available accelerators 200 increases.

[0024] In this way, it is possible to reduce the number of accelerators 200 used when all applications are under normal load. Also, it is possible to reduce the number of accelerators 200 used even when some applications are under high load. As will be described later, reducing the number of accelerators 200 used can reduce power consumption.

[0025] The accelerator setting 130 stores information related to the division of the accelerator 200 as described above. Note that the accelerator 220 may be divided into small division accelerators 221, 222, and 223 (see FIG. 8 ). The same applies to the accelerators 230 and 240, and the accelerator setting 130 stores information related to such division of the accelerator 200.

[0026] 1, the control unit 110 will be described. The control unit 110 includes a CPU, and is provided with an application processing unit 111, a load monitoring unit 112, an accelerator management unit 113, and a power management unit 114.

[0027] <<Control Unit: Application Processing Unit>> The application processing unit 111 processes service requests and provides network services using the small-partition accelerators 211 to 213, 221 or the large-partition accelerators 216, 226, 236, 246 (see FIG. 3 , and FIGS. 4 and 5 described below). The application processing unit 111 is not limited to an application process running on an OS, but may also be a virtual machine or a container. In the following description, the application processing unit 111 and the application may be considered to be the same. Although there are four applications, they will be referred to as application processing units 111#1, 111#2, 111#3, and 111#4 when distinguishing between them.

[0028] <<Control Unit: Load Monitoring Unit>> The load monitoring unit 112 monitors the load (e.g., usage rate) of the divided accelerator. In addition, the load monitoring unit 112 may monitor the load status of the application processing unit 111, thereby monitoring the load of the divided accelerator corresponding to the application processing unit 111.

[0029] <<Control Unit: Accelerator Management Unit>> The accelerator management unit 113 switches the divided accelerators used by the application processing unit 111 based on the load acquired by the load monitoring unit 112. For example, the accelerator management unit 113 determines that the application processing unit 111 is under high load if the average load over a predetermined time period exceeds a predetermined value. Furthermore, the accelerator management unit 113 determines that the application processing unit 111 is under normal load if the average load over a predetermined time period is less than a predetermined value.

[0030] When the load changes from normal to high, the accelerator management unit 113 instructs the application processing unit 111 to switch the divided accelerator to be used from the small divided accelerator to the large divided accelerator. When the load changes from high to normal, the accelerator management unit 113 instructs the application processing unit 111 to switch the divided accelerator to be used from the large divided accelerator to the small divided accelerator. An example of switching the divided accelerator will be described below.

[0031] 4 is a diagram showing an example of allocation of small-partition accelerators according to this embodiment. In FIG. 4, the application processing units 111#1, 111#2, 111#3, and 111#4 use small-partition accelerators 211, 212, 213, and 221, respectively. The loads of the small-partition accelerators 211, 212, 213, and 221 (application processing units 111#1, 111#2, 111#3, and 111#4) are normal loads. In FIG. 4 and subsequent figures, the application processing units 111#1, 111#2, 111#3, and 111#4 will be referred to as AP#1, AP#2, AP#3, and AP#4, respectively.

[0032] Now, suppose that the load on the small divided accelerator 211 (application processing unit 111#1) changes to a high load. Then, the accelerator management unit 113 notifies the application processing unit 111#1 to instruct it to switch the divided accelerator to be used to the large divided accelerator 226. The application processing unit 111#1 restarts and switches the divided accelerator to be used to the large divided accelerator 226.

[0033] Although it is possible to switch to the large divided accelerator 236 or the large divided accelerator 246, the accelerator management unit 113 assigns the divided accelerators so as to pack them into as few accelerators 200 as possible, and instructs the application processing unit 111 to switch. In other words, the accelerator management unit 113 assigns the divided accelerators so as to increase the number of available accelerators 200, and instructs the application processing unit 111 to switch.

[0034] The same applies when the load on the small divided accelerators 212 and 213 (application processing units 111#2 and 111#3) changes to a high load. Upon receiving an instruction from the accelerator management unit 113, the application processing units 111#2 and 111#3 restart and switch the divided accelerator to be used to the large divided accelerators 236 and 246 (see FIG. 5, which will be described later).

[0035] The same applies when the load on the small divided accelerator 221 (application processing unit 111#4) subsequently changes to a high load. Upon receiving the instruction from the accelerator management unit 113, the application processing unit 111#4 restarts and switches the divided accelerator to be used to the large divided accelerator 216.

[0036] 5 is a diagram showing an example of allocation of large division accelerators according to this embodiment. In FIG. 5, the application processing units 111#1, 111#2, 111#3, and 111#4 use the large division accelerators 226, 236, 246, and 216, respectively. The large division accelerators 226, 236, 246, and 216 (application processing units 111#1, 111#2, 111#3, and 111#4) are under high load.

[0037] Now, let us assume that the load on the large divided accelerator 226 (application processing unit 111#1) changes to a normal load. Then, the accelerator management unit 113 notifies the application processing unit 111#1 to instruct it to switch the divided accelerator to be used to the small divided accelerator 211. The application processing unit 111#1 restarts and switches the divided accelerator to be used to the small divided accelerator 211.

[0038] Furthermore, suppose that the load on the large partition accelerator 216 (application processing unit 111#4) changes to a normal load. Then, the partition accelerator used by the application processing unit 111#4 switches to the small partition accelerator 221. Next, suppose that the load on the large partition accelerators 236 and 246 (application processing units 111#2 and 111#3) changes to a normal load. Then, the partition accelerators used by the application processing units 111#2 and 111#3 switch to the small partition accelerators 212 and 213, as shown in FIG. 4.

[0039] The above explanation is about switching when the load changes from high to normal in the order of the application processing units 111#1, 111#4, 111#2, and 111#3 in the allocation state of the divided accelerators shown in Fig. 5. Next, we will explain the case where the load changes from high to normal in the order of the application processing units 111#2, 111#3, 111#1, and 111#4.

[0040] 6 is a diagram illustrating allocation of partitioned accelerators when the loads of the large partitioned accelerators 236 and 246 (the application processing units 111#2 and 111#3 shown in FIG. 5) according to this embodiment change from a high load to a normal load. The partitioned accelerators used by the application processing units 111#2 and 111#3 are switched to the small partitioned accelerators 211 and 221, respectively.

[0041] 7 is a diagram showing the allocation of divided accelerators when the load on the large divided accelerator 226 (the application processing unit 111#1 shown in FIG. 6) according to this embodiment changes from a high load to a normal load. The divided accelerator used by the application processing unit 111#1 that receives an instruction from the accelerator management unit 113 is switched to the small divided accelerator 222. Although it is also possible to switch to the small divided accelerator 231 or the small divided accelerator 241, the accelerator management unit 113 assigns the divided accelerators so as to pack them into as few accelerators 200 as possible, and then instructs the switch.

[0042] 8 is a diagram showing allocation of divided accelerators when the load on the large divided accelerator 216 (the application processing unit 111#4 shown in FIG. 7) according to this embodiment changes from a high load to a normal load. The divided accelerator used by the application processing unit 111#4 that receives an instruction from the accelerator management unit 113 is switched to the small divided accelerator 223.

[0043] Although it is possible to switch to the small-division accelerator 212 (see FIG. 3), the accelerator management unit 113 assigns the small-division accelerators so as to pack them into as few accelerators 200 as possible (so that one accelerator 200 has the maximum number of small-division accelerators), and then instructs the switching. The accelerator management unit 113 instructs the application processing unit 111#4 to switch to the small-division accelerator 223 in the accelerator 220 to which the two small-division accelerators 221 and 222 are already assigned.

[0044] The accelerator 220 has three small division accelerators 221, 222, and 223, but the configuration is the same as in Fig. 4, in that one accelerator 220 has the three small division accelerators 221, 222, and 223, and the accelerator 210 has the remaining small division accelerator 211. In other words, as few accelerators 200 as possible (accelerators 220 in Fig. 8) are first divided into small division accelerators equal to the number of applications, and then the remaining accelerators 200 are divided into large division accelerators.

[0045] <<Control Unit: Power Management Unit>> Returning to Fig. 1 , the description of the control unit 110 will continue. The power management unit 114 switches unused accelerators 200 to a power saving mode. Furthermore, the power management unit 114 switches unused accelerators 200 to a normal mode when they are used. For example, in the state shown in Fig. 4 , when the application processing unit 111#2 switches the partitioned accelerator to the large partitioned accelerator 236, the power management unit 114 switches the power mode of the accelerator 230 to the normal mode.

[0046] 5, when the application processing unit 111#1 switches the divided accelerator to the small divided accelerator 211, the accelerator 220 is no longer used. At this time, the power management unit 114 switches the power mode of the accelerator 220 to the power saving mode.

[0047] 9 is a flowchart of the accelerator switching process according to this embodiment. The process of switching the divided accelerators used by the application processing unit 111 in accordance with the accelerator usage status will be described with reference to FIG.

[0048] In step S11, the load monitoring unit 112 acquires the load (usage rate) of each divided accelerator and notifies the accelerator management unit 113. In step S12, if the accelerator management unit 113 determines that the load on the divided accelerator has changed and that switching of the divided accelerator is necessary (step S12 → YES), the process proceeds to step S13. If the accelerator management unit 113 determines that switching of the divided accelerator is not necessary (step S12 → NO), the process returns to step S11. The accelerator management unit 113 determines whether switching is necessary by referring to the average load over a predetermined period of time.

[0049] In step S13, the accelerator management unit 113 determines an accelerator to switch to and assigns it to the application processing unit 111. If the application processing unit 111 changes from a normal load to a high load in step S12, the accelerator management unit 113 assigns an unused large divided accelerator to the application processing unit 111. If the application processing unit 111 changes from a high load to a normal load, the accelerator management unit 113 assigns an unused small divided accelerator to the application processing unit 111. The accelerator management unit 113 assigns the divided accelerators so as to pack them into as few accelerators 200 as possible (see FIGS. 4 to 8).

[0050] In step S14, if the accelerator to be switched to is being used (step S14→YES), the accelerator management unit 113 proceeds to step S16. If the accelerator to be switched to is not being used (step S14→NO), the accelerator management unit 113 proceeds to step S15. In step S15, the accelerator management unit 113 instructs the power management unit 114 to switch the accelerator to the normal mode. The power management unit 114 switches the accelerator to the normal mode.

[0051] In step S16, the accelerator management unit 113 notifies the application processing unit 111, which is to switch the accelerator to be used, of the split accelerator to be switched to. In step S17, the application processing unit 111 restarts and switches the split accelerator to be used.

[0052] In step S18, if the accelerator before the switch is in use (step S18→YES), the accelerator management unit 113 returns the process to step S11. If the accelerator after the switch is not in use (step S18→NO), the process proceeds to step S19. In step S19, the accelerator management unit 113 instructs the power management unit 114 to switch the accelerator before the switch to power saving mode. The power management unit 114 switches the accelerator before the switch to power saving mode.

[0053] <<Features of the Server>> The accelerator management unit 113 instructs the application processing unit 111 to switch the size of the split accelerator to be used depending on the load on the split accelerator (application processing unit 111). The application processing unit 111 uses the instructed split accelerator after restarting. The split accelerator to be used will not be switched while the size remains unchanged. The application processing unit 111 restarts only when the size of the split accelerator changes, which reduces the number of restarts.

[0054] The accelerator management unit 113 allocates small-sized divided accelerators, which are divided accelerators, so as to aggregate them into a small number of accelerators (see FIGS. 4 and 8). Furthermore, the accelerator management unit 113 (power management unit 114) switches unused accelerators to a power-saving mode. In this way, the server 100 can reduce power consumption. In this way, the server 100 can use itself efficiently.

[0055] Although several embodiments of the present invention have been described above, these embodiments are merely examples and do not limit the technical scope of the present invention. For example, although the above-described embodiments have been described using a server that provides network services as an example, the present invention may also be applied to a personal computer that is used by a single user.

[0056] In the above embodiment, the application processing unit 111 is restarted when switching the split accelerator to be used. When using a predetermined (assigned) split accelerator, if switching is possible without restarting, restarting is not necessary. For example, if it is predetermined that the application processing unit 111#1 uses the small split accelerator 211 (see FIG. 4) when using a small split accelerator and the large split accelerator 226 when using a large split accelerator, restarting the application processing unit 111#1 is not necessary.

[0057] Furthermore, the following configuration may be adopted. Similarly to the accelerators 210 and 220, the accelerators 230 and 240 are divided into small-partition accelerators 231, 232, 233, 241, 242, and 243 (not shown). Each application processing unit 111 determines in advance which of the small-partition accelerators 211, 212, 213, 221, 222, 223, 231, 232, 233, 241, 242, and 243 and the large-partition accelerators 216, 226, 236, and 246 it will use. This configuration allows the application processing unit 111 to switch to the divided accelerator instructed by the accelerator management unit 113 without restarting. This configuration reduces interruptions to the application processing unit 111 that accompany the switching, allowing for efficient use of the server 100.

[0058] The present invention can take on various other embodiments, and various modifications such as omissions and substitutions can be made without departing from the spirit of the present invention. These embodiments and modifications are included in the scope and spirit of the invention described in this specification, etc., and are also included in the invention described in the claims and their equivalents.

[0059] <Hardware Configuration> The server 100 according to the above-described embodiment is realized by a computer 900 having a configuration as shown in Fig. 10, for example. Fig. 10 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the server 100 according to the above-described embodiment. The computer 900 includes a CPU 901, a ROM 902, a RAM 903, an SSD 904, an input / output interface 905 (referred to as an input / output I / F (Interface) in Fig. 10), a communication interface 906 (referred to as a communication I / F in Fig. 10), and a media interface 907 (referred to as a media I / F in Fig. 10). The computer 900 may include a hard disk drive (HDD) instead of the SSD 904, or may include a HDD in addition to the SSD 904.

[0060] The CPU 901 operates based on programs stored in the ROM 902 or the SSD 904, and performs control by the control unit 110 in Fig. 1. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 starts up, programs related to the hardware of the computer 900, and the like. The CPU 901 controls an input device 910 such as a mouse or keyboard, and an output device 911 such as a display or printer, via an input / output interface 905. The CPU 901 acquires data from the input device 910 and outputs generated data to the output device 911 via the input / output interface 905.

[0061] The SSD 904 stores programs executed by the CPU 901 and data used by the programs. The communication interface 906 receives data from other devices (not shown) via a communication network and outputs the data to the CPU 901, and also transmits data generated by the CPU 901 to other devices via the communication network.

[0062] The media interface 907 reads a program or data stored in the recording medium 912 and outputs it to the CPU 901 via the RAM 903. The CPU 901 loads the program from the recording medium 912 onto the RAM 903 via the media interface 907 and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disk), a magneto-optical recording medium such as an MO (Magneto Optical Disk), a magnetic recording medium, a conductive memory tape medium, a semiconductor memory, or the like.

[0063] For example, when the computer 900 functions as the server 100 according to the embodiment described above, the CPU 901 of the computer 900 executes the program 128 (see FIG. 1 ) loaded onto the RAM 903, thereby realizing the functions of the server 100. The CPU 901 reads and executes the program from the recording medium 912. Alternatively, the CPU 901 may read the program from another device via a communication network, or may install and execute the program 128 from the recording medium 912 onto the SSD 904.

[0064] <Effects> The effects of the server 100 will be described below.

[0065] The server 100 according to the embodiment described above includes a load monitoring unit 112 that monitors the loads of divided accelerators, which are accelerators 200 divided into sizes according to the load of an application (see the application processing unit 111). The server 100 further includes an accelerator management unit 113 that allocates divided accelerators to be used by an application according to the load and instructs switching of the divided accelerators to be used for the application.

[0066] In the server 100, the application processing unit 111 receives the notification and restarts to switch the size of the split accelerator to be used depending on the load. The application processing unit 111 is restarted when the size of the split accelerator changes, which reduces the number of times the application processing unit 111 is restarted.

[0067] The partitioned accelerators according to the above-described embodiments are a large partitioned accelerator sized according to the maximum load that an application can process, and a small partitioned accelerator sized according to a load that is smaller than the maximum load of the large partitioned accelerator.

[0068] With this server 100, the number of times the partition accelerator is switched can be reduced compared to when there are three or more partition sizes, and the interruption time of the application processing unit 111 can be reduced.

[0069] The server 100 according to the embodiment described above further includes a power management unit 114 that changes the operating mode of an accelerator to which no split accelerator is assigned to a power saving mode when the split accelerator used by an application is switched.

[0070] Such a server 100 can reduce the power consumption of accelerators to which no divided accelerator is assigned.

[0071] The divided accelerators according to the above-described embodiment are large divided accelerators whose size corresponds to the maximum load that an application can process, and small divided accelerators whose size corresponds to a load smaller than the maximum load of the large divided accelerator. The accelerator management unit 113 allocates the divided accelerators so that one accelerator has the maximum number of small divided accelerators.

[0072] According to such a server 100, the number of accelerators having divided accelerators can be reduced, and the amount of power consumption of the accelerators can be reduced significantly.

[0073] 100 Server 111 Application processing unit (application) 112 Load monitoring unit 113 Accelerator management unit 114 Power management unit 127 Application program 128 Program 130 Accelerator setting 140 Application data 210, 220, 230, 240 Accelerator 211, 212, 213, 221, 222, 223 Small division accelerator (divided accelerator) 216, 226, 236, 246 Large division accelerator (divided accelerator)

Claims

1. A server comprising: a load monitoring unit that monitors the load of a split accelerator, which is an accelerator divided into sizes according to the load of an application; and an accelerator management unit that assigns a split accelerator to be used by the application according to the load and instructs switching of the split accelerator to be used for the application.

2. The server according to claim 1, wherein the divided accelerators are a large divided accelerator having a size corresponding to a maximum load that the application can process, and a small divided accelerator having a size corresponding to a load smaller than the maximum load of the large divided accelerator.

3. The server according to claim 1, further comprising a power management unit that changes the operating mode of an accelerator to which no split accelerator is assigned to a power saving mode when the split accelerator used by the application is switched.

4. The server according to claim 3, wherein the split accelerators are a large split accelerator having a size corresponding to the maximum load that the application can process, and a small split accelerator having a size corresponding to a load smaller than the maximum load of the large split accelerator, and the accelerator management unit allocates the split accelerators so that one accelerator has a maximum number of small split accelerators.

5. A program for causing a computer equipped with an accelerator to function as the server according to any one of claims 1 to 4.

6. A split accelerator allocation method, in which a server executes the steps of: monitoring the load of a split accelerator, which is an accelerator divided into sizes according to the load of an application; and allocating a split accelerator to be used by the application according to the load, and instructing switching of the split accelerator to be used for the application.

Citation Information

Patent Citations

  • Scaling virtual machine instances

    JP2015529918A

  • Dynamic Transparent Reconfiguration of Multitenant Graphics Processing Units

    JP2023514998A