WO2018097058A1 - 解析ノード、リソース管理方法およびプログラム記録媒体 - Google Patents

解析ノード、リソース管理方法およびプログラム記録媒体 Download PDF

Info

Publication number
WO2018097058A1
WO2018097058A1 PCT/JP2017/041476 JP2017041476W WO2018097058A1 WO 2018097058 A1 WO2018097058 A1 WO 2018097058A1 JP 2017041476 W JP2017041476 W JP 2017041476W WO 2018097058 A1 WO2018097058 A1 WO 2018097058A1
Authority
WO
WIPO (PCT)
Prior art keywords
analysis
unit
load
node
observation
Prior art date
Application number
PCT/JP2017/041476
Other languages
English (en)
French (fr)
Inventor
有熊 威
貴稔 北野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/349,320 priority Critical patent/US20200192709A1/en
Priority to JP2018552544A priority patent/JP6981427B2/ja
Publication of WO2018097058A1 publication Critical patent/WO2018097058A1/ja
Priority to US16/601,899 priority patent/US20200042354A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Definitions

  • the present invention relates to analysis processing, and in particular, to a technique for performing analysis processing in a plurality of stages.
  • Non-Patent Document 1 a technique such as Non-Patent Document 1 is disclosed.
  • FIG. 14 shows an outline of the configuration of the video analysis resource management system shown in Non-Patent Document 1.
  • the video resource management system of Non-Patent Document 1 includes an arrangement management server (Nimbus), an analysis worker node group (Worker node), and a scheduler plug-in. Further, the video resource management system of Non-Patent Document 1 further includes an analysis execution worker process (Worker Process), a performance information monitor thread (Monitoring thread), and a performance information storage unit (Performance log).
  • the performance information monitor thread collects performance information such as the CPU (Central Processing Unit) usage time of the analysis execution worker process and stores it in the performance information storage unit.
  • the scheduler plug-in periodically calculates the optimum number of processes and threads based on the collected performance information and generates a new arrangement plan.
  • the arrangement management server stops the analysis execution worker processes of all analysis workers, and starts a new analysis execution worker process on all analysis workers based on the generated new arrangement plan.
  • Non-Patent Document 1 is not sufficient in the following points.
  • the analysis execution worker process is stopped and started in order to correspond to the generated new arrangement plan, and the analysis process is periodically suspended during the rearrangement.
  • the regular rearrangement process when the load fluctuates frequently, an excess or deficiency of resources may occur, resulting in a decrease in throughput due to the occurrence of idle resources and a delay due to the occurrence of resource queues. Therefore, with the technology of Non-Patent Document 1, in a system in which load fluctuations frequently occur, it is impossible to achieve both real-time performance and high throughput.
  • the present invention provides an analysis node, a resource management method, and a resource management program capable of appropriately managing calculation resources in response to load fluctuations and continuously performing analysis processing with high throughput.
  • the purpose is to get.
  • the analysis node of the present invention includes an analysis execution unit, a content variation observation unit, and a resource allocation unit.
  • the analysis execution means executes an analysis process composed of a plurality of processes including at least a preceding process and a subsequent process, using calculation resources respectively assigned to the processes.
  • the content variation observation means observes the content variation of the processing target data in the previous step as content variation observation information.
  • the resource allocating means predicts a change in the processing load of the subsequent process based on the content variation observation information, and changes the computing resource allocated to the subsequent process.
  • the resource management method of the present invention when an analysis process consisting of a plurality of processes including at least a preceding process and a subsequent process is executed by a calculation resource assigned to each process, the content change of the processing target data in the preceding process is described. Observe as fluctuation observation information.
  • the resource management method of the present invention predicts fluctuations in the processing load of the subsequent process based on the content fluctuation observation information, and changes the computing resources allocated to the subsequent process.
  • the resource management program executes a content variation observation process and a resource allocation process when executing an analysis process consisting of a plurality of processes including at least a preceding process and a following process using calculation resources allocated to each process.
  • a content variation observation process the content variation of the target data is observed from the analysis process in the previous step for the analysis process including a plurality of processes.
  • the resource allocation process a change in processing load of the subsequent process is predicted based on the content variation observation information, and the calculation resource allocated to the subsequent process is changed.
  • FIG. 1 shows an outline of the configuration of the analysis node of this embodiment.
  • the analysis node of this embodiment includes an analysis execution unit 1, a content variation observation unit 2, and a resource allocation unit 3.
  • the analysis execution unit 1 executes an analysis process including a plurality of processes including at least a preceding process and a subsequent process, using calculation resources respectively assigned to the processes.
  • the content variation observation means 2 observes the content variation of the processing target data in the previous step as content variation observation information.
  • the resource allocating means 3 predicts the variation in the processing load of the subsequent process based on the content variation observation information, and changes the calculation resource allocated to the subsequent process.
  • the content change observation means 2 observes the content change of the previous step as content change observation information.
  • the analysis node of the present embodiment predicts a change in the load of the subsequent process based on the content variation observation information in the resource allocation unit 3, and changes the calculation resource allocated to the subsequent process based on the prediction result. ing.
  • the analysis process is performed without reducing the throughput when the load fluctuates. It can be performed.
  • the analysis node according to the present embodiment can dynamically change the calculation resource allocation to the subsequent process based on the change in the previous process while performing the analysis process. There is no need to stop the analysis process when making changes. As a result, by using the analysis node of the present embodiment, it is possible to appropriately manage computing resources corresponding to load fluctuations and continuously perform analysis processing with high throughput.
  • FIG. 2 shows the configuration of the analysis system of this embodiment.
  • the analysis system of this embodiment includes an analysis node 10 and a data acquisition unit 20.
  • the analysis system performs analysis of data input from the data acquisition unit 20 to the analysis node 10 by the analysis node 10 in two stages of analysis processing, that is, a pre-stage process and a post-stage process.
  • the analysis system of the present embodiment is used as, for example, a video analysis system that detects a human face from input video data and further extracts the detected facial features.
  • FIG. 3 is a block diagram showing the configuration of the analysis node 10 of this embodiment.
  • the analysis node 10 includes an analysis execution unit 100, a load observation unit 200, a content variation observation unit 300, an observation data storage unit 400, and a resource allocation unit 500.
  • the analysis execution unit 100 performs an analysis process on the data input from the data acquisition unit 20.
  • the analysis execution unit 100 further includes a pre-stage analysis unit 110 and a post-stage analysis unit 120.
  • the upstream analysis unit 110 further includes a plurality of analysis workers 111.
  • the post-analysis unit 120 further includes a plurality of analysis workers 121.
  • FIG. 3 shows an example in which two analysis workers 111 and two analysis workers 121 are provided. However, the analysis worker 111 and the analysis worker 121 may be singular or three or more. Also good.
  • the analysis execution unit 100 performs primary processing on the input data as a pre-process in the analysis worker 111 of the pre-stage analysis unit 110. In addition, the analysis execution unit 100 performs secondary processing as a subsequent step on the processing result of the primary processing in the analysis worker 121 of the subsequent analysis unit 120 and outputs the result as a final result.
  • the analysis worker 111 of the upstream analysis unit 110 outputs only data satisfying a predetermined quality standard among the processing result data of the primary processing to the subsequent analysis unit 120.
  • the predetermined quality standard is set as a standard for determining whether or not the data can normally perform the analysis process in the subsequent process.
  • the analysis worker 111 detects a human face reflected in the video from the video data from the data acquisition unit 20 as a previous step.
  • the analysis worker 111 of the first-stage analysis unit 110 outputs the data of a face larger than the reference among the detected faces to the subsequent-stage analysis unit 120 as an analysis result.
  • the reference for determining the size of the face output as analysis result data by the pre-analysis unit 110 is set in advance as a size sufficient to extract the facial feature amount in the post-process in the post-analysis unit 120. Yes. That is, when the analysis system of the present embodiment is used as a video analysis system, the predetermined quality standard is set as the face size.
  • the post-analysis unit 120 performs an analysis process of the post-process of the data input from the pre-analysis unit 110 in the analysis worker 121, and outputs the processing result as a final result.
  • the analysis worker 121 of the post-analysis unit 120 extracts a facial feature quantity from the face detected by the analysis worker 111 as a post-process. That is, the pre-analysis unit 110 detects a face from video data input as an analysis task. Further, the post-analysis unit 12 extracts facial feature data from the face detected as the analysis task.
  • the analysis execution unit 100 includes a CPU (Central Processing Unit) having a plurality of cores, a semiconductor memory device, a hard disk drive that records a program to be executed by the CPU core, and the like. As a program executed by the CPU core, an OS (Operating System) and a program for analysis processing are recorded. The OS and the program for analysis processing may be recorded in a nonvolatile semiconductor memory device.
  • the pre-stage analysis unit 110 and the post-stage analysis unit 120 perform data analysis processing in the CPU cores assigned to them.
  • the analysis execution unit 100 according to the present embodiment corresponds to the analysis execution unit 1 according to the first embodiment.
  • the load observation unit 200 observes the load of the calculation resource of the analysis execution unit 100 and stores the observed result in the observation data storage unit 400 as load observation data.
  • the load observation unit 200 observes, for example, a consumption amount of a CPU core or a memory that is a calculation resource of the analysis execution unit 100 as a calculation resource load.
  • the consumption amount of the CPU core is observed as, for example, the usage time of the CPU core.
  • the memory consumption is observed as a value of the storage capacity used for the analysis process.
  • the load observation unit 200 may observe the throughput of analysis processing as load observation data.
  • FIG. 4 shows an example of load observation data observed by the load observation unit 200 in the video analysis system.
  • the load observation data shown in FIG. 4 includes phase ID, camera ID, worker ID, consumed CPU, consumed memory, and observation date / time information.
  • the phase ID indicates which of the preceding process and the subsequent process is being performed.
  • the process in the previous process is shown as “face detection”, and the process in the subsequent process is shown as “face special extraction”.
  • As the phase ID a character string, a numerical value, a flag, or the like indicating execution contents can be used.
  • a flag indicating a preceding stage or a subsequent stage may be used for the phase ID.
  • the camera ID indicates the identifier of the camera that is the transmission source of the video data to be analyzed.
  • video data is input from two cameras with camera IDs “1” and “2”.
  • WorkerID indicates the identifiers of the analysis worker 111 and the analysis worker 121.
  • an OS process ID As the identifier of the Worker ID, an OS process ID, a sequence number assigned at the time of startup, a character string, or the like can be used.
  • the consumed CPU and the consumed memory indicate the consumption amounts of the CPU core and the memory, respectively.
  • the observation date / time indicates the date / time when the load observation data was observed.
  • the content variation observation unit 300 observes the content change of the analysis target data in the pre-analysis unit 110 and stores the observation result in the observation data storage unit 400 as content observation data.
  • the content variation observation unit 300 acquires the number of analysis result data output from the upstream analysis unit 110 to the subsequent analysis unit 120 and the number of analysis result data held internally, and stores the data in the observation data storage unit 400.
  • data held internally by the upstream analysis unit 110 without being output to the downstream analysis unit 120 is referred to as internal information.
  • the content variation observation unit 300 of the present embodiment corresponds to the content variation observation means 2 of the first embodiment.
  • the internal information corresponds to a face detection result that is not sent to the processing of the post-analysis unit 120 because it is smaller than the reference among the faces detected by the pre-analysis unit 110 from the image.
  • FIG. 5 shows an example of content observation data in the video analysis system.
  • the content observation data in FIG. 5 includes a phase ID, a camera ID, items, analysis results, internal information, and observation date / time information.
  • the phase ID indicates the processing content to be observed.
  • the phase ID “face detection” indicates a face detection process in the preceding step.
  • a numerical value or a flag may be used instead of the character string indicating the analysis content.
  • the camera ID indicates the identifier of the camera that is the transmission source of the video data for analysis.
  • the item indicates the attribute of the video data being observed. Since the number of faces included in the video data is a processing target, in FIG. 5, “number of targets” is set as an item.
  • the analysis result indicates the number of data included in the data output from the analysis worker 111 of the upstream analysis unit 110 to the downstream analysis unit 120.
  • the internal information indicates the number of data that the analysis worker 111 of the upstream analysis unit 110 does not output to the downstream analysis unit 120.
  • the analysis result and the content information may be other than numerical data.
  • the analysis result and the content information may be values such as a matrix or a vector, for example.
  • the observation date and time indicates the date and time when the content observation data was observed.
  • the observation data storage unit 400 stores content change information of the analysis target data acquired by the content variation observation unit 300 from the upstream analysis unit 110.
  • the content change refers to, for example, a change in the number of data of analysis results and content information.
  • the observation data storage unit 400 stores load observation data of the analysis execution unit 100 observed by the load observation unit 200.
  • the observation data storage unit 400 is configured by, for example, a semiconductor storage device.
  • the observation data storage unit 400 may be configured by another storage device such as a hard disk drive.
  • the resource allocation unit 500 dynamically changes allocation of computational resources such as CPU cores and memories to the subsequent analysis unit 120 based on the content observation data obtained by observing changes in the analysis processing performed by the previous analysis unit 110. It has the function to do.
  • the resource allocation unit 500 further includes a load fluctuation prediction unit 501 and a resource allocation planning unit 502.
  • the load fluctuation prediction unit 501 predicts the load generated by the post-analysis unit 120 based on the content observation data and the load observation data.
  • the load fluctuation prediction unit 501 acquires the content observation data and the load observation data from the observation data storage unit 400, predicts the load of the subsequent analysis unit 120, and outputs the load information to the resource allocation planning unit 502.
  • the resource allocation planning unit 502 changes the amount of calculation resources allocated to the subsequent analysis unit 120 based on the load information. For example, the resource allocation planning unit 502 increases or decreases the number of OS processes corresponding to the analysis worker 121. By changing the number of CPU cores allocated to the analysis worker 121, the capacity of the memory, and the like, optimal allocation of resources can be performed. Further, the resource allocation unit 500 of this embodiment corresponds to the resource allocation unit 3 of the first embodiment.
  • the load observation unit 200, the content variation observation unit 300, and the resource allocation unit 500 are configured by a CPU, a semiconductor storage device, and a hard disk drive in which a program for executing each process is recorded.
  • the load observation unit 200, the content variation observation unit 300, and the resource allocation unit 500 may be independent units or may operate in the same unit. Further, the CPU and the storage device constituting the load observation unit 200, the content variation observation unit 300, and the resource allocation unit 500 are the same unit as either or both of the analysis execution unit 100 and the observation data storage unit 400. Also good.
  • the data acquisition unit 20 acquires data for analysis and sends the acquired data to the analysis node 10.
  • the data acquisition unit 20 corresponds to, for example, a camera that captures video. Video data shot by the camera is transmitted to the analysis node 10 via a communication line.
  • the analysis system of the present embodiment includes two data acquisition units 20. The number of data acquisition units 20 may be other than two.
  • FIG. 6 shows the system startup operation in the analysis system of this embodiment.
  • the analysis execution unit 100 activates the analysis worker 111 and the analysis worker 121 in an initial arrangement (step A1).
  • the initial arrangement is set in advance based on the specifications of the analysis system.
  • the analysis execution unit 100 analyzes the analysis target data input from the data acquisition unit 20.
  • the analysis worker 111 of the upstream analysis unit 110 analyzes the input data as a previous process.
  • the pre-analysis unit 110 sends the analysis result to the post-analysis unit 120 as a result of the primary processing in the pre-process.
  • the analysis worker 121 of the post-analysis unit 120 analyzes the processing result of the primary processing as a post-process.
  • the post-analysis unit 120 outputs the analysis result as a result of secondary processing in the post-process, that is, as a final result.
  • the analysis execution unit 100 repeatedly analyzes and outputs input analysis target data each time the analysis target data is input.
  • FIG. 7 shows an operation flow when dynamically changing the allocation of computing resources in the analysis system of this embodiment.
  • the load observation unit 200 monitors the loads of the upstream analysis unit 110 and the subsequent analysis unit 120 of the analysis execution unit 100.
  • the load observation unit 200 collects the load information of the former analysis unit 110 and the latter analysis unit 120 as load observation data (step B1).
  • the load observation unit 200 stores the collected load observation data in the observation data storage unit 400.
  • the content variation observation unit 300 collects the analysis result and internal information from the previous analysis unit 110 as content observation data (step B2).
  • the content variation observation unit 300 stores the collected content observation data in the observation data storage unit 400.
  • the load fluctuation prediction unit 501 predicts the load fluctuation of the subsequent analysis unit 120 based on the load observation data and the content observation data stored in the observation data storage unit 400. (Step B3).
  • the load fluctuation prediction unit 501 predicts the load fluctuation of the post-analysis unit 120 by, for example, learning model based prediction based on the past load fluctuation history. Further, the load fluctuation prediction unit 501 may perform the load fluctuation prediction of the post-analysis unit 120 by rule-based prediction based on a preset rule. When the load fluctuation prediction unit 501 performs the load fluctuation prediction, the load fluctuation prediction unit 501 sends the prediction result to the resource allocation planning unit 502.
  • the resource allocation planning unit 502 Upon receiving the load fluctuation prediction result, the resource allocation planning unit 502 changes the number of analysis workers 121 in the post-analysis unit 120 and the allocation of computing resources to the analysis workers 121 (step B4).
  • the analysis execution unit 100 analyzes and outputs input analysis target data based on the reset configuration.
  • the analysis system is operating (No in Step B5), each part of the analysis node 10 repeats the processing from Step B1.
  • the analysis system is stopped (Yes in step B5), each part of the analysis node 10 stops operating.
  • the analysis system of this embodiment is used as a video analysis system.
  • a two-stage process of human face detection and feature quantity extraction for video data input from two cameras as the data acquisition unit 20 is provided with a CPU having six cores as analysis nodes 10.
  • An explanation will be given of an example of an operation when processing is performed by the server.
  • the analysis worker 111 that performs face detection processing in the pre-analysis unit 110 has one process set for each camera, that is, two processes in total.
  • the analysis worker 121 that performs facial feature amount extraction processing in the latter-stage analysis unit 120 is initially set to five processes, that is, two processes for the camera 1 and three processes for the camera 2. Each process can use up to one CPU core.
  • the analysis execution unit 100 analyzes the video data based on the initial setting. Based on the initial setting, when the analysis execution unit 100 is analyzing the input data, the content variation observation unit 300 collects the content observation data from the upstream analysis unit 110 and observes the data. The data is stored in the data storage unit 400.
  • FIG. 8 schematically shows an example of a video frame included in a video input to the analysis node 10.
  • the upstream analysis unit 110 detects, for example, the face of a person passing through the passage 801 in the image.
  • the pre-analysis unit 110 determines that, of the detected face 802 and face 803, the face 803 that is captured in a sufficiently large size close to the camera has sufficient quality as input data such as face matching. If the quality is sufficient as input data for face collation or the like, the pre-analysis unit 110 sends information on the detection of the face 803 to the post-analysis unit 120 as an analysis result for use in extracting facial feature values. In addition, the front-end analysis unit 110 determines that the face 802 that is far away from the camera is incompatible as input data such as face collation, and is not sent to the rear-end analysis unit 120. The pre-analysis unit 110 holds the number of data of the face 802 that is not sent to the post-analysis unit 120 as internal information.
  • the content variation observation unit 300 uses 5 which is the number of faces 803 reflected in a sufficiently large size as the analysis result for the camera 1. get. Further, the content fluctuation observation unit 300 acquires 12 as the internal information about the camera 1 which is the number of the faces 802 that are far and small from the camera. When acquiring the analysis result and the number of internal information, the content fluctuation observation unit 300 stores the acquired analysis result and the number of internal information in the observation data storage unit 400 as internal observation data.
  • the load observation unit 200 collects load information from the analysis worker 111 and the analysis worker 121 in the analysis execution unit 100.
  • the load observation unit 200 stores the collected load information in the observation data storage unit 400 as load observation data.
  • the load fluctuation prediction unit 501 acquires content observation data from the observation data storage unit 400 from ⁇ t time before the current time T.
  • the load fluctuation prediction unit 501 predicts a content change based on the acquired content observation data.
  • FIG. 9 is a conceptual diagram illustrating an example in which prediction is performed on a model basis.
  • the load fluctuation prediction unit 501 holds a plurality of model functions f 1 (R, I) to f N (R, I) that express load fluctuations.
  • R is the number of analysis results in the content observation data.
  • I is the number of internal information data in the content observation data.
  • the load fluctuation prediction unit 501 selects the model f n (R, I) that best represents the latest content fluctuation.
  • F n (5, 12) is calculated as an argument of.
  • the load fluctuation prediction unit 501 predicts the number of data to be analyzed in the subsequent analysis unit 120 after time T + 1.
  • the load fluctuation prediction unit 501 also predicts the load in the rear-stage analysis unit 120 for the camera 2 by the same method.
  • the load fluctuation prediction unit 501 sends the prediction result to the resource allocation planning unit 502.
  • the load fluctuation prediction unit 501 may perform the load fluctuation prediction by another prediction method such as a rule base instead of the model-based method as described above.
  • the resource allocation planning unit 502 Upon receiving the load fluctuation prediction result from the load fluctuation prediction unit 501, the resource allocation planning unit 502, based on the load observation data stored in the observation data storage unit 400 and the load prediction value of the load fluctuation prediction result, The optimum value of the number of analysis workers 121 in the subsequent analysis unit 120 is calculated.
  • FIG. 10 schematically shows an example of the real number and the predicted value of the number of data to be analyzed in the latter-stage analysis unit 120 and the number of analysis workers 121.
  • the load fluctuation prediction unit 501 predicts an increase in the load on the camera 1 after time T.
  • 179% of the CPU core has already been consumed for the facial feature amount extraction processing of the camera 1. Since 200% of the usable amount of CPU cores allocated to two processes is already consumed by 179%, there is a high possibility that the load cannot be increased.
  • the resource allocation planning unit 502 increases the analysis worker 121 of the camera 1 by one process and reduces the analysis worker 121 of the camera 2 by one process in the processing after time T.
  • the processing in the downstream analysis unit 120 can be performed efficiently.
  • the resource allocation unit 500 predicts the load of the subsequent analysis unit 120 based on the content variation observation data of the previous analysis unit 110. Further, the resource allocation unit 500 increases or decreases only the number of analysis workers of the post-analysis unit 120 based on the load prediction. Therefore, the analysis system of the present embodiment can optimize the allocation of calculation resources without stopping the analysis node 10 when changing the allocation of calculation resources.
  • the content variation observation unit 300 observes the variation in the content to be analyzed.
  • the resource allocation unit 500 predicts the load of the post-analysis unit 120 based on the observation result of the content change. Therefore, the resource allocation unit 500 can change the number of analysis workers 121 to an optimal number before the load on the downstream analysis unit 120 actually increases or decreases. Therefore, the analysis system of this embodiment can achieve both real-time performance and high throughput in a system in which load fluctuations frequently occur. That is, the analysis system according to the present embodiment can appropriately manage calculation resources corresponding to load fluctuations and continuously perform analysis processing with high throughput.
  • FIG. 11 shows the configuration of the analysis system of this embodiment.
  • the analysis system of this embodiment includes a first analysis node 30, a second analysis node 40, and a data acquisition unit 20. Yes.
  • the configuration of the data acquisition unit 20 is the same as that of the second embodiment.
  • the analysis system according to the present embodiment is characterized in that when the first analysis node 30 cannot allocate sufficient calculation resources for the subsequent process, a part of the analysis processing is distributed in the second analysis node 40. Similar to the second embodiment, the analysis system of the present embodiment can be used for a video analysis system that detects a human face from input video data and further extracts the detected facial features.
  • FIG. 12 is a block diagram showing the configuration of the first analysis node 30 of this embodiment.
  • the first analysis node 30 includes an analysis execution unit 600, a load observation unit 200, a content variation observation unit 300, an observation data storage unit 400, and a resource allocation unit 700.
  • the configurations and functions of the load observation unit 200, the content variation observation unit 300, and the observation data storage unit 400 of the present embodiment are the same as the parts having the same names in the second embodiment.
  • the analysis execution unit 600 analyzes the data input from the data acquisition unit 20.
  • the analysis execution unit 600 further includes a pre-stage analysis unit 110 and a post-stage analysis unit 620.
  • the upstream analysis unit 110 further includes a plurality of analysis workers 111.
  • the configurations and functions of the upstream analysis unit 110 and the analysis worker 111 of the present embodiment are the same as the parts having the same names in the second embodiment.
  • the post-analysis unit 620 further includes a plurality of analysis workers 121 and a task transmission unit 630.
  • the configuration and function of the analysis worker 121 of this embodiment are the same as those of the analysis worker 121 of the second embodiment.
  • the task transmission unit 630 has a function of transmitting an analysis task to another analysis node based on the control of the resource allocation planning unit 702. Based on the transmission instruction from the resource allocation planning unit 702, the task transmission unit 630 determines the analysis task that the resource allocation planning unit 702 has determined that the subsequent analysis unit 620 of its own device cannot process. Send to.
  • the analysis execution unit 600 is configured by a CPU having a plurality of cores, a semiconductor memory device, a hard disk drive for recording a program executed by the CPU core, and the like, similar to the analysis execution unit 100 of the second embodiment.
  • the resource allocation unit 700 includes a load fluctuation prediction unit 501 and a resource allocation planning unit 702.
  • the configuration and function of the load fluctuation prediction unit 501 of the present embodiment are the same as those of the load fluctuation prediction unit 501 of the second embodiment.
  • the resource allocation planning unit 702 has the same function as the resource allocation planning unit 502 of the second embodiment.
  • the resource allocation planning unit 702 further has a function of determining whether a calculation resource necessary for the analysis task processing is within a calculation resource allocated to the subsequent analysis unit 620 of the own device.
  • the resource allocation planning unit 702 gives an instruction to transmit a part of the analysis task to the second analysis node 40 when it is determined that the subsequent analysis unit 620 of the own device cannot secure the calculation resource necessary for the processing of the analysis task.
  • the data is sent to the task transmission unit 630.
  • the resource allocation unit 700 includes a CPU, a semiconductor storage device, and a hard disk drive in which a program for executing each process is recorded.
  • the second analysis node 40 can use an analysis node having the same configuration as that of the first analysis node 30. Further, the second analysis node 40 may be an analysis node that executes only the process of the subsequent stage.
  • FIG. 13 shows an operation flow when part of the analysis processing is performed by distributed processing in the analysis system of the present embodiment.
  • the operation of collecting the content observation data and the load observation data is performed in the second implementation. It is the same as the form.
  • the load observation unit 200 monitors the front-end analysis unit 110 and the rear-end analysis unit 620 of the analysis execution unit 600, and the front-end analysis unit 110. And the load observation data of the back
  • the load observation unit 200 stores the collected load observation data in the observation data storage unit 400.
  • the content variation observation unit 300 collects the analysis result and internal information from the previous analysis unit 110 as content observation data.
  • the content variation observation unit 300 stores the collected content observation data in the observation data storage unit 400.
  • the load fluctuation prediction unit 501 predicts the load fluctuation of the subsequent analysis unit 620 based on the load observation data and the content observation data stored in the observation data storage unit 400. .
  • the load fluctuation prediction unit 501 predicts the load fluctuation
  • the load fluctuation prediction unit 501 sends the prediction result to the resource allocation planning unit 702.
  • the resource allocation planning unit 702 reviews the calculation resource allocation of the subsequent analysis unit 620 (step C1).
  • each part of the first analysis node 30 stops processing.
  • the resource allocation planning unit 702 receives the load fluctuation prediction result, and determines whether or not necessary calculation resources can be secured in the subsequent analysis unit 620.
  • the resource allocation planning unit 702 like the second embodiment, the number of analysis workers in the post-analysis unit 620 and the resources to the analysis workers Change the assignment of.
  • the analysis execution unit 600 analyzes and outputs the input analysis target data based on the reset configuration.
  • the analysis execution unit 600 performs the analysis process based on the reset configuration, each part of the first analysis node 30 repeatedly performs the operation from Step C1.
  • the resource allocation planning unit 702 If the necessary resources cannot be secured (No in Step C3), the resource allocation planning unit 702 generates a task transmission unit 630 (Step C4). When the task transmission unit 630 is generated, the resource allocation planning unit 702 sends an instruction to the task transmission unit 630 to transmit a part of the analysis task in the subsequent analysis unit 620 to the second analysis node 40.
  • the task transmission unit 630 transmits the instructed analysis task to the second analysis node 40 (step C5).
  • the subsequent analysis unit 620 and the second analysis node 40 of the first analysis node 30 process the analysis task assigned to each, and output the processing result as a final result.
  • the resource allocation planning unit 702 Based on the load observation data stored in the observation data storage unit 400 and the load prediction data predicted by the load fluctuation prediction unit 501, the resource allocation planning unit 702 optimizes the number of analysis workers 121 in the subsequent analysis unit 620. Is calculated.
  • the load fluctuation prediction unit 501 predicts an increase in the load on the camera 1 as shown in FIG. 10. However, as shown in FIG. 4, in the facial feature extraction process of the camera 1, 179% is consumed for the processing capacity corresponding to the 200% usable amount of the CPU core allocated to the two processes. Therefore, the resource allocation planning unit 702 determines that the current setting cannot withstand the increasing load.
  • the resource allocation planning unit 702 determines that it is not possible to execute all processes in the subsequent process in its own device.
  • the resource allocation planning unit 702 determines that all processing cannot be performed in the own device, the resource allocation planning unit 702 generates a task transmission unit 630 and assigns an analysis task corresponding to one process of the analysis worker 121 of the subsequent analysis unit 620 to the task transmission unit 630. To the second analysis node 40. By performing distributed processing at the first analysis node 30 and the second analysis node 40, the processing can be continued without reducing the processing speed.
  • the resource allocation planning unit 702 generates a task transmission unit 630 for transmitting a task to the second analysis node 40 in addition to the increase / decrease of the analysis worker 121 of the first analysis node 30. is doing.
  • the task transmission unit 630 distributes analysis tasks that cannot be processed by the own device to the second analysis node 40, the load increases beyond the processing capability of the own device. Even the throughput of the entire analysis system can be maintained.
  • the analysis system may include three or more analysis nodes.
  • the analysis node as the task transmission source may distribute the task evenly to other analysis nodes, or may transmit the task to an analysis node with a small load.
  • analysis data may be input to each analysis node from a camera or the like, and analysis processing may be performed at each analysis node, and tasks may be transmitted to each other when processing capacity is insufficient.
  • the task is directly transmitted from the first analysis node 30 to the second analysis node 40.
  • the task is uniformly distributed to a plurality of analysis nodes via the message queue. It is good also as a structure.
  • the two-stage process of the pre-stage process and the post-stage process is performed, but an analysis process of three or more stages may be performed. Even when three or more stages of analysis processing are performed, the analysis system can be changed by dynamically changing the calculation resources allocated to the subsequent process rather than the process in which the content fluctuation is observed, based on the content fluctuation of any of the processes. It is possible to appropriately manage computing resources corresponding to load fluctuations without stopping.
  • the analysis systems of the second and third embodiments operate based on the initial settings at the time of startup, but operate based on the allocation of computing resources to the subsequent process when operating at the time of startup. May be performed. By adopting such a configuration, it becomes possible to efficiently operate using computational resources from the time of startup.
  • the video analysis system that detects a human face has been described as an example.
  • the analysis target of the video analysis system may be a living thing or an object other than a person.
  • the analysis systems of the second and third embodiments may be used for systems other than the video analysis system as long as the data is processed by a plurality of stages of processing.
  • Processing corresponding to each function of the analysis node of the first to third embodiments may be executed by a computer as a computer program.
  • a program that can cause a computer to execute the processes shown in the first to third embodiments can be stored in a recording medium and distributed.
  • a recording medium for example, a magnetic tape such as a data recording magnetic tape or a hard disk can be used.
  • an optical disc such as a CD-ROM (Compact Disc Read Only Memory) or a DVD (Digital Versatile Disc), or a magneto-optical disc (MO) can be used.
  • a semiconductor memory may be used as a recording medium.

