Inter-accelerator connection system, inter-accelerator connection method, inter-accelerator connection device, and inter-accelerator connection program
The accelerator connection system addresses transcoding scalability issues by using accelerators in general-purpose servers configured in a daisy chain, dynamically scaling servers based on load, optimizing performance and reducing server numbers.
Patent Information
- Application Number
- PCT/JP2024/012172
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-27
- Publication Date
- 2025-10-02
AI Technical Summary
Conventional transcoding systems face performance scalability issues due to heavy decoding and encoding processes, leading to bottlenecks and increased costs when handling a large number of users or changes in specifications, and existing distributed systems fail to optimally scale the number of servers required for transcoding.
An accelerator connection system that utilizes general-purpose servers equipped with accelerators for decoding, data conversion, and encoding, configured in a daisy chain, dynamically scales out or in servers based on load, and optimizes transcoding performance by selecting appropriate servers for each process.
The system optimizes transcoding performance and reduces the number of servers required, improving scalability and reducing costs by using accelerators for specific processes while maintaining efficient processing capacity.
Smart Images

Figure JP2024012172_02102025_PF_FP_ABST
Abstract
Description
Accelerator connection system, accelerator connection method, accelerator connection device, and accelerator connection program
[0001] The present invention relates to an accelerator interconnection system, an accelerator interconnection method, an accelerator interconnection device, and an accelerator interconnection program that use an accelerator that realizes transcoding, which includes decoding, data conversion, and encoding.
[0002] There is a system that receives audio, video, and other data (hereinafter referred to as "media data") coded with a certain code, decodes it, converts it according to specific rules, and then codes it with a different code or the same code before transmitting it. This type of transcoding, which consists of decoding, data conversion, and encoding, is heavy and places a heavy load on the code conversion (decoding and encoding) process, especially when there are a large number of connected terminals. Therefore, it has traditionally been performed by a dedicated device 5, as shown in Figure 17.
[0003] Such transcoding is used, for example, in a multi-point control unit (MCU) in a web conference system or a session border controller (SBC) in a voice over Internet protocol (VoIP).
[0004] On the other hand, a technology has been disclosed in which a distributed system and a distributed node within a distributed system that will execute a job from among multiple distributed systems are determined based on the amount of computing resources required for the job to be executed in the distributed system, a connection path for data to be processed between the distributed systems is selected, and information about the connection path is provided to the distributed node (see Patent Document 1).
[0005] International Publication No. 2021 / 111585
[0006] However, the conventional code conversion using the dedicated device 5 (FIG. 17) has a problem with performance scalability. Specifically, decoding and encoding processes are heavy processes, and an increase in the number of users, a change in specifications, etc., can cause a bottleneck due to insufficient processing power for the decoding and encoding processes. However, even in this case, it is not possible to scale only the bottlenecked part, so as shown in FIG. 18, it is necessary to add expensive dedicated devices 5 in units (in FIG. 18, two or more devices are added), which increases costs.
[0007] Furthermore, even if dedicated device 5 is realized using multiple distributed nodes as described in Patent Document 1, if code conversion is performed using only the CPU, although it is possible to expand performance on a thread-by-thread basis, the number of servers will increase significantly.
[0008] The present invention has been made in view of the above points, and has as its object to optimize the processing performance of transcoding and reduce the number of servers required for transcoding.
[0009] The accelerator connection system of the present invention is an accelerator connection system that performs transcoding using accelerators installed in each of a plurality of servers, and is characterized in that, for each specific process of transcoding that sequentially performs specific processes indicating decoding, data conversion, and encoding on media data, the accelerator connection system has a decoding server group made up of servers equipped with accelerators that perform the decoding process, a data conversion server group made up of servers equipped with accelerators that perform the data conversion process, and an encoding server group made up of servers equipped with accelerators that perform the encoding process, and the system is configured so that each server in each server group is connected in a daisy chain with a server in a next-stage server group, and each server in the decoding server group, the data conversion server group, and the encoding server group selects a server equipped with a next-stage accelerator to process the media data.
[0010] According to the present invention, it is possible to optimize the processing performance of transcoding and reduce the number of servers required for transcoding.
[0011] 1 is a diagram illustrating an overview of an accelerator inter-connection system according to an embodiment of the present invention. FIG. 2 is a diagram illustrating the internal configuration of a general-purpose server group according to an embodiment of the present invention. FIG. 3 is a diagram illustrating the overall configuration of an accelerator inter-connection system according to a first embodiment of the present invention. FIG. 4 is a diagram illustrating an example data configuration of logical connection information stored in a logical connection database according to an embodiment of the present invention. FIG. 5 is a diagram illustrating an example data configuration of configuration management information stored in a configuration management database according to an embodiment of the present invention. FIG. 6 is a diagram illustrating an example data configuration of physical connection information stored in a physical connection database according to an embodiment of the present invention. FIG. 7 is a diagram illustrating a classification function unit according to an embodiment of the present invention and the functions of each server constituting a general-purpose server group. FIG. 8 is a flowchart illustrating the flow of inter-accelerator connection control processing executed by an accelerator inter-connection system according to a first embodiment of the present invention. FIG. 9 is a flowchart illustrating the flow of scale control processing executed by an accelerator inter-connection system according to the first embodiment of the present invention. FIG. 10 is a diagram illustrating the overall configuration of an accelerator inter-connection system according to a second embodiment of the present invention. FIG. 11 is a block diagram illustrating the function of a master decoding server. FIG. 12 is a diagram illustrating the overall configuration of an accelerator inter-connection system according to a third embodiment of the present invention. FIG. 13 is a diagram illustrating an example data configuration of encoding method correspondence information according to the third embodiment of the present invention. FIG. 14 is a diagram for explaining encoding method determination processing by an encoding method determination unit of an accelerator inter-connection system according to a third embodiment of the present invention. FIG. 15 is a diagram illustrating an example of selecting a code conversion server based on location information of a user terminal and a server in a general-purpose server group, in an accelerator inter-connection system according to a modified example of the third embodiment of the present invention. It is a hardware configuration diagram showing an example of a computer that realizes the functions of the accelerator inter-connection device according to the present embodiment. It is a diagram for explaining a conventional example in which transcoding is performed by a dedicated device. It is a diagram for explaining a problem when expanding the transcoding function in the conventional example.
[0012] Next, an embodiment of the present invention (hereinafter referred to as "this embodiment") will be described. First, an outline of the accelerator interconnection system according to this embodiment will be described.
[0013] The accelerator connection system 1000 according to this embodiment prepares general-purpose servers equipped with accelerators corresponding to the processes of decoding, data conversion, and encoding, and when users communicate with each other, it determines which server's accelerator to connect based on session information. Then, by configuring and connecting a general-purpose server for that session, transcoding using the general-purpose server is realized. Furthermore, if the performance of any of decoding, data conversion, or encoding is insufficient, a general-purpose server corresponding to that process and an accelerator for that process are added, thereby achieving partial scale-out.
[0014] The accelerator interconnection system 1000 according to this embodiment is based on the following assumptions regarding the server that performs the processes of decoding, data conversion, and encoding (hereinafter, sometimes referred to as a "code conversion server").
[0015] (Premise 1) The transcoding server is a general-purpose server equipped with a general-purpose arithmetic unit (CPU: central processing unit). (Premise 2) The transcoding server is equipped with an arithmetic unit (accelerator) specialized for specific processing (decoding, data conversion, encoding) used for transcoding as needed.
[0016] (Premise 1) aims to reduce costs by using a general-purpose server rather than a dedicated transcoding device. (Premise 2) aims to improve performance and suppress the increase in the number of servers by using accelerators specialized for specific processes (decoding, data conversion, encoding) while it is possible to expand performance on a thread-by-thread basis when transcoding using only the CPU.
[0017] The accelerator interconnection system 1000 according to this embodiment must satisfy the following requirements: (Requirement 1) To improve the performance of specific processes included in code conversion (such as the number of user terminals accommodated and maximum processing capacity). (Requirement 2) To reduce (minimize) the number of servers required for code conversion.
[0018] In the above (Premise 1) and (Premise 2), an overview of an accelerator connection system 1000 that satisfies (Requirement 1) and (Requirement 2) will be described. FIG. 1 is a diagram illustrating an overview of the accelerator connection system 1000 according to this embodiment. As shown in FIG. 1, the accelerator connection system 1000 implements transcoding not by a dedicated device as shown in FIG. 17 , but by a general-purpose server group 100, which is a collection of general-purpose servers equipped with accelerators prepared for decoding, data conversion, and encoding. The accelerator connection system 1000 acquires session information between user terminals from the session control server 7, and based on the session information, determines which of multiple servers prepared for decoding, data conversion, and encoding to use for each flow, and establishes a communication connection.
[0019] 2 is a diagram showing the configuration of the general-purpose server group 100 according to this embodiment. As shown in FIG. 2, the general-purpose server group 100 is configured to include a decoding server group 20, a data conversion server group 30, and an encoding server group 40, each of which corresponds to a specific transcoding process.
[0020] The decoding server group 20 is composed of one or more decoding servers 2, which are servers equipped with accelerators that perform decoding (decoding) processing. FIG. 2 shows an example in which multiple decoding servers 2 (#1 to #L) are included. The data conversion server group 30 is composed of one or more data conversion servers 3 ("conversion server 3" in FIG. 2), which are servers equipped with accelerators that perform data conversion processing. FIG. 2 shows an example in which multiple data conversion servers 3 (#1 to #M) are included. The encoding server group 40 is composed of one or more encoding servers 4, which are servers equipped with accelerators that perform encoding (coding) processing. FIG. 2 shows an example in which multiple encoding servers 4 (#1 to #N) are included.
[0021] As shown in FIG. 2, the accelerator interconnection system 1000 is characterized by a chain of servers equipped with accelerators for performing specific processes (decoding, data conversion, and encoding) required for transcoding. Encrypted media data transmitted from a user terminal 6 (6A) is transmitted by a classification function unit 10 to a predetermined decryption server 2 in a decryption server group 20. The decryption server 2 decodes the encoded media data and selects a next-stage data conversion server 3 to process the media data and transmits it. The data conversion server 3 performs data conversion on the acquired media data and selects a next-stage encoding server 4 to process the media data and transmits it. The encoding server 4 encodes the acquired media data and transmits it to an integration function unit 50. The integrated function unit 50 then transmits the encoded media data to the other user terminal 6 (6B). In this way, each transcoding server (decryption server 2, data conversion server 3, encoding server 4) selects a next-stage server to process the media data, thereby achieving a chain of decoding, data conversion, and encoding processes. The function of selecting a server having a next-stage accelerator for processing this media data is realized by an accelerator selection unit (to be described later) provided in each server.
[0022] In addition, each server (code conversion server) scales out the server equipped with an accelerator and scales in its own server depending on the load, thereby satisfying the above (Requirement 1). Furthermore, by preparing and connecting a minimum number of servers equipped with accelerators, the number of servers can be reduced (minimized) compared to when running on CPUs alone, thereby satisfying (Requirement 2).
[0023] First Embodiment Next, an accelerator connection system 1000 (1000A) according to a first embodiment of the present invention will be described. The accelerator connection system 1000A according to the first embodiment includes, outside the general-purpose server group 100, a connection control unit 11 that generates physical connection information indicating the physical connection of each flow (which device of which server is to be used) based on session information obtained from the session control server 7, and a configuration control unit 12 that executes scaling processing (scaling out and scaling in) for each server (code conversion server).
[0024] 3 is a diagram showing the overall configuration of an accelerator connection system 1000 (1000A) according to a first embodiment of the present invention. As shown in FIG. 3, the accelerator connection system 1000A includes a connection control unit 11 and a configuration control unit 12 outside the general-purpose server group 100. Here, the accelerator connection device 1 is described as including the connection control unit 11 and the configuration control unit 12, but these do not need to be included in a single housing and may be configured as devices in separate housings. Alternatively, the functions of the connection control unit 11 and the configuration control unit 12 may be included inside another external device.
[0025] The connection control unit 11 determines, based on the session information obtained from the session control server 7, which server and which device in the general-purpose server group 100 should be used to connect the user flow included in the session. The connection control unit 11 includes a connection management unit 111 and a connection instruction unit 112.
[0026] The connection management unit 111 acquires session information (information such as the connection destination, encoding method, and data conversion rule) from the session control server 7. Then, based on the acquired session information, the connection management unit 111 generates logical connection information, which is a combination of encoding methods and data conversion rules, for each user flow included in the session, and stores this information in the logical connection database (DB) 200.
[0027] 4 is a diagram showing an example of the data structure of logical connection information stored in the logical connection database 200 according to this embodiment. As shown in FIG. 4, the logical connection information includes information on the source user number, destination user number, session number, encoding method (decoding), data conversion rule, and encoding method (encoding) associated with the flow ID of each flow. The connection management unit 111 generates this logical connection information using the acquired session information and stores it in the logical connection database 200. For example, for a flow with flow ID "1," the following information is stored in the logical connection database 200: source user number "1," destination user number "2," session number "1," decoding method "A," data conversion rule "α," and encoding method "B."
[0028] After storing the logical connection information in the logical connection database 200, the connection management unit 111 outputs a notification to the connection instruction unit 112 that the logical connection information has been generated.
[0029] The connection instruction unit 112 refers to a configuration management database (DB) 300 and acquires configuration management information indicating the functions and status information of each server (code conversion server).
[0030] 5 is a diagram showing an example of the data structure of configuration management information stored in the configuration management database 300 according to this embodiment. As shown in FIG. 5, the configuration management information includes, in association with each server ID, a device ID indicating a device (accelerator) deployed on each server, a process type indicating the content of a specific process of the server, process details indicating the details (method) of the process, a status indicating the current server status ("in operation" or "on standby"), and information on the current load of the device. For example, the configuration management database 300 stores information indicating that for an accelerator with device ID "1" deployed on a server with server ID "DA1," the process type is "decoding," the process details are "encoding method A," the status is "in operation," and the load is "40%."
[0031] Based on the configuration management information acquired from the configuration management database 300, the connection instruction unit 112 generates physical connection information indicating which device of which server is to be used for each flow for the logical connection information stored in the logical connection database 200, and stores the generated information in the physical connection database 400.
[0032] 6 is a diagram showing an example of the data configuration of physical connection information stored in the physical connection database 400 according to this embodiment. As shown in FIG. 6, the physical connection information is information on the decoding server, decoding device, data conversion server, data conversion device, encoding server, and encoding device associated with the flow ID of each flow. For example, for a flow with flow ID "1," the following information is stored in the physical connection DB 400: decoding server "DA1," decoding device "1," data conversion server "Mα1," data conversion device "1," encoding server "EB1," and encoding device "1."
[0033] The connection instruction unit 112 issues connection setting instructions by sending the generated physical connection information to the classification function unit 10, each decoding server 2 in the decoding server group 20, each data conversion server 3 in the data conversion server group 30, each encoding server 4 in the encoding server group 40, and the integration function unit 50.
[0034] 3 , the configuration control unit 12 monitors the load on each server to scale out each server equipped with an accelerator and scale in its own server. The configuration control unit 12 includes a load monitoring unit 121, a scale management unit 122, and a scale instruction unit 123.
[0035] The load monitoring unit 121 acquires, at predetermined time intervals, information on the load of devices that are accelerators deployed on each server from each server in the general-purpose server group 100. The load monitoring unit 121 then stores the acquired information on the load of the devices deployed on the server in the configuration management database 300 (FIG. 5).
[0036] The scale management unit 122 acquires information about the load amount of devices included in each server from the configuration management database 300 ( FIG. 5 ) and determines whether the load amount exceeds a predetermined threshold (upper threshold / lower threshold). If the load amount exceeds the upper threshold, the scale management unit 122 determines to scale out a server that executes the same type of specific processing as that server. On the other hand, if the load amount exceeds (is below) the lower threshold, the scale management unit 122 determines to scale in that server. The scale management unit 122 then outputs the determination result to the scale instruction unit 123. Furthermore, if the scale management unit 122 receives a scale instruction for a server that executes a specific processing from the service management server 8, the scale management unit 122 instructs the scale instruction unit 123 to execute the scale instruction (scale out / scale in).
[0037] The scale instruction unit 123 determines which server to start up when the determination result of the scale management unit 122 is scale-out. Then, the scale instruction unit 123 updates the configuration management database 300 based on the determination result.
[0038] When the scale instruction unit 123 determines the servers to be activated in the case of scale-out, the scale instruction unit 123 activates the servers to be scaled out and their devices mounted thereon from among the decoding server group 20, the data conversion server group 30, and the encoding server group 40, based on the content of the instruction. Then, based on the determined content of the scale-out, the scale instruction unit 123 instructs the connection instruction unit 112 to generate physical connection information that uses the servers to be scaled out and their devices.
[0039] On the other hand, when the determination result of the scale management unit 122 is scale-in, the scale instruction unit 123 determines which server to stop. Then, the scale instruction unit 123 updates the configuration management database 300 based on the determination result. The scale instruction unit 123 instructs the connection instruction unit 112 to generate physical connection information that does not use the determined server to be scaled in and its device. Then, the scale instruction unit 123 stops the server to be scaled in and its device.
[0040] Next, the functions of the classification function unit 10 and each server that constitutes the general-purpose server group 100 will be described in detail with reference to FIG.
[0041] <Classification Function Unit> The classification function unit 10 transmits media data acquired from the user terminal 6 (6A) to a decryption server 2 in the decryption server group 20 based on the physical connection information acquired from the connection instruction unit 112. As shown in Fig. 7 , the classification function unit 10 includes an accelerator selection unit 103 and a classification execution unit 101. Note that the classification function unit 10 may be realized as a function included in a server consisting of a single housing, or may be realized by being incorporated into an external device such as a router.
[0042] The accelerator selection unit 103 selects a decryption server 2 equipped with a decryption device that processes media data identified by a flow ID, based on the physical connection information acquired from the connection instruction unit 112. Then, the accelerator selection unit 103 outputs information about the selected decryption server 2 to the classification execution unit 101. Note that when the accelerator selection unit 103 acquires information from the scale instruction unit 123 that a scale-out or scale-in has been executed, the accelerator selection unit 103 acquires updated physical connection information from the connection instruction unit 112 and selects a decryption server 2.
[0043] The classification execution unit 101 outputs the media data to the decryption server 2 selected by the accelerator selection unit 103 based on the physical connection information.
[0044] <Each Server in the General-Purpose Server Group> Next, the functions of each server in the general-purpose server group 100 will be described in detail with reference to Figure 7. The decoding server 2 in the decoding server group 20, the data conversion server 3 in the data conversion server group 30, and the encoding server 4 in the encoding server group 40 shown in Figure 3 each have basically the same configuration, except that they each include a specific decoding execution unit 104, data conversion unit (not shown), and encoding execution unit (not shown) that perform decoding, data conversion, and encoding to achieve transcoding. Therefore, of the decoding server 2, data conversion server 3, and encoding server 4, the decoding server 2 will be described as a representative.
[0045] 7, the decryption server 2 includes, as HW (hardware), a server power supply 61, an ACC (accelerator) 62, and a CPU 63. Also, as OS / drivers, it includes a server power supply driver 161, an ACC driver 162, and a CPU power control driver 163. Also, it includes, as APLs that execute the functions of the decryption server 2, a device selection unit 102, an accelerator selection unit 103, a decryption execution unit 104, a load amount acquisition unit 105, and a scale execution unit 106.
[0046] The device selection unit 102 selects a device (ACC (accelerator) 62) that will decrypt the media data based on the physical connection information acquired from the connection instruction unit 112. The accelerator selection unit 103, similar to the function of the accelerator selection unit 103 in the classification function unit 10, selects a server equipped with an accelerator that will process the media data in the next stage. Here, the accelerator selection unit 103 selects a data conversion server 3 equipped with a data conversion device that will process the media data identified by the flow ID based on the physical connection information acquired from the connection instruction unit 112.
[0047] The decoding execution unit 104 causes the device (ACC (accelerator) 62) selected by the device selection unit 102 to execute the decoding process. The decoding execution unit 104 then transmits the decoded media data to the data conversion server 3, which is equipped with a data conversion device selected by the accelerator selection unit 103. If this server is the data conversion server 3, a data conversion unit (not shown) is provided instead of the decoding execution unit 104. The data conversion unit then transmits the data-converted media data to the encoding server 4, which is equipped with a coding device selected by the accelerator selection unit 103. If this server is the encoding server 4, another encoding execution unit (not shown) is provided instead of the decoding execution unit 104. The encoding execution unit then transmits the encoded media data to the integrated function unit 50.
[0048] The load acquisition unit 105 acquires information about the load of the device (ACC (accelerator) 62) deployed on the server. Then, the load acquisition unit 105 transmits the acquired information about the load of the device (ACC (accelerator) 62) to the load monitoring unit 121 of the configuration control unit 12.
[0049] When the scale execution unit 106 itself is a target server for scale-out, it starts up the server power supply 61 and also starts up a device (ACC (accelerator) 62) based on instructions from the scale instruction unit 123 of the configuration control unit 12. Furthermore, when the scale execution unit 106 itself is a target server for scale-in, it stops the server power supply 61 of its own server based on instructions from the scale instruction unit 123 of the configuration control unit 12.
[0050] Among the general-purpose server group 100, the encoding server 4 belonging to the encoding server group 40 does not need to select the next-stage server, and therefore does not have the accelerator selection unit 103 shown in Figure 7, and transmits the media data that has been encoded by the encoding execution unit to the integrated function unit 50.
[0051] <Processing flow> Next, we will explain the flow of the connection control process between accelerators provided in each code conversion server in the general-purpose server group 100, and the scale control process of functions that perform specific processes (decoding, data conversion, encoding), which are performed by the accelerator connection system 1000 (1000A) related to the first embodiment.
[0052] <<Connection Control Between Accelerators>> FIG. 8 is a flowchart showing the flow of connection control processing between accelerators, which is executed mainly by the connection control unit 11 of the accelerator connection system 1000 (1000A) according to the first embodiment.
[0053] First, the connection management unit 111 acquires session information (information on the connection destination, encoding method (decoding, data conversion rules, encoding) and the like) from the session control server 7 (step S101).
[0054] Next, based on the acquired session information, the connection management unit 111 generates logical connection information, which is a combination of encoding methods and data conversion rules, for each user flow included in the session, and stores the information in the logical connection database (DB) 200 (FIG. 4) (step S102).The connection management unit 111 then outputs a notification to the connection instruction unit 112 that the logical connection information has been generated.
[0055] Next, the connection instruction unit 112 refers to the configuration management database (DB) 300 (FIG. 5) and acquires configuration management information indicating the function and status of each server (code conversion server) (step S103).
[0056] Next, the connection instruction unit 112 generates physical connection information indicating which device of which server is to be used for each flow for the logical connection information stored in the logical connection database 200 based on the configuration management information obtained from the configuration management database 300, and stores the information in the physical connection database 400 (FIG. 6) (step S104). Note that if the same process can be executed on multiple servers (accelerators), multiple physical servers may be specified to distribute the load. On the other hand, if the process uses immediately preceding data, the same physical server may be specified for a specific flow.
[0057] The connection instruction unit 112 issues connection setting instructions by sending the generated physical connection information to the classification function unit 10, each decoding server 2 in the decoding server group 20, each data conversion server 3 in the data conversion server group 30, each encoding server 4 in the encoding server group 40, and the integration function unit 50 (step S105).
[0058] Based on the physical connection information notified by the connection instruction unit 112, the classification function unit 10, each decoding server 2, each data conversion server 3, each encoding server 4, and integration function unit 50 set the processing target device for the corresponding flow and the next connection destination server (step S106), and then complete the processing.
[0059] In steps S104 to S106, the process of generating new physical connection information for each flow and setting it in each server etc. is referred to as a physical connection update process.
[0060] <Scale Control> FIG. 9 is a flowchart showing the flow of scale control processing executed mainly by the configuration control unit 12 of the accelerator inter-connection system 1000 (1000A) according to the first embodiment.
[0061] First, the scale management unit 122 determines whether or not a scale instruction has been received from the service management server 8 (step S201). If a scale instruction has been received (step S201 → Yes), the process proceeds to step S205. On the other hand, if a scale instruction has not been received (step S201 → No), the process proceeds to the next step S202.
[0062] In step S202, the scale management unit 122 obtains information about the load of devices included in each server from the configuration management database 300 ( FIG. 5 ). The scale management unit 122 then determines whether the load exceeds a predetermined threshold (upper limit threshold and lower limit threshold) (step S203). If the load does not exceed the predetermined threshold (upper limit threshold and lower limit threshold) (step S203 → No), the process ends. On the other hand, if the load exceeds either of the predetermined thresholds (upper limit threshold and lower limit threshold) (step S203 → Yes), the process proceeds to the next step, S204.
[0063] In step S204, the scale management unit 122 determines that scaling out is necessary if the load on the device included in the server exceeds a predetermined upper threshold. On the other hand, the scale management unit 122 determines that scaling in is necessary if the load on the device exceeds a predetermined lower threshold (is below the lower threshold).
[0064] Next, the scale management unit 122 notifies the scale instruction unit 123 of the scale type (scale-out, scale-in) (step S205). Then, if the scale type is scale-out, the scale instruction unit 123 determines which server and its device to start up. Also, if the scale type is scale-in, the scale instruction unit 123 determines which server and its device to stop. Then, the scale instruction unit 123 updates the configuration management database 300 based on the determination result (step S206).
[0065] Next, the scale instruction unit 123 determines whether the scale type is scale-in (step S207). If it is scale-in (step S207→Yes), the process proceeds to step S208.
[0066] In step S208, the scale instruction unit 123 instructs the connection instruction unit 112 to generate physical connection information that does not use the scale-in target server and its devices, based on the determined scale content. Then, in step S209, the physical connection update process (steps S104 to S106 in FIG. 8) is executed to generate new physical connection information for each flow and set it in each server, etc.
[0067] Next, the scale instruction unit 123 issues a scale instruction (scale-in instruction) to the decoding server group 20, the data conversion server group 30, and the encoding server group 40 based on the determined scale content (step S210).
[0068] The decoding server group 20, the data conversion server group 30, and the encoding server group 40 stop the servers and their devices that are to be scaled in according to the scale instruction from the scale instruction unit 123 (step S211), and then terminate the process.
[0069] On the other hand, in step S207, if it is not scale-in (step S207→No), that is, if it is scale-out, the process proceeds to step S212.
[0070] In step S212, the scale instruction unit 123 instructs the connection instruction unit 112 to generate physical connection information for the scale-out target server and the device based on the determined scale content. Then, in step S213, the physical connection update process (steps S104 to S106 in FIG. 8) is executed to generate new physical connection information for each flow and set it in each server, etc.
[0071] Next, the scale instruction unit 123 issues a scale instruction (scale-out instruction) to the decoding server group 20, the data conversion server group 30, and the encoding server group 40 based on the determined scale content (step S214).
[0072] The decoding server group 20, the data conversion server group 30, and the encoding server group 40 start up the servers and their devices to be scaled out in accordance with the scale instruction from the scale instruction unit 123 (step S215), and then the process ends.
[0073] The accelerator interconnection system 1000 (1000A) according to the first embodiment can maintain the optimum number of servers required for code conversion by repeating this scale control at predetermined time intervals.
[0074] Second Embodiment Next, an accelerator interconnection system 1000 (1000B) according to a second embodiment of the present invention will be described. In the accelerator interconnection system 1000A according to the first embodiment shown in Fig. 3, a connection control unit 11 that generates physical connection information for each flow and a configuration control unit 12 that scales each server are provided outside the general-purpose server group 100. In the accelerator interconnection system 1000 (1000B) according to the second embodiment, one of the servers (encoding servers) in the general-purpose server group 100 is designated as a master, and this master is provided with the connection control unit 11 and the configuration control unit 12.
[0075] Fig. 10 is a diagram showing the overall configuration of an accelerator inter-connection system 1000 (1000B) according to the second embodiment of the present invention. Fig. 10 shows an example in which a decryption server #1 belonging to a decryption server group 20 is set as a master decryption server 2 (2M). Although not shown, this decryption server 2 (2M) is communicatively connected to each server in a general-purpose server group 100, as well as to a classification function unit 10 and an integration function unit 50. It is also communicatively connected to an external server such as a session control server 7.
[0076] FIG. 11 is a block diagram illustrating the functions of the master decryption server 2 (2M). In addition to the functions of the decryption server 2 shown in FIG. 7, the master decryption server 2 (2M) shown in FIG. 11 includes a connection control unit 11M and a configuration control unit 12M. The function of the connection control unit 11M is the same as that of the connection control unit 11 shown in FIG. 3. The function of the configuration control unit 12M is also the same as that of the configuration control unit 12 shown in FIG. 3. The connection control unit 11M generates physical connection information based on session information obtained from the session control server 7, and issues connection setting instructions by transmitting the generated physical connection information to the classification function unit 10, each decryption server 2 in the decryption server group 20, each data conversion server 3 in the data conversion server group 30, each encoding server 4 in the encoding server group 40, and the integration function unit 50. The configuration control unit 12M acquires accelerator load information from the load acquisition unit 105 provided in each server, thereby monitoring the load of each accelerator and scaling out or scaling in each server equipped with an accelerator.
[0077] In this way, by designating one of the servers (code conversion servers) in the general-purpose server group 100 as a master and providing the functions of the connection control unit 11M and the configuration control unit 12M, the accelerator connection system 1000 (1000B) can scale out or scale in the servers equipped with accelerators for each specific process. Also, by providing and connecting a minimum number of servers equipped with accelerators, the number of servers can be reduced (minimized) compared to when execution is performed by a CPU alone. Note that the functions of the connection control unit 11M and the configuration control unit 12M may be provided in another device equipped with the classification function unit 10 or the integration function unit 50.
[0078] Third Embodiment Next, an accelerator connection system 1000 (1000C) according to a third embodiment of the present invention will be described. The accelerator connection system 1000 (1000C) according to the third embodiment is characterized in that, in addition to the functions of the accelerator connection system 1000 (1000A) according to the first embodiment shown in FIG. 3 , it includes a session control determination unit 13 (encoding method determination unit 132) so that part of the functions of the session control server 7 (e.g., encoding method determination function) can be performed on the accelerator connection system 1000C side. Conventionally, the encoding method for each flow was determined by the session control server 7, but in this case, the encoding method determination unit 132 determines the encoding method for each flow taking into account the load and power consumption of the accelerators provided in each server of the general-purpose server group 100, which is a code conversion system.
[0079] 12 is a diagram showing the overall configuration of an accelerator interconnection system 1000 (1000C) according to the third embodiment of the present invention. Note that in FIG. 12, the classification function unit 10, the general-purpose server group 100 (the decoding server group 20, the data conversion server group 30, and the encoding server group 40), and the integration function unit 50 shown in FIG. 3 are omitted.
[0080] As shown in Fig. 12, the accelerator inter-connection system 1000C includes a session control determination unit 13. This session control determination unit 13 has functions such as determining the encoding method, which were previously performed by the session control server 7, and determines the encoding method depending on the load and power consumption of the accelerator. This session control determination unit 13 includes a session control server communication unit 131 and an encoding method determination unit 132. Note that the system may also include an encryption method determination unit 133 shown in Fig. 12 (details will be described later).
[0081] The session control server communication unit 131 acquires session information for each flow from the session control server 7. Then, it transmits information about the session control determined by the session control determination unit 13 to the session control server 7.
[0082] The encoding method determination unit 132 determines an encoding method taking into account the load and power consumption of each server. The encoding method determination unit 132 acquires configuration management information stored in the configuration management database 300 ( FIG. 5 ) via the scale management unit 122. As shown in FIG. 5 , this configuration management information stores the encoding methods of accelerators installed in each server, along with the load of the accelerators. The encoding method determination unit 132 also has encoding method correspondence information 500 ( FIG. 13 ) that indicates information on operation characteristics, including power consumption, associated with each encoding method. The information on operation characteristics includes information on operation time and power consumption during the operation. For example, the encoding method correspondence information 500 indicates that the operation time for the encoding method "Codec_A" is "long" (relative to other encoding methods) and the power consumption during the operation is "large." For the encoding method "Codec_C," the operation time is "short" and the power consumption during the operation is "low."
[0083] The encoding method determination unit 132 determines the encoding method for the servers (decoding server 2, data conversion server 3, encoding server 4) that will perform processing in the general-purpose server group 100, using the accelerator status information including the accelerator load obtained from the configuration management information and the encoding method correspondence information 500 (Figure 13) for the session information of each flow obtained from the session control server 7.
[0084] FIG. 14 is a diagram illustrating the encoding method determination process performed by the encoding method determination unit 132 of the accelerator interconnection system 1000 (1000C) according to the third embodiment of the present invention. For example, when the supported media types of the decoding server 2 for media data acquired from the user terminal 6 (6A) are "Codec_A" and "Codec_B," the encoding method determination unit 132 references the encoding method correspondence information 500. If the encoding methods have similar power consumption ("Codec_A": "High" and "Codec_B": "High"), the encoding method determination unit 132 references the configuration management information to select the encoding method with the lowest server load ("Codec_B" in FIG. 14 (load: "10%")) (symbol α). Also, when the supported media types of the encoding server 4 are "Codec_C" and "Codec_D," the encoding method determination unit 132 references the configuration management information to select the encoding method with the lowest power consumption ("Codec_C" in FIG. 14 (power consumption: "Low")) (symbol β).
[0085] In this way, the encoding method determination unit 132 can reduce delays between terminals by selecting an encoding method of a server equipped with an accelerator with a low load. Furthermore, the encoding method determination unit 132 can prevent unnecessary scale-out by distributing the load. Furthermore, the encoding method determination unit 132 can reduce the power consumption of the transcoding server by selecting an encoding method with a low power consumption.
[0086] The session control determination unit 13 may include an encryption method determination unit 133 as shown in Fig. 12. As with encoding methods, the calculation time and power consumption during that calculation time differ depending on the encryption method. Therefore, if the encryption method determination unit 133 selects an encryption method with a short calculation time from among the encryption methods corresponding to the media data, delays can be reduced, and power consumption can be reduced by selecting an encryption method with low power consumption.
[0087] <Modification of the Third Embodiment> Next, a modification of the accelerator interconnection system 1000 (1000C) according to the third embodiment of the present invention will be described.
[0088] 12, a server equipped with an accelerator may be selected taking geographical factors into consideration. In this case, the session control determination unit 13 acquires location information of each user terminal from an external user management device or the like based on the source user number, destination user number, etc. indicated in the session information. Then, if the members included in the same session are concentrated in a specific area, a transcoding server provided in a data center located near that specific area is selected.
[0089] For example, if the members of the same session are users of user terminals "A," "B," and "C," and they are concentrated in the Kyushu region as shown in Figure 15, the session control determination unit 13 selects a code conversion server located in a data center (DC) in that region. On the other hand, if the members of the same session are user terminals "A," "B," "C," "D," "E," and "F," and they are dispersed throughout the country, the session control determination unit 13 selects a code conversion server located in a central data center.
[0090] In this way, in the modified example of the accelerator inter-connection system 1000 (1000C) according to the third embodiment, communication delays between user terminals can be reduced by performing code conversion at a closer location based on the location information of members included in the same session.
[0091] <Hardware Configuration> The accelerator connection device 1 ( FIG. 3 ) according to this embodiment and each server in the general-purpose server group 100 are realized by a computer 900 having a configuration such as that shown in FIG. 16 . FIG. 16 is a hardware configuration diagram showing an example of the computer 900 that realizes the functions of the accelerator connection device 1 according to this embodiment and each server in the general-purpose server group 100. The computer 900 has a CPU 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input / output I / F (Interface) 905, a communication I / F 906, a media I / F 907, and an accelerator 908. Note that the accelerator connection device 1 ( FIG. 3 ) may be configured without the accelerator 908.
[0092] The accelerator 908 is a calculation unit that processes at least one of data from the communication I / F 906 and data from the RAM 903 at high speed. Note that the accelerator 908 may be of a type that returns the execution result to the CPU 901 or RAM 903 after executing processing from the CPU 901 or RAM 903 (look-aside type). Alternatively, the accelerator 908 may be of a type that performs processing between the communication I / F 906 and the CPU 901 or RAM 903 (in-line type). The accelerator 908 is connected to an external device 920 via the communication I / F 906.
[0093] The CPU 901 operates based on programs stored in the ROM 902 or the HDD 904, and performs control by each control unit. The ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started up, programs related to the hardware of the computer 900, and the like.
[0094] 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 I / F 905. The CPU 901 acquires data from the input device 910 via the input / output I / F 905, and outputs generated data to the output device 911.
[0095] The HDD 904 stores programs executed by the CPU 901 and data used by the programs. The communication I / F 906 receives data from an external device 920 via a communication network (e.g., a 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.
[0096] The media I / F 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 a program related to a target process from the recording medium 912 onto the RAM 903 via the media I / F 907, and executes the loaded program. The recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase Change Rewritable Disc), a magneto-optical recording medium such as an MO (Magneto Optical Disc), a magnetic recording medium, a semiconductor memory, or the like.
[0097] For example, when a computer 900 functions as the accelerator connection device 1 of the present invention, a CPU 901 of the computer 900 executes a program (accelerator connection program) loaded onto a RAM 903 to implement the functions of the connection control unit 11 and the configuration control unit 12. In addition, data stored in the RAM 903 is stored in the HDD 904. The CPU 901 reads and executes a program related to a target process from a recording medium 912. Alternatively, the CPU 901 may read a program related to a target process from an external device 920 via a communication network (NW).
[0098] <Effects> The following describes the effects of the accelerator connection system etc. according to the present invention. The accelerator connection system according to the present invention is an accelerator connection system 1000, 1000B that performs transcoding using accelerators installed in each of a plurality of servers, and is characterized in that the accelerator connection system 1000, 1000B includes a decoding server group 20 made up of servers equipped with accelerators that perform decoding processing, a data conversion server group 30 made up of servers equipped with accelerators that perform data conversion processing, and an encoding server group 40 made up of servers equipped with accelerators that perform encoding processing, for each specific transcoding processing that sequentially performs specific processing on media data, including decoding processing, data conversion processing, and encoding processing, and each server in each server group is connected in a daisy chain with a server in the next-stage server group, and each server in the decoding server group 20, the data conversion server group 30, and the encoding server group 40 selects a server equipped with a next-stage accelerator that is to process the media data.
[0099] In this way, the accelerator connection systems 1000 and 1000B can perform transcoding not by using a single dedicated device but by using accelerators in the servers of each server group for the transcoding decoding process, data conversion process, and encoding process. Also, compared to when transcoding is performed by a CPU alone, it is possible to suppress an increase in the number of servers.
[0100] Furthermore, the accelerator inter-connection systems 1000 and 1000B are characterized in that when the load on an accelerator in each server in the decoding server group 20, the data conversion server group 30, or the encoding server group 40 exceeds a predetermined threshold, the accelerator inter-connection systems 1000 and 1000B scale the servers in the server group that execute the specific processing executed by the accelerator that exceeds the predetermined threshold.
[0101] In this way, the accelerator interconnection systems 1000 and 1000B can scale out only the processes that become bottlenecks in decoding, data conversion, encoding, etc. Furthermore, when there are many installed servers and excess performance is generated, servers equipped with accelerators that execute the excess processing can be scaled in. Thus, the accelerator interconnection systems 1000 and 1000B can optimize the processing performance of code conversion.
[0102] The accelerator connection system is an accelerator connection system 1000, 1000A that performs transcoding using accelerators installed in each of a plurality of servers, and the accelerator connection system 1000, 1000A has a decoding server group 20 made up of servers equipped with accelerators that perform decoding processing, a data conversion server group 30 made up of servers equipped with accelerators that perform data conversion processing, and an encoding server group 40 made up of servers equipped with accelerators that perform encoding processing, for each specific transcoding processing that sequentially performs specific processing indicating decoding processing, data conversion processing, and encoding processing on media data, and each server in each server group The system has a configuration in which each server in the decoding server group 20, the data conversion server group 30, and the encoding server group 40 are connected in a daisy chain with a server in the next-stage server group, and is equipped with a connection control unit 11 that acquires session information including the encoding method and data conversion rules for the media data for each flow between user terminals, references configuration management information including a processing type indicating the content of the specific processing of the accelerator provided in each server, connects the flow, generates physical connection information that selects an accelerator for each specific processing, and transmits the physical connection information to each server in each server group, and each server in each of the decoding server group 20, the data conversion server group 30, and the encoding server group 40 selects a server equipped with a next-stage accelerator that should process the media data by reference to the physical connection information.
[0103] In this way, the accelerator connection system 1000, 1000A can perform transcoding not in a single dedicated device 5 (FIG. 17), but by using accelerators in servers provided in each server group for the transcoding decoding process, data conversion process, and encoding process. Furthermore, compared to when transcoding is performed by a CPU alone, it is possible to suppress an increase in the number of servers. Furthermore, by providing the connection control unit 11 outside each server group, the accelerator connection system 1000A can reduce the load on each server and speed up the transcoding process.
[0104] In addition, the accelerator inter-connection system 1000, 1000A further includes a configuration control unit 12 that, when the load of the accelerator in each server in the decoding server group 20, the data conversion server group 30, or the encoding server group 40 exceeds a predetermined threshold, generates configuration management information that has been scaled for the servers in the server group that executes a specific process executed by the accelerator that has exceeded the predetermined threshold, and causes the server group that executes the specific process to execute the scaling process, and the connection control unit 11 is characterized in that it generates physical connection information using the scaled configuration management information.
[0105] In this way, the accelerator connection systems 1000 and 1000A can scale out only bottleneck processes such as decoding, data conversion, and encoding. Furthermore, when a large number of servers are installed and performance is surplus, servers equipped with accelerators that execute the surplus processes can be scaled in. Therefore, the accelerator connection systems 1000 and 1000A can optimize the processing performance of code conversion. Furthermore, by providing the configuration control unit 12 outside each server group, the accelerator connection system 1000A can reduce the load on each server and speed up code conversion processing.
[0106] The accelerator inter-connection systems 1000 and 1000C also have encoding method correspondence information 500 indicating information on operation characteristics, including power consumption, associated with an encoding method indicating the type of each specific process, and further include an encoding method determination unit 132 that determines an encoding method for each specific process of a flow by referring to accelerator status information, including the load on the accelerator of each server in each server group, and the information on the operation characteristics of each encoding method indicated in the encoding method correspondence information 500.
[0107] In this way, the accelerator connection systems 1000 and 1000C can select, for example, a server equipped with an accelerator with a low load or a server equipped with an accelerator for which an encoding method with low power consumption is set. Therefore, the accelerator connection systems 1000 and 1000C can prevent unnecessary scale-out due to delays and load balancing and can also reduce power consumption.
[0108] The present invention is not limited to the above-described embodiments, and many modifications can be made by a person having ordinary skill in the art within the technical concept of the present invention.
[0109] REFERENCE SIGNS LIST 1 Accelerator inter-connection device 2, 2M Decoding server 3 Data conversion server 4 Encoding server 5 Dedicated device 6 User terminal 7 Session control server 8 Service management server 10 Classification function unit 11, 11M Connection control unit 12, 12M Configuration control unit 13 Session control determination unit 20 Decoding server group 30 Data conversion server group 40 Encoding server group 50 Integration function unit 61 Server power supply 62 ACC (accelerator) 63 CPU 100 General-purpose server group 101 Classification execution unit 102 Device selection unit 103 Accelerator selection unit 104 Decoding execution unit 105 Load amount acquisition unit 106 Scale execution unit 111 Connection management unit 112 Connection instruction unit 121 Load amount monitoring unit 122 Scale management unit 123 Scale instruction unit 131 Session control server communication unit 132 Encoding method determination unit 133 Encryption method determination unit 200 Logical connection database (DB) 300 Configuration management database (DB) 400 Physical connection database (DB) 1000, 1000A, 1000B, 1000C Accelerator inter-connection system
Claims
1. An accelerator connection system that performs transcoding using accelerators installed in each of a plurality of servers, wherein the accelerator connection system has, for each specific process of transcoding that sequentially performs specific processes indicating decoding, data conversion, and encoding on media data, a decoding server group made up of servers equipped with accelerators that perform the decoding process, a data conversion server group made up of servers equipped with accelerators that perform the data conversion process, and an encoding server group made up of servers equipped with accelerators that perform the encoding process, wherein each server in each server group is connected in a daisy chain with a server in a server group at the next stage, and each server in the decoding server group, data conversion server group, and encoding server group selects a server equipped with a next-stage accelerator to process the media data.
2. The accelerator inter-connection system according to claim 1, characterized in that, when the load of an accelerator in each server in the decoding server group, the data conversion server group, or the encoding server group exceeds a predetermined threshold, the accelerator inter-connection system performs scaling processing on a server in the server group that executes a specific process executed by an accelerator that exceeds the predetermined threshold.
3. An accelerator connection system that performs transcoding using accelerators installed in each of a plurality of servers, the accelerator connection system comprising: a decoding server group consisting of servers equipped with accelerators that perform the decoding process, a data conversion server group consisting of servers equipped with accelerators that perform the data conversion process, and an encoding server group consisting of servers equipped with accelerators that perform the encoding process, for each specific process of the transcoding that sequentially performs specific processes on media data, the system being configured so that each server in each server group is connected in a daisy chain with a server in the next server group; and a connection control unit that acquires session information including the encoding method and data conversion rules for the media data for each flow between user terminals, references configuration management information including a process type that indicates the content of the specific process of the accelerator installed in each server, generates physical connection information that selects an accelerator for each specific process that connects the flow, and transmits the physical connection information to each server in each server group; wherein each server in the decoding server group, the data conversion server group, and the encoding server group selects a server equipped with a next-stage accelerator that is to process the media data by referring to the physical connection information.
4. The accelerator connection system according to claim 3, further comprising a configuration control unit that, when the load of an accelerator in each server in the decoding server group, the data conversion server group, or the encoding server group exceeds a predetermined threshold, generates the configuration management information by scaling the servers in the server group that executes a specific process executed by the accelerator that has exceeded the predetermined threshold, and causes the server group that executes the specific process to execute the scaling process, and the connection control unit generates the physical connection information using the scaled configuration management information.
5. The accelerator connection system according to claim 4, further comprising: a coding method determination unit that determines the coding method for each specific process of the flow by referring to: coding method correspondence information indicating information on operation characteristics including power consumption associated with a coding method indicating a type for each specific process; accelerator status information including the load on the accelerator of each server in each server group; and the information on the operation characteristics of each coding method indicated in the coding method correspondence information.
6. An accelerator connection method for an accelerator connection system that performs transcoding using accelerators installed in each of a plurality of servers, wherein the accelerator connection system has, for each specific process of transcoding that sequentially performs specific processes indicating decoding, data conversion, and encoding on media data, a decoding server group made up of servers equipped with accelerators that perform the decoding process, a data conversion server group made up of servers equipped with accelerators that perform the data conversion process, and an encoding server group made up of servers equipped with accelerators that perform the encoding process, wherein each server in each server group is connected in a daisy chain with a server in a server group at the next stage, and wherein each server in each of the decoding server group, data conversion server group, and encoding server group has a step of selecting a server equipped with a next-stage accelerator that is to process the media data.
7. An accelerator connection device that performs transcoding using accelerators installed in each of a plurality of servers, the accelerator connection device comprising: a connection control unit that acquires session information for each flow between user terminals, references configuration management information including a processing type indicating the content of a specific processing of an accelerator installed in each of the plurality of servers, generates physical connection information that selects an accelerator for each specific processing to connect the flow, and transmits the physical connection information to each of the plurality of servers; and causes each of the plurality of servers to select a server equipped with a next-stage accelerator that should process data of the flow by reference to the physical connection information.
8. An accelerator connection program for causing a computer to function as the accelerator connection device according to claim 7.
Citation Information
Patent Citations
Video information processing file system
JP2012124886A
Technologies for pre-configuring accelerators by predicting bit-streams
US20190065253A1