Abstract

[課題]負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる解析ノードを得る。 [解決手段]解析ノードを、解析実行手段1と、内容変動観測手段2と、資源割当手段3を備える構成とする。解析実行手段1は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段2は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段3は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。

Description

解析ノード、リソース管理方法およびプログラム記録媒体
 本発明は、解析処理に関するものであり、特に、複数段階の解析処理を行う際の技術に関するものである。
 映像解析システムなどでは継続的に生じるデータを短時間で解析することが要求され得る。また、リアルタイム性が要求される用途では、解析対象となるデータが増大した場合にも、スループットを低下させずに解析処理を行うことが要求される。そのため、映像解析システムなどでは解析を行うサーバの計算資源、すなわち、リソースを解析処理に適切に割り当てる必要がある。そのような映像解析リソース管理システムの一例として、非特許文献1のような技術が開示されている。
 図14は、非特許文献1に示されている映像解析リソース管理システムの構成の概要を示したものである。非特許文献1の映像リソース管理システムは、配置管理サーバ(Nimbus)と、解析ワーカノード群(Worker node)と、スケジューラプラグイン(Scheduler plugins)を備えている。また、非特許文献1の映像リソース管理システムは、解析実行ワーカプロセス(Worker Process)と、性能情報モニタスレッド(Monitoring thread)と、性能情報蓄積部(Performance log)をさらに備えている。
 図14の映像解析リソース管理システムでは、性能情報モニタスレッドが、解析実行ワーカプロセスのCPU(Central Processing Unit)使用時間などの性能情報を収集し、性能情報蓄積部へ蓄積する。図14の映像解析リソース管理システムでは、スケジューラプラグインは、収集された性能情報を基に、最適なプロセス数やスレッド数を定期的に算出し新しい配置プランを生成する。図14の映像解析リソース管理システムでは、配置管理サーバは、全解析ワーカの解析実行ワーカプロセスを停止し、生成された新しい配置プランに基づいて、新しい解析実行ワーカプロセスを全解析ワーカで起動する。
Leonardo Aniello et. al, "Adaptive Online Scheduling in Storm", DEBS ’13 Proceeding of the 7th ACM International conference, Association for Computing Machinery, p.207-p.209
 しかしながら、非特許文献1の技術は次のような点で十分ではない。非特許文献1の技術では、生成される新しい配置プランに対応するために解析実行ワーカプロセスの停止および起動が行われ、再配置中に定期的に解析処理の一時停止が生じる。また、定期的な再配置処理では、頻繁に負荷変動が生じた際にリソースの過不足が生じ、遊休リソースの発生によるスループットの低下や、リソース待ちの行列の発生による遅延が生じ得る。そのため、非特許文献1の技術では、負荷変動が頻繁に発生するシステムでは、リアルタイム性と高スループットの両立を行うことができない。
 本発明は、上記の課題を解決するため、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる解析ノード、リソース管理方法およびリソース管理プログラムを得ることを目的としている。
 上記の課題を解決するため、本発明の解析ノードは、解析実行手段と、内容変動観測手段と、資源割当手段を備えている。解析実行手段は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。
 本発明のリソース管理方法は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する際に、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。本発明のリソース管理方法は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して後段工程に割り当てられている計算資源を変更する。
 本発明のリソース管理プログラムは、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する際に、内容変動観測処理と、資源割当処理をコンピュータに実行させる。内容変動観測処理は、複数の工程からなる解析処理について、前段工程の解析処理から対象データの内容変動を観測する。資源割当処理は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して後段工程に割り当てられている計算資源を変更する。
 本発明によると、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
本発明の第1の実施形態の構成の概要を示す図である。 本発明の第2の実施形態の構成の概要を示す図である。 本発明の第2の実施形態の解析ノードの構成を示すブロック図である。 本発明の第2の実施形態の負荷観測データの例を示す図である。 本発明の第2の実施形態の内容観測データの例を示す図である。 本発明の第2の実施形態における動作フローを示す図である。 本発明の第2の実施形態における動作フローを示す図である。 本発明の第2の実施形態における入力データの例を模式的に示した図である。 本発明の第2の実施形態の負荷変動の予測処理におけるデータの例を示した図である。 本発明の第2の実施形態における処理負荷と資源割当の例を示した図である。 本発明の第3の実施形態の構成の概要を示す図である。 本発明の第3の実施形態の解析ノードの構成を示すブロック図である。 本発明の第3の実施形態における動作フローを示す図である。 本発明と対比した構成の解析システムの例を示す図である。
 [第1の実施形態]
 [第1の実施形態の構成]
 本発明の第1の実施形態について図を参照して詳細に説明する。図1は、本実施形態の解析ノードの構成の概要を示したものである。本実施形態の解析ノードは、解析実行手段1と、内容変動観測手段2と、資源割当手段3を備えている。解析実行手段1は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段2は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段3は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。
 [第1の実施形態の効果]
 本実施形態の解析ノードは、内容変動観測手段2において、前段工程の内容変化を内容変動観測情報として観測している。また、本実施形態の解析ノードは、資源割当手段3において内容変動観測情報を基に後段工程の負荷の変動を予測して、予測結果を基に後段工程に割り当てられている計算資源を変更している。このように、前段工程の変化を基に、後段工程の負荷を予測して、後段工程への計算資源の割り当てを変更することで、負荷が変動した際にスループットを低下させることなく、解析処理を行うことができる。また、本実施形態の解析ノードは、解析処理を行っている際に前段工程の変化を基に、後段工程への計算資源の割り当てを動的に変更することができるので、計算資源の割り当ての変更を行う際に解析処理の停止を必要としない。その結果、本実施形態の解析ノードを用いることで、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
 [第2の実施形態]
 [第2の実施形態の構成]
 本発明の第2の実施形態について図を参照して詳細に説明する。図2は、本実施形態の解析システムの構成を示したものである、本実施形態の解析システムは、解析ノード10と、データ取得部20を備えている。
 本実施形態の解析システムは、データ取得部20から解析ノード10に入力されたデータの解析を、解析ノード10において前段工程と後段工程の2段階の解析処理によって行う。本実施形態の解析システムは、例えば、入力された映像データから人の顔を検出し、さらに検出した顔の特徴を抽出する映像解析システムとして用いられる。
 解析ノード10の構成について説明する。図3は、本実施形態の解析ノード10の構成を示すブロック図である。解析ノード10は、解析実行部100と、負荷観測部200と、内容変動観測部300と、観測データ記憶部400と、資源割当部500を備えている。
 解析実行部100は、データ取得部20から入力されたデータの解析処理を行う。解析実行部100は、前段解析部110と、後段解析部120をさらに備えている。前段解析部110は、複数の解析ワーカ111をさらに備えている。また、後段解析部120は、複数の解析ワーカ121をさらに備えている。図3では、解析ワーカ111および解析ワーカ121をそれぞれ2つずつ備えている例を示しているが、解析ワーカ111および解析ワーカ121は、単数であってもよく、また、3つ以上であってもよい。
 解析実行部100は、前段解析部110の解析ワーカ111において、入力されたデータに前段工程として1次処理を施す。また、解析実行部100は、後段解析部120の解析ワーカ121において、1次処理の処理結果に後段工程として2次処理を施して最終結果として出力する。前段解析部110の解析ワーカ111は、1次処理の処理結果のデータのうち所定の品質基準を満たしたデータのみを後段解析部120に出力する。所定の品質基準は、後段工程における解析処理を正常に行うことができるデータであるかを判断する基準として設定されている。
 本実施形態の解析システムが、例えば、映像解析システムとして用いられているとき、解析ワーカ111は、前段工程として、データ取得部20から映像データから、映像に映っている人の顔を検出する。前段解析部110の解析ワーカ111は、検出した顔のうち基準以上の大きさの顔のデータを解析結果として後段解析部120に出力する。
 前段解析部110が解析結果のデータとして出力する顔の大きさを判断する際の基準は、後段解析部120における後段工程において顔の特徴量を抽出するために十分な大きさとしてあらかじめ設定されている。すなわち、本実施形態の解析システムが映像解析システムとして用いられているとき、所定の品質基準は、顔の大きさとして設定されている。
 後段解析部120は、解析ワーカ121において前段解析部110から入力されたデータの後段工程の解析処理を行って、処理結果を最終結果として出力する。本実施形態の解析システムが映像解析システムとして用いられているとき、後段解析部120の解析ワーカ121は、後段工程として、解析ワーカ111において検出された顔から顔の特徴量を抽出する。すなわち、前段解析部110は、解析タスクとして入力された映像データから顔の検出を行う。また、後段解析部12は、解析タスクとして検出された顔から顔の特徴量のデータの抽出を行う。
 解析実行部100は、複数のコアを有するCPU(Central Processing Unit)、半導体記憶装置およびCPUコアで実行するプログラムを記録するハードディスクドライブ等によって構成されている。CPUコアで実行するプログラムとしては、OS(Operating System)および解析処理用のプログラムが記録されている。OSおよび解析処理用のプログラムは、不揮発性の半導体記憶装置に記録されていてもよい。前段解析部110および後段解析部120は、それぞれに割り当てられたCPUコアにおいてデータの解析処理を行う。また、本実施形態の解析実行部100は、第1の実施形態の解析実行手段1に相当する。
 負荷観測部200は、解析実行部100の計算資源の負荷を観測し、観測した結果を負荷観測データとして観測データ記憶部400に保存する。負荷観測部200は、計算資源の負荷として、例えば、解析実行部100の計算資源であるCPUコアやメモリの消費量を観測する。CPUコアの消費量は、例えば、CPUコアの使用時間として観測される。また、メモリの消費量は、解析処理に使用している記憶容量の値として観測される。負荷観測部200は、負荷観測データとして解析処理のスループットを観測してもよい。
 図4は、映像解析システムにおいて負荷観測部200が観測した負荷観測データの例を示したものである。図4の負荷観測データは、フェーズID、カメラID、WorkerID、消費CPU、消費メモリおよび観測日時の情報によって構成されている。フェーズIDは、前段工程と後段工程のどちらの処理を行っているかを示している。図4では、前段工程の処理が「顔検出」、後段工程の処理が「顔特抽」として示されている。フェーズIDには、実行内容を示す文字列、数値またはフラグなどを用いることができる。また、フェーズIDには、前段または後段を示すフラグを用いてもよい。カメラIDは、解析対象の映像データの送信元のカメラの識別子を示している。図4では、カメラIDが「1」と「2」の2台のカメラから映像データが入力されている。
 WorkerIDは、解析ワーカ111および解析ワーカ121の識別子を示している。WorkerIDの識別子には、OSのプロセスID、起動時に割り振られたシーケンス番号または文字列などを用いることもできる。消費CPUおよび消費メモリは、CPUコアおよびメモリの消費量をそれぞれ示している。観測日時は、負荷観測データを観測した日時を示している。
 内容変動観測部300は、前段解析部110における解析対象データの内容変化を観測し、観測した結果を内容観測データとして観測データ記憶部400に保存する。内容変動観測部300は、前段解析部110が後段解析部120に出力する解析結果のデータ数と、内部的に保持している解析結果のデータ数を取得し、観測データ記憶部400に保存する。本実施形態では、前段解析部110が後段解析部120に出力せずに内部的に保持しているデータを内部情報と呼ぶ。また、本実施形態の内容変動観測部300は、第1の実施形態の内容変動観測手段2に相当する。
 解析システムが映像解析システムの場合、内部情報は、前段解析部110が画像から検出した顔のうち、基準よりも小さいために後段解析部120の処理に送られない顔の検出結果が該当する。
 図5は、映像解析システムにおける内容観測データの例を示したものである。図5の内容観測データは、フェーズID、カメラID、項目、解析結果、内部情報および観測日時の情報によって構成されている。フェーズIDは、観測対象の処理内容を示している。フェーズIDの「顔検出」は、前段工程における顔の検出処理を示している。フェーズIDには、解析内容を示す文字列に代えて、数値やフラグなどをもちいてもよい。カメラIDは、解析用の映像データの送信元のカメラの識別子を示している。項目は、観測している映像データの属性を示している。映像データに含まれる顔の数を処理対象とするので、図5では、項目として「対象数」が設定されている。解析結果は、前段解析部110の解析ワーカ111が後段解析部120に出力するデータに含まれるデータ数を示している。内部情報は、前段解析部110の解析ワーカ111が後段解析部120に出力しないデータ数を示している。解析結果および内容情報は、数値データ以外であってもよい。解析結果および内容情報は、例えば、行列やベクトルなどの値であってもよい。観測日時は、内容観測データを観測した日時を示している。
 観測データ記憶部400は、内容変動観測部300が前段解析部110から取得した解析対象データの内容変化の情報を保存する。内容変化とは、例えば、解析結果および内容情報のデータ数の変化のことをいう。また、観測データ記憶部400は、負荷観測部200が観測した解析実行部100の負荷観測データを保存する。観測データ記憶部400は、例えば、半導体記憶装置によって構成されている。観測データ記憶部400は、ハードディスクドライブ等の他の記憶装置によって構成されていてもよい。
 資源割当部500は、前段解析部110で行われている解析処理の変化を観測した内容観測データを基に、後段解析部120へのCPUコアやメモリ等の計算資源の割り当てを動的に変更する機能を有する。資源割当部500は、負荷変動予測部501と、資源割当計画部502をさらに備えている。
 負荷変動予測部501は、内容観測データと、負荷観測データを基に、後段解析部120で発生する負荷を予測する。負荷変動予測部501は、観測データ記憶部400から内容観測データおよび負荷観測データを取得し、後段解析部120の負荷を予測し、負荷情報として資源割当計画部502に出力する。
 資源割当計画部502は、負荷情報を基に後段解析部120に割り当てられている計算資源量を変更する。資源割当計画部502は、例えば、解析ワーカ121に対応するOSのプロセス数を増減させる。解析ワーカ121に割り当てられるCPUコアの数やメモリの容量などを変更することで、資源の最適な割り当てを行うことができる。また、本実施形態の資源割当部500は、第1の実施形態の資源割当手段3に相当する。
 負荷観測部200、内容変動観測部300および資源割当部500は、CPU、半導体記憶装置および各処理を実行するプログラムが記録されたハードディスクドライブ等によって構成されている。負荷観測部200、内容変動観測部300および資源割当部500は、それぞれ独立したユニットであってもよく、また、同一のユニットにおいて動作してもよい。また、負荷観測部200、内容変動観測部300および資源割当部500を構成するCPUや記憶装置は、解析実行部100および観測データ記憶部400のいずれか、または、両方と同一のユニットであってもよい。
 データ取得部20は、解析用データを取得し、取得したデータを解析ノード10に送る。解析システムが映像解析システムであるとき、データ取得部20は、例えば、映像を撮影するカメラが該当する。カメラによって撮影された映像データは、通信回線を介して解析ノード10に伝送される。本実施形態の解析システムは、データ取得部20を2つ備えている。データ取得部20の数は、2つ以外であってもよい。
 [第2の実施形態の動作]
 本実施形態の解析システムの動作について説明する。始めに解析システムの起動時の動作について説明する。図6は、本実施形態の解析システムにおけるシステム起動動作を示したものである。
 作業者の操作等によって解析システムの起動が行われ解析ノード10が起動すると、解析実行部100は、解析ワーカ111と、解析ワーカ121を初期配置で起動する(ステップA1)。初期配置は、解析システムの仕様等に基づいてあらかじめ設定されている。
 解析ワーカ111および解析ワーカ121を初期配置で起動すると、解析実行部100は、データ取得部20から入力される解析対象のデータの解析を行う。解析実行部100に解析対象のデータが入力されると、前段解析部110の解析ワーカ111は、前段工程として、入力されたデータの解析を行う。前段解析部110は、解析結果を前段工程における1次処理の結果として後段解析部120に送る。
 後段解析部120に1次処理の処理結果が入力されると、後段解析部120の解析ワーカ121は、後段工程として、1次処理の処理結果の解析を行う。後段解析部120は、解析結果を後段工程における2次処理の結果、すなわち、最終結果として出力する。
 解析実行部100は、入力される解析対象のデータの解析および出力を、解析対象のデータが入力されるごとに繰り返し行う。
 次に、本実施形態の解析システムにおいて計算資源の割り当てを変更する際の動作について説明する。図7は、本実施形態の解析システムにおいて計算資源の割り当てを動的に変更する際の動作フローを示したものである。
 解析実行部100が入力されたデータの解析および出力を行っている際に、負荷観測部200は、解析実行部100の前段解析部110および後段解析部120の負荷を監視する。負荷観測部200は、前段解析部110および後段解析部120の負荷の情報を負荷観測データとして収集する(ステップB1)。負荷観測部200は、収集した負荷観測データを観測データ記憶部400に保存する。
 また、内容変動観測部300は、前段解析部110から解析結果と内部情報を内容観測データとして収集する(ステップB2)。内容変動観測部300は、収集した内容観測データを観測データ記憶部400に保存する。
 負荷観測データおよび内容観測データが保存されると、負荷変動予測部501は、観測データ記憶部400に保存された負荷観測データおよび内容観測データを基に、後段解析部120の負荷変動を予測する(ステップB3)。
 負荷変動予測部501は、例えば、過去の負荷変動の履歴を基にした学習モデルベースの予測によって後段解析部120の負荷変動の予測を行う。また、負荷変動予測部501は、あらかじめ設定されたルールに基づくルールベースでの予測によって後段解析部120の負荷変動の予測を行ってもよい。負荷変動予測部501は、負荷変動の予測を行うと、予測結果を資源割当計画部502に送る。
 資源割当計画部502は、負荷変動の予測結果を受け取ると、後段解析部120内の解析ワーカ121の数と解析ワーカ121への計算資源の割り当てを変更する(ステップB4)。資源割当計画部502によって後段解析部120の構成が再設定されると、解析実行部100は、再設定された構成に基づいて、入力される解析対象のデータの解析および出力を行う。解析システムが動作しているとき(ステップB5でNo)、解析ノード10の各部位は、ステップB1からの処理を繰り返し行う。また、解析システムが停止したとき(ステップB5でYes)、解析ノード10の各部位は動作を停止する。
 次に、本実施形態の解析システムを映像解析システムとして用いた場合を例に、解析システムの動作について、より具体的に説明する。以下では、データ取得部20である2台のカメラから入力される映像データについて人の顔の検出と特徴量抽出の2段階の処理を、解析ノード10である6つのコアを有するCPUを備えたサーバで処理する場合の動作を例に説明を行う。また、以下の説明では、前段解析部110において顔検出処理を行う解析ワーカ111は、初期設定として、各カメラについて1プロセス、合計2プロセス設定されているとする。また、後段解析部120において顔の特徴量の抽出処理を行う解析ワーカ121は、初期設定として、カメラ1について2プロセス、カメラ2について3プロセスの合計5プロセス設定されているとする。また、各プロセスはCPUコアを1つまで使用できるものする。
 カメラとして備えられているデータ取得部20から映像データが解析ノード10として備えられているサーバに入力されると、解析実行部100は、初期設定に基づいて映像データの解析を行う。初期設定に基づいて、解析実行部100は、解析実行部100が入力されたデータの解析を行っている際に、内容変動観測部300は、前段解析部110から内容観測データを収集し、観測データ記憶部400に保存する。
 図8は、解析ノード10に入力される映像に含まれる映像フレームの例を模式的に示したものである。図8のような映像フレームを処理する場合には、前段解析部110は、例えば、画像の中の通路801を通行する人の顔を検知する。
 前段解析部110は、検知した顔802および顔803のうち、カメラに近く十分な大きさで写っている顔803について、顔照合などの入力データとして品質が十分であると判断する。顔照合などの入力データとして品質が十分であると、前段解析部110は、顔803を検知した情報を、顔の特徴量の抽出に用いるための解析結果として後段解析部120に送る。また、前段解析部110は、カメラから遠く小さく写っている顔802について、顔照合などの入力データとして不適合と判断し、後段解析部120には送られない。前段解析部110は、後段解析部120に送らない顔802のデータ数を、内部情報として保持する。
 前段解析部110が図8の画像について上記のような処理を行ったとき、内容変動観測部300は、十分な大きさで写っている顔803の数である5をカメラ1についての解析結果として取得する。また、内容変動観測部300は、カメラから遠く小さく写っている顔802の数である12をカメラ1についての内部情報として取得する。内容変動観測部300は、解析結果および内部情報の数を取得すると、取得した解析結果および内部情報の数を内部観測データとして観測データ記憶部400に保存する。
 また、負荷観測部200は、解析実行部100内の解析ワーカ111および解析ワーカ121から負荷情報を収集する。負荷観測部200は、収集した負荷情報を観測データ記憶部400に負荷観測データとして保存する。
 図4の例では、前段解析部110の解析ワーカ111である「Worker ID=顔検出_1-1」プロセスが、CPUコアを78パーセント消費し、732MBのメモリを消費している。サーバは、6コアのCPUによって構成されているので、CPUの消費量は600パーセント以下である必要がある。図4では、解析ワーカ111および解析ワーカ121において実行される5プロセスのCPUコアの使用率の合計は492パーセントである。そのため、図4の例ではCPUコアの使用率に108パーセントの余剰がある。
 次に、負荷変動予測部501は、現時刻TよりΔt時間前からの内容観測データを観測データ記憶部400から取得する。負荷変動予測部501は、取得した内容観測データを基に、内容変化を予測する。図9は、モデルベースで予測を行う場合の例を概念図として示している。
 図9の例では、負荷変動予測部501は、負荷変動を表現する複数のモデル関数f(R,I)からf(R,I)を保持している。Rは、内容観測データ内の解析結果のデータ数である。また、Iは、内容観測データ内の内部情報のデータ数である。
 現時刻TからΔt時間前からの内部観測データを基に、負荷変動予測部501は、直近の内容変動を最もよく表現するモデルf(R,I)を選択する。内容変動を最もよく表現するモデルf(R,I)を選択すると、負荷変動予測部501は、現時刻Tにおける解析結果のデータ数R=5と、内部情報のデータ数I=12をモデルの引数としてf(5,12)を計算する。負荷変動予測部501は、時刻T+1以降の後段解析部120における解析対象のデータ数を予測する。また、負荷変動予測部501は、カメラ2についても同様の方法で後段解析部120における負荷を予測する。負荷変動予測部501は後段解析部120における負荷を予測すると、予測結果を資源割当計画部502に送る。
 負荷変動予測部501は、負荷変動の予測を、上記のようなモデルベースの手法に代えて、ルールベースなどの他の予測手法によって行ってもよい。
 負荷変動予測部501から負荷変動の予測結果を受け取ると、資源割当計画部502は、観測データ記憶部400が保存している負荷観測データと、負荷変動の予測結果の負荷予測値を基に、後段解析部120における解析ワーカ121の数の最適値を算出する。
 図10は、後段解析部120において解析を行うデータ数および解析ワーカ121の数の実数と予測値の例を模式的に示したものである。図10において、負荷変動予測部501は、時刻T以降においてカメラ1の負荷の増加を予測している。しかし、図4に示す負荷観測データでは、既にカメラ1の顔特徴量の抽出処理にCPUコアの179パーセントを消費している。プロセス2つに割り当てられたCPUコアの使用可能量200パーセントに対して、既に179パーセント消費しているため、増加する負荷に耐えられない可能性が高い。
 一方で、図10に示すように、カメラ2については、時刻T以降において、負荷の減少が予測されている。カメラ2の顔特徴量の抽出処理において必要なCPUコアの消費量は164パーセントである。そのため、カメラ2の顔特徴量の抽出処理において必要なCPUコアの消費量はプロセス3つに割り当てられたCPUコアの使用可能量300パーセントに対して余裕がある。このようなとき、資源割当計画部502は、時刻T以降の処理において、カメラ1の解析ワーカ121を1プロセス増加し、カメラ2の解析ワーカ121を1プロセス削減する。
 このように、前段解析部110において行われる処理を監視して、後段解析部120の解析ワーカ121の構成を動的に見直すことで、後段解析部120における処理を効率的に行うことができる。
 [第2の実施形態の効果]
 本実施形態の解析システムでは、資源割当部500が前段解析部110の内容変動観測データを基に、後段解析部120の負荷を予測している。また、資源割当部500は、負荷の予測を基に、後段解析部120の解析ワーカの数だけを増減させている。そのため、本実施形態の解析システムは、計算資源の割り当てを変更する際に、解析ノード10を停止させることなく、計算資源の割り当てを最適化することができる。
 また、本実施形態の解析システムでは、内容変動観測部300が解析対象の内容の変動を観測している。また、資源割当部500は、内容の変動の観測結果を基に、後段解析部120の負荷を予測している。よって、資源割当部500は、実際に後段解析部120の負荷が増加または減少する前に、解析ワーカ121の数を最適な数に変更することできる。そのため、本実施形態の解析システムは、負荷変動が頻繁に発生するシステムにおいて、リアルタイム性と高スループットを両立することができる。すなわち、本実施形態の解析システムは、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
 [第3の実施形態]
 [第3の実施形態の構成]
 本発明の第3の実施形態について図を参照して詳細に説明する。図11は、本実施形態の解析システムの構成を示したものである、本実施形態の解析システムは、第1の解析ノード30と、第2の解析ノード40と、データ取得部20を備えている。データ取得部20の構成は、第2の実施形態と同様である。
 本実施形態の解析システムは、第1の解析ノード30において後段工程に十分な計算資源の割り当てを行えないとき、第2の解析ノード40において解析処理の一部を分散処理することを特徴する。本実施形態の解析システムは、第2の実施形態と同様に、入力された映像データから人の顔を検出し、さらに検出した顔の特徴を抽出する映像解析システムなどに用いることができる。
 第1の解析ノード30の構成について説明する。図12は、本実施形態の第1の解析ノード30の構成を示すブロック図である。第1の解析ノード30は、解析実行部600と、負荷観測部200と、内容変動観測部300と、観測データ記憶部400と、資源割当部700を備えている。
 本実施形態の負荷観測部200、内容変動観測部300および観測データ記憶部400の構成と機能は、第2の実施形態の同名称の部位と同様である。
 解析実行部600は、データ取得部20から入力されたデータの解析を行う。解析実行部600は、前段解析部110と、後段解析部620をさらに備えている。前段解析部110は、複数の解析ワーカ111をさらに備えている。本実施形態の前段解析部110および解析ワーカ111の構成と機能は、第2の実施形態の同名称の部位と同様である。
 後段解析部620は、複数の解析ワーカ121と、タスク送信部630をさらに備えている。本実施形態の解析ワーカ121の構成と機能は、第2の実施形態の解析ワーカ121と同様である。
 タスク送信部630は、資源割当計画部702の制御に基づいて、他の解析ノードに解析タスクを送信する機能を有する。タスク送信部630は、資源割当計画部702が自装置の後段解析部620で処理しきれないと判断した解析タスクを、資源割当計画部702からの送信指示に基づいて、第2の解析ノード40に送信する。
 解析実行部600は、第2の実施形態の解析実行部100と同様に、複数のコアを有するCPU、半導体記憶装置およびCPUコアで実行するプログラムを記録するハードディスクドライブ等によって構成されている。
 資源割当部700は、負荷変動予測部501と、資源割当計画部702を備えている。本実施形態の負荷変動予測部501の構成と機能は、第2の実施形態の負荷変動予測部501と同様である。
 資源割当計画部702は、第2の実施形態の資源割当計画部502と同様の機能を有する。また、資源割当計画部702は、解析タスクの処理に必要な計算資源が自装置の後段解析部620に割り当てられている計算資源内であるかを判断する機能をさらに有する。資源割当計画部702は、解析タスクの処理に必要な計算資源を自装置の後段解析部620において確保できないと判断したときに、解析タスクの一部を第2の解析ノード40に送信する指示をタスク送信部630に送る。
 資源割当部700は、第2の実施形態の資源割当部500と同様に、CPU、半導体記憶装置および各処理を実行するプログラムが記録されたハードディスクドライブ等によって構成されている。
 第2の解析ノード40は、第1の解析ノード30と同一の構成の解析ノードを用いることができる。また、第2の解析ノード40は、後段工程の処理のみを実行する解析ノードであってもよい。
 [第3の実施形態の動作]
 本実施形態の解析システムの動作について説明する。図13は、本実施形態の解析システムにおいて、解析処理の一部を分散処理によって行う際の動作フローを示したものである。
 本実施形態の解析システムにおいて、初期設定でシステムを起動し、初期設定に基づいて解析処理が行われている際に、内容観測データおよび負荷観測データの収集が行われる動作は、第2の実施形態と同様である。
 すなわち、解析実行部600が入力されたデータの解析および出力を行っている際に、負荷観測部200は、解析実行部600の前段解析部110および後段解析部620を監視し、前段解析部110および後段解析部620の負荷観測データを収集する。負荷観測部200は、収集した負荷観測データを観測データ記憶部400に保存する。
 また、内容変動観測部300は、前段解析部110から解析結果と内部情報を内容観測データとして収集する。内容変動観測部300は、収集した内容観測データを観測データ記憶部400に保存する。
 負荷観測データおよび内容観測データが保存されると、負荷変動予測部501は、観測データ記憶部400に保存された負荷観測データおよび内容観測データを基に、後段解析部620の負荷変動を予測する。負荷変動予測部501は、負荷変動の予測を行うと、予測結果を資源割当計画部702に送る。資源割当計画部702は、負荷変動の予測結果を受け取ると、後段解析部620の計算資源の割り当ての見直しを行う(ステップC1)。
 計算資源の割り当ての見直しを行った際に、解析システムが停止しているとき(ステップC2でYes)、第1の解析ノード30の各部位は処理を停止する。
 解析システムが動作を継続しているとき(ステップC2でNo)、資源割当計画部702は、負荷変動の予測結果を受け取ると、後段解析部620において必要な計算資源を確保できるかを判断する。必要な資源を確保できた場合には(ステップC3でYes)、資源割当計画部702は、第2の実施形態と同様に、後段解析部620内の解析ワーカの数や、解析ワーカへの資源の割り当てを変更する。
 資源割当計画部702によって計算資源の構成が再設定されると、解析実行部600は、再設定された構成に基づいて、入力される解析対象のデータの解析および出力を行う。解析実行部600が再設定された構成に基づいて解析処理を行うと、第1の解析ノード30の各部位は、ステップC1からの動作を繰り返し行う。
 必要な資源を確保できない場合には(ステップC3でNo)、資源割当計画部702は、タスク送信部630を生成する(ステップC4)。タスク送信部630を生成すると、資源割当計画部702は、タスク送信部630に後段解析部620における解析タスクの一部を第2の解析ノード40に送信する指示を送る。
 解析タスクの一部を第2の解析ノード40に送信する指示を受け取ると、タスク送信部630は、指示された解析タスクを第2の解析ノード40に送信する(ステップC5)。第1の解析ノード30の後段解析部620および第2の解析ノード40は、それぞれに割り当てられた解析タスクの処理を行い、処理結果を最終結果として出力する。
 また、タスク送信部630から、解析タスクの一部が第2の解析ノード40に送られて解析処理が行われると、第1の解析ノード30の各部位および第2の解析ノード40は、システムが動作している間、上記の動作を繰り返し行う。
 次に、本実施形態の解析システムを映像解析システムに適用した場合において、解析タスクの分散処理を行う場合の動作についてより詳細に説明する。
 以下では、顔の検出と特徴量抽出の2段階からなる映像解析を2台のカメラ映像に対して、5つのコアを有するCPUを備えるサーバで処理する場合について説明する。また、初期配置として、前段解析部110において顔検出処理を行う解析ワーカ111に、各カメラについて1プロセスずつの合計2プロセス設定されているとする。また、後段解析部620において顔の特徴量の抽出を行う処理を行う解析ワーカ621に、カメラ1について2プロセス、カメラ2について3プロセスの合計5プロセスが設定されているとする。また、各プロセスはCPUコアを1つまで使用できるものとする。
 資源割当計画部702は、観測データ記憶部400が保存している負荷観測データと、負荷変動予測部501が予測した負荷予測データを基に、後段解析部620における解析ワーカ121の数の最適値を算出する。
 図4のような状態のとき、図10に示しように負荷変動予測部501は、カメラ1の負荷の増加を予測する。しかし、図4に示すように、既にカメラ1の顔特徴抽出処理では、プロセス2つに割り当てられたCPUコアの使用可能量200パーセント分の処理能力に対して179パーセントを消費している。そのため、資源割当計画部702は、現在の設定では増加する負荷に耐えられないと判断する。
 第1の解析ノード30は、5コアを有するCPUを備えているため、CPUコアの消費量は合計で500パーセントを上回ることはできない。しかし、図4の例では、配備されている解析ワーカ111および解析ワーカ121の合計5プロセスのCPUコア使用率は492パーセントであり、8パーセントの余剰しかない。よって、カメラ1に対して、顔特徴抽出処理を実行するプロセスをさらに追加して計算資源を割り当てることができない。そのため、資源割当計画部702は、自装置において後段工程の処理を全て実行することは出来ないと判断する。
 自装置において全ての処理を実行できないと判断すると、資源割当計画部702は、タスク送信部630を生成し、後段解析部620の解析ワーカ121の1プロセスに相当する解析タスクを、タスク送信部630から第2の解析ノード40に送信する。第1の解析ノード30と第2の解析ノード40で分散処理を行うことで、処理速度を落とすことなく処理を継続することができる。
 [第3の実施形態の効果]
 本実施形態の解析システムでは、資源割当計画部702は、第1の解析ノード30の解析ワーカ121の増減に加えて、第2の解析ノード40にタスクを送信するためのタスク送信部630を生成している。本実施形態の解析システムでは、タスク送信部630が、第2の解析ノード40に、自装置で処理できない解析タスクを分散することで、負荷が自装置の処理の能力を超えて増大した場合にも解析システム全体のスループットを維持することができる。
 第3の実施形態では、解析ノードが2台の例について示したが、解析システムは、解析ノードを3台以上備えていてもよい。そのような構成とした場合に、タスクの送信元の解析ノードは、他の解析ノードにタスクを均等に分配してもよく、負荷の小さい解析ノードにタスクを送信してもよい。また、各解析ノードに、カメラ等から解析用のデータの入力が行われ、それぞれの解析ノードで解析処理を行いつつ、処理能力が足りないときに互いにタスクを送信する構成としてもよい。そのような、構成とすることで、計算資源をより効率的に活用することができる。
 また、第3の実施形態では、第1の解析ノード30から第2の解析ノード40に直接、タスクを送信しているが、メッセージキューを介して、複数の解析ノードに均一にタスクを分散する構成としてもよい。
 第2および第3の実施形態では、前段工程と後段工程の2段階の処理を行っているが、3段階以上の解析処理を行ってもよい。3段階以上の解析処理を行う場合にも、いずれかの工程の内容変動を基に、内容変動を観測した工程よりも後段の工程に割り当てる計算資源を動的に変更することで、解析システムと停止せずに負荷変動に対応して計算資源を適切に管理することができる。
 また、第2のおよび第3の実施形態の解析システムは、起動時に初期設定に基づいて動作しているが、起動時に、以前に動作した際の後段工程への計算資源の割り当てに基づいて動作が行われるようにしてもよい。そのような構成とすることで、起動時から効率的に計算資源を活用して動作することが可能になる。
 第2および第3の実施形態では、人の顔を検出する映像解析システムを例に説明をしたが、映像解析システムの解析対象は、人以外の生物や物であってもよい。また、第2および第3の実施形態の解析システムは、複数段階の処理によってデータを処理する用途であれば、映像解析システム以外の用途のシステムに用いてもよい。
 第1乃至第3の実施形態の解析ノードの各機能に相当する処理は、コンピュータプログラムとしてコンピュータで実行されるようにしてもよい。また、第1乃至第3の実施形態に示した各処理をコンピュータに実行させることのできるプログラムは、記録媒体に格納して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、CD-ROM(Compact Disc Read Only Memory)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto Optical disk)を用いることもできる。半導体メモリを記録媒体として用いてもよい。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2016年11月22日に出願された日本出願特願2016-226465を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  解析実行手段
 2  内容変動観測手段
 3  資源割当手段
 10  解析ノード
 20  データ取得部
 30  第1の解析ノード
 40  第2の解析ノード
 100  解析実行部
 110  前段解析部
 111  解析ワーカ
 120  後段解析部
 121  解析ワーカ
 200  負荷観測部
 300  内容変動観測部
 400  観測データ記憶部
 500  資源割当部
 501  負荷変動予測部
 502  資源割当計画部
 600  解析実行部
 620  後段解析部
 630  タスク送信部
 700  資源割当部
 702  資源割当計画部
 801  通路
 802  顔
 803  顔

Claims (10)

  1.  前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する解析実行手段と、
     前記前段工程における処理対象データの内容変化を内容変動観測情報として観測する内容変動観測手段と、
     前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して、前記後段工程に割り当てられている前記計算資源を変更する資源割当手段と、
     を備えることを特徴とする解析ノード。
  2.  前記内容変動観測手段は、前記前段工程における解析処理の結果のうち、前記前段工程が前記後段工程へ出力する解析結果と、前記前段工程が内部的に保持する内部情報とを観測し、
     前記資源割当手段は、前記解析結果と前記内部情報を基に前記後段工程の処理負荷の変動を予測することを特徴とする請求項1に記載の解析ノード。
  3.  前記内容変動観測情報は、解析対象の映像中に映っている対象物の数を基にした情報であり、
     前記解析結果は、品質基準を満たした対象物であり、前記内部情報は、前記品質基準を満たさない対象物であることを特徴とする請求項2に記載の解析ノード。
  4.  前記後段工程の前記解析実行手段は、複数の解析手段を備え、
     前記資源割当手段は、前記解析手段の数を増減することで、前記後段工程への前記計算資源の割り当てを変更することを特徴とする請求項1から3いずれかに記載の解析ノード。
  5.  前記解析実行手段が解析処理を実行している際の負荷を負荷観測情報として観測する負荷観測手段をさらに備え、
     前記資源割当手段は、前記内容変動観測情報と、前記負荷観測情報とを基に、前記後段工程の処理負荷の変動を予測することを特徴とする請求項1から4いずれかに記載の解析ノード。
  6.  前記負荷観測情報は、前記解析実行手段における前記計算資源の消費量として観測されることを特徴とする請求項5に記載の解析ノード。
  7.  前記解析実行手段は、解析処理を他の解析ノードに要求するタスク送信手段をさらに備え、
     前記資源割当手段は、前記計算資源の不足を検出した場合に、前記タスク送信手段を介して他の解析ノードへ前記後段工程の解析処理の要求を送信することを特徴とする請求項1から6いずれかに記載の解析ノード。
  8.  請求項7に記載の解析ノードからなる第1のノードと
     入力されたデータの解析処理を行う第2のノードと、
     を備え、
     前記第1のノードの前記資源割当手段は、前記計算資源の不足を検出した場合に、前記タスク送信手段を介して前記第2のノードに前記後段工程の解析処理の要求を送信し、
     前記第2のノードは、前記第1のノードから要求された前記後段工程の解析処理を実行することを特徴とする解析システム。
  9.  前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する際に、
     前記前段工程における処理対象データの内容変化を内容変動観測情報として観測し、
     前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して前記後段工程に割り当てられている前記計算資源を変更することを特徴とするリソース管理方法。
  10.  前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する際に、
     前記前段工程の解析処理から対象データの内容変動を内容変動観測情報として観測する内容変動観測処理と、
     前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して前記後段工程に割り当てられている前記計算資源を変更する資源割当処理と、
     をコンピュータに実行させることを特徴とするリソース管理プログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
PCT/JP2017/041476 2016-11-22 2017-11-17 解析ノード、リソース管理方法およびプログラム記録媒体 WO2018097058A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/349,320 US20200192709A1 (en) 2016-11-22 2017-11-17 Analysis node, method for managing resources, and program recording medium
JP2018552544A JP6981427B2 (ja) 2016-11-22 2017-11-17 解析ノード、リソース管理方法およびリソース管理プログラム
US16/601,899 US20200042354A1 (en) 2016-11-22 2019-10-15 Analysis node, method for managing resources, and program recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-226465 2016-11-22
JP2016226465 2016-11-22

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/349,320 A-371-Of-International US20200192709A1 (en) 2016-11-22 2017-11-17 Analysis node, method for managing resources, and program recording medium
US16/601,899 Continuation US20200042354A1 (en) 2016-11-22 2019-10-15 Analysis node, method for managing resources, and program recording medium

Publications (1)

Publication Number Publication Date
WO2018097058A1 true WO2018097058A1 (ja) 2018-05-31

Family

ID=62195191

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/041476 WO2018097058A1 (ja) 2016-11-22 2017-11-17 解析ノード、リソース管理方法およびプログラム記録媒体

Country Status (3)

Country Link
US (1) US20200192709A1 (ja)
JP (1) JP6981427B2 (ja)
WO (1) WO2018097058A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021090399A1 (ja) * 2019-11-06 2021-05-14 日本電気株式会社 負荷分散システム、負荷分散装置、負荷分散方法、及びコンピュータ可読媒体
WO2022070427A1 (ja) * 2020-10-02 2022-04-07 日本電気株式会社 画像処理装置、画像処理方法及びコンピュータ可読媒体
WO2023105670A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 リソース管理装置及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968715B (zh) * 2022-05-23 2022-11-25 重庆伏特猫科技有限公司 一种基于互联网的综合能源管理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084085A1 (ja) * 2003-03-18 2004-09-30 Fujitsu Limited サイト間連携による負荷分散システム
JP2012099062A (ja) * 2010-11-05 2012-05-24 Hitachi Ltd サービス連携システムおよび情報処理システム
WO2013145530A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 解析システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084085A1 (ja) * 2003-03-18 2004-09-30 Fujitsu Limited サイト間連携による負荷分散システム
JP2012099062A (ja) * 2010-11-05 2012-05-24 Hitachi Ltd サービス連携システムおよび情報処理システム
WO2013145530A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 解析システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021090399A1 (ja) * 2019-11-06 2021-05-14 日本電気株式会社 負荷分散システム、負荷分散装置、負荷分散方法、及びコンピュータ可読媒体
JPWO2021090399A1 (ja) * 2019-11-06 2021-05-14
JP7384215B2 (ja) 2019-11-06 2023-11-21 日本電気株式会社 負荷分散システム、負荷分散装置、負荷分散方法、及び負荷分散プログラム
WO2022070427A1 (ja) * 2020-10-02 2022-04-07 日本電気株式会社 画像処理装置、画像処理方法及びコンピュータ可読媒体
WO2023105670A1 (ja) * 2021-12-08 2023-06-15 日本電信電話株式会社 リソース管理装置及びプログラム

Also Published As

Publication number Publication date
JPWO2018097058A1 (ja) 2019-10-17
JP6981427B2 (ja) 2021-12-15
US20200192709A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
KR102300984B1 (ko) 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
WO2018097058A1 (ja) 解析ノード、リソース管理方法およびプログラム記録媒体
CN108845884B (zh) 物理资源分配方法、装置、计算机设备和存储介质
US9870269B1 (en) Job allocation in a clustered environment
CN102667724A (zh) 利用加速器的、目标指向的工作负载性能管理
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN106095940A (zh) 一种基于任务负载的数据迁移方法
US11294736B2 (en) Distributed processing system, distributed processing method, and recording medium
TW201929552A (zh) 一種影像分析系統與方法
CN113608871A (zh) 业务处理方法及装置
CN107515784A (zh) 一种在分布式系统中计算资源的方法与设备
US11954535B2 (en) Systems, devices, and methods for execution of tasks in an internet-of-things (IOT) environment
Maruf et al. Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems
US8775767B2 (en) Method and system for allocating memory to a pipeline
CN110968422A (zh) 用于集成场景的负载分发
JP2007241667A (ja) 業務フロー制御システム、業務フロー制御方法および制御用プログラム
CN116909714A (zh) 任务运行时的慢节点检测方法、装置、电子设备和介质
WO2016084327A1 (ja) 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム
CN115576534A (zh) 原子服务的编排方法、装置、电子设备及存储介质
JP2015108877A (ja) 予測時間分布生成装置、制御方法、及びプログラム
US20200042354A1 (en) Analysis node, method for managing resources, and program recording medium
CN115082911A (zh) 一种视频分析方法、装置及视频处理设备
CN111506407A (zh) Pull模式与Push模式相结合的资源管理与作业调度方法、系统及介质
CN116701126B (zh) pod容量控制方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17872905

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018552544

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17872905

Country of ref document: EP

Kind code of ref document: A1