WO2018061825A1 - 分散処理システム、分散処理方法、及び記録媒体 - Google Patents

分散処理システム、分散処理方法、及び記録媒体 Download PDF

Info

Publication number
WO2018061825A1
WO2018061825A1 PCT/JP2017/033449 JP2017033449W WO2018061825A1 WO 2018061825 A1 WO2018061825 A1 WO 2018061825A1 JP 2017033449 W JP2017033449 W JP 2017033449W WO 2018061825 A1 WO2018061825 A1 WO 2018061825A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
performance information
analysis
cost
node
Prior art date
Application number
PCT/JP2017/033449
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 JP2018542397A priority Critical patent/JP7006607B2/ja
Priority to US16/332,257 priority patent/US11294736B2/en
Publication of WO2018061825A1 publication Critical patent/WO2018061825A1/ja

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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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]
    • 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 a distributed processing system, a distributed processing method, a program, and the like used in a distributed processing environment for video streams.
  • Patent Document 1 discloses a certain information processing apparatus by distributing processing related information including processing capability and processing load of a certain information processing apparatus to a peripheral information processing apparatus and collecting processing related information from the peripheral apparatus. Describes a technique for determining whether to process a task or to transmit the task to another peripheral device.
  • the technology disclosed in Patent Document 1 when a task is processed by a certain information processing device, the task is sent to the task processing unit of the information processing device, and when the task is transmitted to another peripheral device, the other peripheral device This includes a configuration in which a task is sent to the task reception unit and a process is requested.
  • Patent Document 1 collects processing related information of peripheral devices, acquires processing related information of peripheral devices, and determines whether to process a task in the information processing device or transmit it to another peripheral device. decide.
  • the process of determining task assignment is premised on collecting processing-related information of a peripheral device at a frequency higher than the fluctuation cycle of processing-related information in the peripheral device. It has become.
  • Patent Literature 1 may not be able to collect the processing related information of the peripheral device earlier than the fluctuation cycle of the processing related information. Therefore, the technique disclosed in Patent Document 1 has a problem that when the processing load of each device frequently fluctuates, collection of processing related information is not in time, and the task assignment destination cannot be determined correctly.
  • An example of an object of the present invention provides a distributed processing system, a distributed processing method, a program, and the like that can solve the above-described problem and can correctly determine a task assignment destination even when the processing load frequently fluctuates. That is.
  • the distributed processing system is configured as follows. That is, a distributed processing system according to an aspect of the present disclosure includes an analysis node that analyzes input information, and a management node that is connected to the analysis node via a network and holds performance information representing the performance of the analysis node. Including.
  • the management node includes a performance information integration unit that integrates the performance information related to the analysis node connected to the management node.
  • the analysis node is calculated based on the performance information related to the analysis node, the first cost for executing the task in the analysis node, and the other analysis node different from the analysis node integrated by the performance information integration unit
  • the task is executed in the analysis node based on the second cost that is calculated based on the performance information related to the analysis node and represents the cost of load distribution to distribute and execute the task to the other analysis nodes.
  • a task determination unit that determines whether to execute the task distributed to other analysis nodes.
  • an analysis node analyzes input information and calculates a first cost for the analysis node itself to execute a task based on performance information representing the performance of the analysis node itself.
  • To the other analysis nodes based on the performance information related to the other analysis nodes integrated by the management node that holds the performance information related to the one or more analysis nodes connected to itself via the network.
  • Calculating a second cost representing the cost of load distribution for distributing and executing the task and the analysis node itself executes the task based on the calculated first cost and second cost Or determining whether to perform load distribution of the task to the other analysis nodes.
  • a program according to one embodiment of the present invention is stored in a computer functioning as an analysis node.
  • a process of analyzing input information, a process of calculating a first cost for the computer itself to execute a task based on performance information representing the performance of the computer itself, and a computer connected to itself via a network 1 Represents the cost of load distribution for distributing and executing the task to the other analysis nodes based on the performance information about the other analysis nodes integrated by the management node holding the performance information about the analysis nodes.
  • the computer Based on the process for calculating the second cost and the calculated first and second costs, the computer itself executes the task or loads the task to another analysis node. And processing for determining whether to execute distribution.
  • the object of the present invention described above may be achieved by a recording medium on which the computer program is recorded.
  • the task generation unit that generates a task from input information, the performance information of the own device, and the performance information of other distributed processing devices are integrated.
  • a performance information acquisition unit that acquires the integrated performance information, a first cost that is calculated based on the performance information of the own device and that represents the cost of executing the task in the own device, and the integrated performance information Based on the second cost representing the cost of distributing and executing the task to the other distributed processing device calculated in the above-described manner, or executing the task in the own device or to another distributed processing device.
  • a task determining unit that determines whether to load and execute the task.
  • FIG. 1 is a diagram illustrating an example of an operation mode of a distributed processing system according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a hardware configuration of a computer apparatus that implements an analysis node and the like according to the present embodiment.
  • FIG. 3 is a block diagram illustrating a functional configuration of the distributed processing system according to the first embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of the performance information of the analysis node according to the first embodiment of this invention.
  • FIG. 5 is a diagram illustrating an example of integrated performance information according to the first embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an example of a surplus task in the first embodiment of the present invention.
  • FIG. 1 is a diagram illustrating an example of an operation mode of a distributed processing system according to the first embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a hardware configuration of a computer apparatus that implements an analysis node and the like according to the present embodiment.
  • FIG. 7 is a flowchart illustrating an operation example of the distributed processing system according to the first embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating an operation example of the integrated performance information generation processing according to the first embodiment of the present invention.
  • FIG. 9 is a flowchart showing an operation example of task assignment determination processing in the first embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating an operation example of the surplus processing capability determination process according to the first embodiment of the present invention.
  • FIG. 11 is a block diagram showing a functional configuration of the distributed processing system according to the second embodiment of the present invention.
  • FIG. 12 is a diagram illustrating an example of integrated performance information according to the second embodiment of the present invention.
  • FIG. 13 is a flowchart showing an operation example of integrated performance information generation processing in the second exemplary embodiment of the present invention.
  • FIG. 14 is a block diagram showing a functional configuration of a distributed processing system according to the third embodiment of the present invention.
  • FIG. 15 is a flowchart showing an operation example of task assignment determination processing in the third exemplary embodiment of the present invention.
  • FIG. 16 is a flowchart illustrating an operation example of surplus processing capability determination processing according to the third embodiment of the present invention.
  • FIG. 17 is a schematic configuration diagram of a distributed processing system in the embodiment of the present invention.
  • a distributed processing system 10 having an analysis node 100 and a management node 200 having the following configuration will be described. That is, a certain analysis node 100 is configured to calculate a cost for executing a task based on performance information of another analysis node 100 connected to the management node 200 (hereinafter referred to as “neighboring analysis node 100”). The Further, the analysis node 100 is configured to calculate the cost of distributing the task (load distribution) to the nearby analysis nodes 100 based on the performance information integrated by the management node 200. Based on the calculated first and second costs, the analysis node 100 determines whether to execute the task in the own analysis node 100 or to distribute the task load to the nearby analysis nodes 100.
  • FIG. 1 is a diagram illustrating an example of an operation mode of the distributed processing system 10 according to the first embodiment of the present invention.
  • the distributed processing system 10 includes an analysis node 100 and a management node 200 connected via a network (hereinafter referred to as a network 300) such as the Internet or a LAN (Local Area Network).
  • the distributed processing system 10 may include a plurality of analysis nodes 100 and management nodes 200. Each analysis node 100 is connected to one or more management nodes 200.
  • the nearby analysis node 100 is a management node 200 (hereinafter referred to as “target management node 200”) connected to a specific analysis node 100 (hereinafter sometimes referred to as “target analysis node 100”).
  • the nearby analysis node 100 is one or more other analysis nodes 100 connected to the target management node 200.
  • the target analysis node 100 is the analysis node A
  • the management node A is the target management node 200
  • the analysis node B, the analysis node D, and the analysis node E are It is a nearby analysis node 100.
  • the analysis node 100 is an information processing apparatus such as a PC (Personal Computer) that analyzes input information under program control.
  • PC Personal Computer
  • the management node 200 is connected to the analysis node 100 via a network and is an information processing apparatus such as a PC (Personal Computer) that manages performance information of the analysis node 100.
  • PC Personal Computer
  • FIG. 2 is a block diagram showing a hardware configuration of a computer device 500 that implements each device such as the analysis node 100 and the management node 200 in the present embodiment.
  • the computer device 500 includes a CPU (Central Processing Unit) 501, a ROM (Read Only Memory) 502, a RAM (Random Access Memory) 503, a storage device 504, a drive device 505, and a communication device.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • storage device 504 a storage device 504
  • drive device 505 a communication device.
  • An interface 506 and an input / output interface 507 are provided.
  • the CPU 501 executes the program 508 using the RAM 503.
  • the program 508 may be stored in the ROM 502.
  • the program 508 may be recorded on the recording medium 509 and read by the drive device 505, or may be transmitted from the external device via the network 510.
  • the communication interface 506 transmits / receives data to / from an external device via the network 510.
  • the input / output interface 507 exchanges data with peripheral devices (keyboard, mouse, display device, etc.).
  • the communication interface 506 and the input / output interface 507 can function as means for acquiring or outputting data. Data such as output information may be stored in the storage device 504 or may be included in the program 508.
  • a program for operating the configuration of the embodiment so as to realize the functions of the following embodiment (more specifically, FIG. 7, FIG. 8, FIG. 9, FIG. 10, FIG. 13, FIG. 15, FIG. 16, etc.
  • a program for causing a computer to execute the processing shown in FIG. 5 is recorded on a recording medium, the program recorded on the recording medium is read as a code, and the processing method is executed by the computer. That is, a computer-readable recording medium is also included in the scope of each embodiment. In addition to the recording medium on which the above program is recorded, the program itself is included in each embodiment.
  • the recording medium for example, a floppy (registered trademark) disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a magnetic tape, a nonvolatile memory card, and a ROM can be used.
  • the present invention is not limited to a mode in which processing is executed by a single program recorded in the recording medium, but a mode in which processing is executed by operating on an OS in cooperation with other software and an expansion board function is also included in the category of each embodiment. include.
  • FIG. 3 is a block diagram showing a functional configuration of the distributed processing system 10 in the present embodiment.
  • the blocks shown in FIG. 3 may be implemented in a single device or may be implemented separately in multiple devices. Data exchange between the blocks may be performed using an arbitrary method such as a data bus, a network, or a portable storage medium.
  • the distributed processing system 10 in this embodiment includes an analysis node 100 and a management node 200.
  • the analysis node 100 and the management node 200 are connected via the network 300.
  • the analysis node 100 in this embodiment includes a task generation unit 101, a task determination unit 102, a performance information management unit 103, a task execution unit 104, a surplus determination unit 105, a task transmission / reception unit 106, and a performance information transmission / reception unit. 107.
  • the management node 200 in the present embodiment includes a performance information transmission / reception unit 201, a performance information storage unit 202, a performance information integration unit 203, a task transmission / reception unit 204, and a task storage unit 205.
  • the task generation unit 101 generates a task to be processed by the analysis node 100.
  • a task is a process (analysis process) performed in the analysis node 100.
  • the task may include, for example, a human face recognition process included in the image, a gender determination process of the person who has recognized the face, and the like.
  • the task generation unit 101 receives input information input from an external device, and generates a task based on the input information.
  • the external device is, for example, a surveillance camera or a sensor.
  • the input information is, for example, video data from a surveillance camera or data from a sensor.
  • the task determination unit 102 uses the task generated by the task generation unit 101 or the task received by the task transmission / reception unit 106 and the performance information of the performance information management unit 103 to analyze the target analysis node 100. To determine whether to execute the task or to delegate the execution of the task to the nearby analysis node 100 (neighboring server group) (whether to perform the distributed processing of the task).
  • the task determined to be executed in the target analysis node 100 by the task determination unit 102 in the target analysis node 100 is executed by the task execution unit 104 in the target analysis node 100.
  • the task determined by the task determination unit 102 to execute the distributed processing of the task to the nearby analysis node 100 is transmitted to the management node 200 by the task transmission / reception unit 106.
  • the performance information management unit 103 acquires the performance information of the target analysis node 100 and transmits it to the management node 200 by the performance information transmission / reception unit 107. Further, the performance information management unit 103 stores integrated performance information transmitted by the management node 200. Details of the integrated performance information will be described later.
  • the task execution unit 104 executes the task when the task determination unit 102 determines that a certain task is to be executed by the target analysis node 100.
  • the surplus determination unit 105 determines whether the target analysis node 100 has a surplus processing capability (the resource of the target analysis node 100 has a surplus). )).
  • the surplus processing capacity is processing capacity (calculation resources) remaining in the target analysis node 100 when the target analysis node 100 executes a task.
  • the surplus determination unit 105 requests the task execution unit 104 to execute the task in accordance with the surplus task stored in the task storage unit 205. Details of the surplus task will be described later.
  • the surplus determination unit 105 may acquire the performance information of the target analysis node 100 acquired by the performance information management unit 103 and the surplus task stored in the task storage unit 205 from the management node 200. Further, the surplus determination unit 105 may request the management node 200 to transmit such information from the management node 200. Thereby, surplus resources can be utilized and a load balancing effect can be obtained.
  • the task transmission / reception unit 106 transmits / receives the task of the analysis node 100 and the surplus task stored in the task storage unit 205. For example, the task transmission / reception unit 106 receives a task transmitted by the task transmission / reception unit 204 of the management node 200. Further, the task transmission / reception unit 106 transmits, for example, a task determined to be load-distributed to the nearby analysis nodes 100 by the task determination unit 102 to the management node 200.
  • the performance information transmission / reception unit 107 transmits / receives performance information and integrated performance information of the analysis node 100 and nearby analysis nodes 100. For example, the performance information transmission / reception unit 107 transmits the performance information acquired by the performance information management unit 103 to the management node 200. For example, the performance information transmission / reception unit 107 receives the integrated performance information transmitted by the performance information transmission / reception unit 201 of the management node 200.
  • the performance information transmission / reception unit 201 transmits / receives performance information related to the analysis node 100 and integrated performance information. For example, the performance information transmission / reception unit 201 receives performance information transmitted from the performance information transmission / reception unit 107 of the analysis node 100 and stores the performance information in the performance information storage unit 202. For example, the performance information transmission / reception unit 201 transmits the integrated performance information to each analysis node 100.
  • the performance information storage unit 202 stores (holds) the performance information of each analysis node 100.
  • FIG. 4 is a diagram illustrating an example of performance information of the analysis node 100 stored in the performance information storage unit 202.
  • the performance information of the analysis node 100 includes an identifier (analysis node ID (Identifier)) of each analysis node 100, a throughput, the number of tasks waiting for processing, and NW delay information (network delay information). And the date and time when each piece of information was updated.
  • the performance information of the analysis node 100 is not limited to the throughput, the number of tasks waiting for processing, and the network delay illustrated in FIG. 4, and may include information indicating the performance of the analysis node 100 such as memory consumption.
  • the performance information storage unit 202 stores integrated performance information representing information obtained by integrating the performance information of each analysis node 100 by the performance information integration unit 203.
  • FIG. 5 is a diagram illustrating an example of the integrated performance information stored in the performance information storage unit 202.
  • the integrated performance information is performance information for the entire analysis node 100 in the vicinity.
  • the integrated performance information includes task throughput per unit time, the number of tasks waiting for processing, an integrated value of network delay (NW delay), and analysis of the neighborhood that is the target of the integrated performance information. It includes the number of nodes 100 and the date and time of integration.
  • the network delay is a network delay time when a task is transmitted from the target analysis node 100 to the target management node 200.
  • the network delay is not limited to the delay time, and may represent the number of router hops between the analysis node 100 and the management node 200, for example.
  • the performance information integration unit 203 integrates the performance information of each analysis node 100 stored in the performance information storage unit 202 and stores it in the performance information storage unit 202.
  • the task transmission / reception unit 204 transmits / receives tasks of the analysis node 100 and surplus tasks stored in the task storage unit 205.
  • the task transmission / reception unit 204 receives a task transmitted from the task transmission / reception unit 106 and stores it in the task storage unit 205 as a surplus task.
  • the task storage unit 205 stores surplus tasks.
  • FIG. 6 is a diagram illustrating an example of a surplus task stored in the task storage unit 205.
  • the surplus task includes the task identifier (task ID), the identifier of the analysis node 100 that transmitted the task (transmission node ID), the task data, and the date when the task data was received. including.
  • the identifier of the analysis node 100 is identification information that can uniquely identify the target analysis node 100 in the target management node 200 (management server), such as an IP address.
  • the identifier of the analysis node 100 is not limited to the IP address.
  • the task storage unit 205 in the management node 200 functions as a task storage unit (task storage unit) that stores a task whose load is distributed by the analysis node 100.
  • FIG. 7 is a flowchart showing an operation example of the distributed processing system 10 in the present embodiment.
  • the distributed processing system 10 generates integrated performance information (step S101).
  • the distributed processing system 10 determines task assignment (step S102).
  • the distributed processing system 10 determines whether there is surplus processing capacity (step S103).
  • FIG. 8 is a flowchart showing an operation example of integrated performance information generation processing by the distributed processing system 10 in the present embodiment.
  • the performance information transmission / reception unit 201 acquires performance information from each of the nearby analysis nodes 100 and stores it in the performance information storage unit 202 (step S201).
  • the analysis node A is the target analysis node 100
  • the management node A is the target management node 200
  • the analysis node B is the analysis node D
  • Assume that the analysis node E is a nearby analysis node 100.
  • the performance information transmitting / receiving unit 201 of the management node A acquires the performance information of the analysis node B, the analysis node D, and the analysis node E, and the performance information illustrated in FIG. 4 is sent to the performance information storage unit 202 of the management node A. Store.
  • the performance information integration unit 203 integrates performance information of neighboring analysis nodes 100 (step S202).
  • the performance information integration unit 203 of the management node A calculates the integrated performance information by statistically calculating the performance information of the analysis nodes B, D, and E stored in the performance information storage unit 202 of the management node A. Generate.
  • Such statistical calculation may include, for example, a process of calculating an average (average process).
  • the performance information integration unit 203 performs “2 tasks per second”, “5 tasks per second”, and “3” in the throughput of the nearby analysis node 100 shown in FIG. From “tasks per second”, an average value “3.3 tasks per second” is calculated as integrated performance information.
  • the performance information integration unit 203 calculates an average value “4” as integrated performance information from “0”, “5”, and “7” in the number of tasks waiting to be processed. Similarly, the performance information integration unit 203 calculates an average value “1.67” as integrated performance information from “3.3”, “0.6”, and “1.1” in the network delay.
  • the performance information integration unit 203 stores the integrated performance information generated in step S202 in the performance information storage unit 202 (step S203).
  • the performance information integration unit 203 of the management node A stores the integrated performance information generated by statistically calculating the performance information of the analysis node B, the analysis node D, and the analysis node E in the performance information storage unit 202 of the management node A. Store.
  • the distributed processing system 10 (performance information integration unit 203) generates integrated performance information through such processing. That is, the management node 200 includes a performance information integration unit 203 that integrates performance information of the connected analysis nodes 100.
  • FIG. 9 is a flowchart showing an operation example of task assignment determination processing by the distributed processing system 10 in this embodiment.
  • a task is generated when the task is generated by the task generator 101 (step S301).
  • the task generation unit 101 of the analysis node A generates a task based on input information from an external device.
  • the task determination unit 102 acquires the current performance information related to the target analysis node 100 from the performance information management unit 103, and determines whether processing overflow occurs in the target analysis node 100 (step S302). For example, the task determination unit 102 of the analysis node A compares the task generated by the task generation unit 101 of the analysis node A with the current performance information held by the performance information management unit 103 of the analysis node A, and the process overflows. It is determined whether or not.
  • step S302 If the processing does not overflow in the target analysis node 100 (No in step S302), the task execution unit 104 of the target analysis node 100 executes the task (step S303).
  • the task determination unit 102 calculates the delay cost when the target analysis node 100 executes the task from the performance information of the target analysis node 100. (Step S304). For example, the task determination unit 102 of the analysis node A acquires its performance information from the performance information management unit 103 of the analysis node A. Specifically, for example, the task determination unit 102 acquires “2 tasks per second” of the average processing throughput and “10” of the number of tasks waiting to be processed as the calculation load.
  • the task determination unit 102 of the analysis node A calculates “the number of tasks waiting for processing / average throughput” from the average processing throughput “2 tasks per second” and the number of tasks waiting for processing “10”, thereby analyzing node A
  • the delay cost (hereinafter referred to as “first cost”) when executing the task is estimated as “5”.
  • the task determination unit 102 calculates a delay cost when the task is executed in the nearby analysis node 100 from the integrated performance information stored in the performance information storage unit 202 (step S305). For example, the task determination unit 102 of the analysis node A acquires integrated performance information stored in the performance information storage unit 202 of the management node A. Specifically, for example, the task determination unit 102, as integrated performance information, “3.3 tasks per second” of average processing throughput, “4” of the number of tasks waiting to be executed, and “1.67” of network delay. And get.
  • the task determination unit 102 of the analysis node A calculates the analysis node B, the analysis node D, and the analysis node B from the average processing throughput “3.3 tasks per second”, the number of tasks waiting to be executed “4”, and the network delay “1.67”.
  • a delay cost (hereinafter referred to as a second cost) when performing distributed processing of tasks to the analysis node E is calculated as follows, for example. That is, the task determination unit 102 estimates the second cost as “2.88” by calculating “the number of tasks waiting to be executed / average throughput + network delay” using each of the above numerical values.
  • the task determination unit 102 compares the first cost and the second cost, and determines whether to execute the task at the target analysis node 100 or to execute the distributed processing of the task to the analysis node 100 in the vicinity. (Step S306).
  • the task transmitting / receiving unit 106 transmits the task to the management node 200 (Step S307).
  • the task execution unit 104 of the target analysis node 100 executes the task (step S303). For example, the task determination unit 102 of the analysis node A performs an arithmetic comparison between the calculated first cost value “5” and the second cost value “2.88”.
  • the task transmitting / receiving unit 106 of the analysis node A transmits the task to the management node A.
  • the management node A stores the task (surplus task) transmitted from the analysis node A in the task storage unit 205.
  • the distributed processing system 10 determines task assignment through such processing. That is, the analysis node 100 (task determination unit 102) calculates a first cost for executing a task in the analysis node 100 based on the performance information of a certain analysis node 100. In addition, the analysis node 100 calculates a second cost for load distribution of the task to the nearby analysis nodes 100 based on the performance information integrated by the performance information integration unit 203. Based on the calculated first cost and second cost, the analysis node 100 determines whether to execute a task in the analysis node 100 or to perform load distribution of the task to nearby analysis nodes 100. decide.
  • the task determining unit 102 has described the aspect in which the cost is estimated by arithmetic calculation using instantaneous values (for example, performance information at a certain time).
  • the present embodiment is not limited to this.
  • the cost estimation method by the task determination unit 102 for example, temporarily stores the cost transition in the past fixed time, and reflects in the cost calculation by estimating whether the processing load is a high period or a quiet period. And the like.
  • the task determination unit 102 may calculate each cost calculation in consideration of past data, for example. Specifically, the task determination unit 102 calculates “(((((1 + 2) ⁇ 2) +1) ⁇ 2) +5) / 2”, for example, taking into account past cost transitions.
  • the first cost may be calculated as “3.125”.
  • the task determination unit 102 calculates “(((((5 + 8) ⁇ 2) +7) ⁇ 2.88) +5) / 2” by taking the past cost transition into account, for example.
  • the cost of 2 may be calculated as “4.815”.
  • the task determination unit 102 determines that the target analysis node 100 executes the task from the result of comparing the first cost and the second cost.
  • the cost estimation method by the task determination unit 102 may include a method of changing the cost calculation method according to the performance information transition instead of the cost transition, a method of adding weights to the cost, and the like. That is, the task determination unit 102 can employ an appropriate method of calculating the first cost using the history of the first cost and calculating the second cost using the history of the second cost. .
  • FIG. 10 is a flowchart illustrating an operation example of the excess processing capacity determination by the distributed processing system 10 in the present embodiment.
  • the surplus determination unit 105 acquires the performance information of the target analysis node 100 and determines whether the target analysis node 100 has surplus processing capability (step S401).
  • the surplus determination unit 105 of the analysis node A acquires the performance information of the analysis node A from the performance information management unit 103 of the analysis node A, and calculates to the analysis node A from the performance information using a preset threshold or the like. Estimate if there is a surplus of resources.
  • the surplus determination unit 105 acquires, for example, the number of tasks waiting for processing (for example, “1”) as a calculation load.
  • the surplus determination unit 105 refers to a threshold value (for example, “2”). In this case, the surplus determination unit 105 determines that task acquisition is possible when the number of tasks waiting for processing (“1”) is lower than the threshold (“2”).
  • the task transmitting / receiving unit 106 acquires a surplus task stored in the task storage unit 205 (step S402). For example, when the analysis node A has surplus processing capability, the task transmitting / receiving unit 106 acquires a surplus task stored in the task storage unit 205 of the management node A. In the case of the specific example illustrated in FIG. 6, the surplus determination unit 105 acquires a surplus task whose task ID is “1”, which is a task registered first among surplus tasks stored in the task storage unit 205, for example. .
  • the task execution unit 104 executes the surplus task acquired by the surplus determination unit 105 (step S403).
  • the task execution unit 104 of the analysis node A executes a surplus task whose task ID is “1”. If the target analysis node 100 has no surplus processing capability (No in step S401), the distributed processing system 10 ends the process.
  • the surplus determination unit 105 has been described as acquiring a surplus task from the task storage unit 205 using a FIFO (First In First Out) method.
  • the surplus task acquisition method by the surplus determination unit 105 may include, for example, a method of determining task execution priority from a composite index such as task data size and acquiring based on the task execution priority.
  • the distributed processing system 10 determines the presence / absence of surplus processing capability through such processing.
  • the distributed processing system 10 in the present embodiment generates integrated performance information, determines task assignment, and determines whether there is surplus processing capability. Thereby, the distributed processing system 10 can correctly determine the task assignment destination (hereinafter referred to as “task assignment destination”) even when the processing load frequently fluctuates.
  • the performance information integration unit 203 generates integrated performance information by statistically processing the performance information of the entire analysis node 100 in the vicinity.
  • the task determination unit 102 assigns a task using integrated performance information that has less variation than the performance information of each analysis node 100.
  • the distributed processing system 10 can widen the collection interval of performance information as compared to the case where individual performance information is used.
  • the technique disclosed in Patent Document 1 directly transfers information related to collection processing of all peripheral devices between the devices.
  • the technique disclosed in Patent Document 1 when processing-related information is collected in near real time, since all devices are connected to each other, the number of combinations of connections between devices increases. This increases the network load. That is, the technique disclosed in Patent Document 1 has a problem that the network load due to communication of processing related information increases when the number of devices increases.
  • the distributed processing system 10 according to the present embodiment is configured such that a plurality of analysis nodes 100 do not directly exchange performance information, but acquires performance information via the performance information storage unit 202 of the management node 200. Has been. For this reason, an increase in network load due to communication of performance information can be suppressed.
  • each device refers to processing related information of another device and assigns a destination device to distribute the processing.
  • the load on the destination device is already high, and there is a possibility that processing wait may occur.
  • the technique disclosed in Patent Document 1 has a problem that variations occur in the processing waiting time of distributed processing.
  • the task determination unit 102 refers to the integrated performance information generated by the performance information integration unit 203 and processes the input processing task in the target analysis node 100. And the cost when distributed to the surrounding analysis nodes 100 are calculated.
  • the task determination unit 102 compares these calculated costs and determines a processing target (transmission destination). For this reason, according to the distributed processing system 10 of the present embodiment, it is possible to reduce variations in processing waiting time of distributed processing, and appropriate distributed processing is realized.
  • FIG. 11 is a block diagram showing a functional configuration of the distributed processing system 10 in the present embodiment.
  • a performance information integration unit 203 and a task storage unit 205 are connected to a management node 200 in addition to the distributed processing system 10 according to the first embodiment.
  • the performance information integration unit 203 in this embodiment integrates the performance information of the analysis node 100 stored in the performance information storage unit 202 and the surplus task stored in the task storage unit 205 and stores the integrated information in the performance information storage unit 202.
  • FIG. 12 is a diagram illustrating an example of integrated performance information stored in the performance information storage unit 202.
  • the integrated performance information of this embodiment is performance information of the analysis node 100 as a whole in the vicinity of the management node 200, taking into account surplus task information stored in the task storage unit 205 of the management node 200.
  • the integrated performance information of this embodiment includes, for example, task processing throughput per unit time, the number of tasks waiting for processing, an integrated value of NW delay, and the number of analysis nodes 100 used for integration (see FIG. 12). 12 “number of nodes”) and the date and time of integration.
  • the network delay represents a network delay time required for transmitting a task from the target analysis node 100 to the target management node 200.
  • the network delay of this embodiment is not limited to the delay time, and may represent, for example, the number of router hops between the analysis node 100 and the management node 200.
  • the performance information of the present embodiment is not limited to the processing load and network delay, and may include information such as memory consumption, for example.
  • FIG. 13 is a flowchart illustrating an operation example of integrated performance information generation processing by the distributed processing system 10 in the present embodiment.
  • the performance information transmission / reception unit 201 acquires performance information from the analysis node 100 and stores it in the performance information storage unit 202 as performance information of each analysis node 100 (step S501).
  • the performance information transmitting / receiving unit 201 of the management node A acquires the performance information of the analysis node B, analysis node D, and analysis node E and sends them to the performance information storage unit 202 of the management node A.
  • Store the performance information storage unit 202 of the management node A.
  • the performance information integration unit 203 acquires a surplus task stored in the task storage unit 205 (step S502).
  • the performance information integration unit 203 of the management node A acquires the surplus task of the analysis node A stored in the task storage unit 205 of the management node A.
  • the performance information integration unit 203 generates integrated performance information of the nearby analysis node 100 based on the acquired performance information of the analysis node 100 and the surplus task (step S503). For example, the performance information integration unit 203 statistically calculates the acquired performance information of the analysis node B, analysis node D, and analysis node E and the surplus tasks of the analysis node B and analysis node D, thereby obtaining the integrated performance information. Generate. Such statistical calculation may include, for example, an averaging process. In the case of the specific example shown in FIG. 4, the performance information integration unit 203 uses, for example, the average value of “2 tasks per second”, “5 tasks per second”, and “3 tasks per second” as the throughput of the nearby analysis node 100. Calculate “3.3 tasks per second”.
  • the performance information integration unit 203 calculates “1.67” that is an average value of “3.3”, “0.6”, and “1.1” as the network delay.
  • the performance information integration unit 203 adds “0”, “5”, and “7” that are the number of tasks waiting for processing shown in FIG. 4 and “2” that is the number of tasks of the surplus task shown in FIG.
  • the average is calculated by dividing the result by “3” which is the number of nodes. That is, the performance information integration unit 203 calculates “(12 + 2) ⁇ 3”, thereby calculating the value “4.6” as integrated performance information (the number of tasks waiting for processing).
  • the performance information integration unit 203 stores the integrated performance information generated in step S503 in the performance information storage unit 202 (step S504).
  • the performance information integration unit 203 of the management node A integrates the performance information of the analysis node B, the analysis node D, and the analysis node E and the surplus tasks of the analysis node B and the analysis node D that are generated by statistical calculation.
  • the performance information is stored in the performance information storage unit 202 of the management node A.
  • the distributed processing system 10 (performance information integration unit 203) generates integrated performance information based on performance information and surplus tasks through such processing.
  • the distributed processing system 10 As described above, the distributed processing system 10 according to the present embodiment generates integrated performance information based on performance information and surplus tasks, determines task allocation, and determines whether there is surplus processing capability. As a result, the distributed processing system 10 can correctly determine the task assignment destination even when the processing load frequently fluctuates.
  • the performance information integration unit 203 when the performance information integration unit 203 generates integrated performance information, in addition to the performance information of each analysis node 100 of the performance information storage unit 202, the performance information integration unit 203 stores the performance information integration unit 203 in the task storage unit 205.
  • the integrated performance information is generated in consideration of the task waiting for execution in the entire plurality of analysis nodes 100 in the vicinity.
  • the distributed processing system 10 can widen the collection interval of performance information as compared with the case where integrated performance information is generated only from individual performance information.
  • FIG. 14 is a block diagram showing a functional configuration of the distributed processing system 10 in the present embodiment.
  • the distributed processing system 10 in the present embodiment further includes a camera 400 in addition to the distributed processing system 10 in the first embodiment.
  • the camera 400 is connected to the analysis node 100 (task generation unit 101).
  • the task execution unit 104 further includes a primary process execution unit 108 and a secondary process execution unit 109.
  • the task generation unit 101 receives input information such as video, image, and sound input by the camera 400, and generates a primary processing task to be processed by the analysis node 100.
  • the task determination unit 102 executes each task execution target (analysis for executing each task) for the primary processing task generated by the task generation unit 101 and the secondary processing task generated by the primary processing execution unit 108. Node 100) is determined. For example, the task determination unit 102 uses the secondary processing task by the task execution unit 104 or the secondary processing task received by the task transmission / reception unit 106 and the performance information of the performance information management unit 103 to analyze the target analysis node 100. To determine whether to execute the task or to distribute the task to the nearby analysis node 100.
  • the task determination unit 102 may execute 2 It is determined whether to execute the next process or to distribute the load of the secondary process to the nearby analysis node 100.
  • the task execution unit 104 executes the primary processing task generated by the task generation unit 101 in the primary processing execution unit 108.
  • the task execution unit 104 receives a secondary processing task that is a result of the primary processing, and sends the secondary processing task to the task determination unit 102.
  • the surplus determination unit 105 determines whether the target analysis node 100 has the surplus processing capability of the secondary processing task based on the performance information of the target analysis node 100 acquired by the performance information management unit 103. If there is a surplus processing capability, the surplus determination unit 105 requests the task execution unit 104 (secondary process execution unit 109) to execute the task based on the surplus secondary processing task stored in the task storage unit 205. When there is surplus processing capability, in the distributed processing system 10, the task transmission / reception unit 106 acquires the task stored in the task storage unit 205 via the task transmission / reception unit 204, and the task execution unit 104 executes the task.
  • the distributed processing system 10 operates as described above to obtain a load distribution effect.
  • the primary process execution unit 108 executes the primary process task generated by the task generation unit 101.
  • the primary processing task is, for example, processing (task) for detecting a plurality of objects from input information.
  • the primary process execution unit 108 generates a secondary process task that is an execution result of the primary process task.
  • the secondary processing execution unit 109 executes the secondary processing task determined to be executed by the task determination unit 102.
  • the secondary processing task is, for example, processing (task) for analyzing each object detected by the primary processing.
  • the camera 400 acquires information such as video data, image data, and audio data, and sends the acquired information as input information to the analysis node 100 (task generation unit 101).
  • FIG. 15 is a flowchart showing an operation example of task assignment determination processing by the distributed processing system 10 in this embodiment.
  • the task generation unit 101 Based on the input information acquired by the camera 400, the task generation unit 101 generates a primary processing task, thereby generating a task (step S601).
  • the task generation unit 101 of the analysis node A generates a task based on input information from an external device.
  • the primary process execution unit 108 executes the primary process task generated by the task generation unit 101 and generates a secondary process task (step S602).
  • the task determination unit 102 determines whether all the secondary processing tasks generated by the primary processing execution unit 108 have been processed (step S603). In the task allocation determination process by the distributed processing system 10 of this embodiment, when the secondary processing task is generated in step S602, it is determined that there is a secondary processing task to be processed by the task determination unit 102 (No in step S603). ), The process proceeds to step S604.
  • the task determination unit 102 acquires the current performance information of the target analysis node 100 from the performance information management unit 103, and determines whether processing overflow occurs in the target analysis node 100 (step S604).
  • step S604 the secondary processing execution unit 109 of the target analysis node 100 executes the secondary processing task (step S605).
  • the task determination unit 102 uses the performance information of the target analysis node 100 to determine the delay cost when executing the secondary processing task in the target analysis node 100. (First cost) is calculated (step S606).
  • the task determination unit 102 calculates a delay cost (second cost) when executing the secondary processing task in the nearby analysis node 100 from the integrated performance information stored in the performance information storage unit 202 (step S607). .
  • the task determination unit 102 compares the first cost and the second cost when executing the secondary processing task, and executes the secondary processing task at the target analysis node 100 or to the nearby analysis node 100. It is determined whether to execute the secondary processing task distributed processing (step S608). For example, when the second cost is lower than the first cost (Yes in step S608), the task transmitting / receiving unit 106 transmits the secondary processing task to the management node 200 (step S609). For example, when the first cost is equal to or lower than the second cost (No in step S608), the secondary process execution unit 109 of the target analysis node 100 executes the secondary process task (step S605).
  • the distributed processing system 10 may repeatedly execute the processing from step S604 to step S609 (task assignment determination processing) until all secondary processing tasks are executed.
  • the task assignment determination process by the distributed processing system 10 according to the present embodiment is terminated when all the secondary processing tasks are completed (Yes in step S603).
  • the distributed processing system 10 determines the allocation of secondary processing tasks through such processing.
  • FIG. 16 is a flowchart illustrating an operation example of the surplus processing capability determination process by the distributed processing system 10 in the present embodiment.
  • the surplus determination unit 105 acquires the performance information of the target analysis node 100 and determines whether the target analysis node 100 has surplus processing capability (step S701).
  • step S701 the task transmitting / receiving unit 106 acquires a surplus task (secondary processing task) stored in the task storage unit 205 (step S702).
  • the secondary process execution unit 109 executes the secondary process task acquired by the surplus determination unit 105 (step S703). If the target analysis node 100 has no surplus processing capability (No in step S701), the distributed processing system 10 ends the process.
  • the distributed processing system 10 determines the presence / absence of surplus processing capability through such processing.
  • the distributed processing system 10 generates integrated performance information, determines the allocation of secondary processing tasks, and determines whether there is surplus processing capability. Thereby, the distributed processing system 10 can correctly determine the task assignment destination even when the processing load fluctuates frequently.
  • the task execution unit 104 is subdivided into a primary process execution unit 108 and a secondary process execution unit 109.
  • the analysis node 100 is configured to distribute processing related to redundant secondary processing tasks after the task execution unit 104 executes the primary processing task generated by the task generation unit 101.
  • the distributed processing system 10 can widen the collection interval of performance information as compared with the case where integrated performance information is generated only from individual performance information.
  • FIG. 17 is a schematic configuration diagram of the distributed processing system 10 in the above-described embodiment.
  • a certain analysis node 100 analyzes input information and executes a certain task based on the performance information representing the performance of the analysis node 100 itself.
  • Cost (first cost) is calculated.
  • the analysis node 100 transfers a task to another analysis node 100 based on the performance information related to the other analysis node 100 integrated by the management node 200 that manages (holds) the performance information of the other analysis node 100.
  • the cost (second cost) when executing in a distributed manner is calculated.
  • the analysis node 100 executes a certain task by the analysis node 100 itself based on the calculated first cost and second cost, or distributes and executes the task to other analysis nodes 100 in the vicinity. To decide. That is, the distributed processing system 10 illustrated in FIG. 17 distributes the load required to execute a certain task to nearby analysis nodes 100 according to the first cost and the second cost calculated in the analysis node 100.
  • a load balancing function can be realized.
  • the distributed processing system 10 includes an analysis node 100 that analyzes input information and a management node 200.
  • the management node 200 is connected to the analysis node 100 via a network and manages performance information of the analysis node 100.
  • the management node 200 may be configured to hold performance information regarding the analysis nodes 100 connected via the network.
  • the management node 200 includes a performance information integration unit 203 that integrates performance information of the connected analysis nodes 100.
  • the analysis node 100 has a task determination unit 102.
  • the task determination unit 102 in the analysis node 100 may be configured to calculate a first cost for executing a task based on performance information representing the performance of the own analysis node 100 itself. Further, the task determination unit 102 in the analysis node 100 may be configured to calculate a second cost for distributing the task to the nearby analysis nodes 100 based on the performance information integrated by the performance information integration unit 203. Based on the calculated first cost and second cost, the task determination unit 102 in the analysis node 100 executes the task in the analysis node 100 itself, or loads the task load on the analysis node 100 in the vicinity. Decide whether to distribute.
  • An analysis node that analyzes the input information; A management node connected to the analysis node via a network and managing performance information of the analysis node; The management node has a performance information integration unit that integrates performance information of the connected analysis nodes, The analysis node executes a task based on performance information, and a second cost for load balancing the task to nearby analysis nodes based on the performance information integrated by the performance information integration unit.
  • a distributed processing system having a task determination unit that determines whether to execute the task or load distribution of the task to the nearby analysis nodes.
  • the task determination unit is configured to execute the primary process when the task includes a primary process for detecting an object from the input information and a secondary process for analyzing the object.
  • the distributed processing system according to supplementary note 1 that determines whether to execute the secondary processing or load distribution of the secondary processing to the nearby analysis nodes.
  • the management node has a task storage unit that stores a task to be load-balanced by the analysis node, The distributed processing system according to appendix 1 or 2, wherein the analysis node includes a task execution unit that executes a task stored in the task storage unit when there is a surplus in its own resource.
  • the performance information integration unit integrates the performance information using any one or a combination of the number of tasks, the input amount, and the output amount stored in the task storage unit in addition to the performance information.
  • the task determination unit calculates the first cost using a communication delay time and a processing delay time when the task is executed from the performance information, and analyzes the neighborhood using the integrated performance information.
  • the distributed processing system according to any one of appendices 1 to 5, wherein the second cost is calculated using a communication delay time and a processing delay time when the task is load-balanced to a node.
  • the task determination unit calculates the first cost using the history of the first cost, and calculates the second cost using the history of the second cost.
  • the distributed processing system as described in any one.
  • Appendix 8 The distributed processing system according to any one of appendices 1 to 7, wherein the performance information is a throughput of the analysis node and a network delay.
  • [Appendix 9] Parse the input information, Manage the performance information of the analysis node, Integrating the performance information of the analysis node connected to the management node via the network, Whether to execute the task based on a first cost for executing the task based on performance information and a second cost for load balancing the task to nearby analysis nodes based on the integrated performance information Or a distributed analysis method for determining whether to perform load distribution of the task to the nearby analysis nodes.
  • a task generation unit for generating a task from input information;
  • a performance information acquisition unit that acquires performance information and integrated performance information in which performance information of neighboring distributed processing devices is integrated; The task is based on a first cost for executing the task based on the performance information and a second cost for load balancing the task to the nearby distributed processing device based on the integrated performance information.
  • a task determination unit that determines whether to execute or load distribution of the task to the nearby distributed processing device.
  • An analysis node that analyzes the input information; A management node connected to the analysis node via a network and holding performance information representing the performance of the analysis node;
  • the management node has performance information integration means for integrating the performance information related to the analysis node connected to the management node,
  • the analysis node is A first cost for executing a task in the analysis node calculated based on the performance information related to the analysis node; Expresses the cost of load distribution for distributing and executing the task to other analysis nodes calculated based on the performance information related to the other analysis nodes different from the analysis node integrated by the performance information integration means Based on the second cost,
  • the distributed processing system which has a task determination means which determines whether the said task is performed in the said analysis node, or the said task is distributed and performed to the other said analysis node.
  • the task determination means in the analysis node is When the task includes a primary process that is a process for detecting an object from the input information and a secondary process that is a process for analyzing the object, the analysis node is executed after the primary process is executed. 13.
  • the management node further includes task storage means for storing the task load-balanced by the analysis node, 14.
  • the distributed processing system according to any one of supplementary notes 12 to 14, wherein the performance information integration unit integrates the performance information by statistically calculating the performance information.
  • the performance information integration means includes The performance information; 15. The distributed processing system according to supplementary note 14, wherein the performance information is integrated using any one or a combination of the number of tasks, the input amount, and the output amount stored in the task storage unit.
  • the task determination means includes Calculating the first cost using a communication delay time in the case of executing the task and a processing delay time included in the performance information; Supplementary notes 12 to 12 for calculating the second cost by using communication delay time and processing delay time when the task is distributed and executed to the other analysis nodes included in the integrated performance information
  • the distributed processing system according to any one of 16.
  • the task determination means includes The first cost at a certain time is calculated using the history of the first cost representing the transition of the first cost in a certain period in the past from a certain time, In any one of appendices 12 to 17 for calculating the second cost at a certain time using the history of the second cost representing the transition of the second cost in a certain period in the past from a certain time The distributed processing system described. [Appendix 19] The distributed processing system according to any one of appendices 12 to 18, wherein the performance information includes a throughput and a network delay of the analysis node.
  • the analysis node is Parsing the input information, Calculating a first cost for the analysis node itself to execute a task based on performance information representing the performance of the analysis node itself; Based on the performance information related to the other analysis nodes integrated by a management node that holds performance information related to the one or more analysis nodes connected to the network via itself, the task is sent to the other analysis nodes.
  • a process of calculating a second cost representing the cost of load distribution to be executed in a distributed manner A process for determining whether the computer itself executes the task or load distribution of the task to other analysis nodes based on the calculated first cost and the second cost; A recording medium on which a program for executing is recorded.
  • a task generation unit for generating a task from input information;
  • a performance information acquisition unit that acquires the performance information of the own device and the integrated performance information obtained by integrating the performance information of other distributed processing devices;
  • the task is distributed to the other distributed processing devices calculated based on the integrated performance information, the first cost representing the cost of executing the task in the own device calculated based on the performance information of the own device
  • a task determination unit that determines whether to execute the task in its own device or to load and execute the task on another distributed processing device based on a second cost representing the cost to be executed A distributed processing apparatus.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

処理負荷の変動が頻繁な場合でもタスク割当先を正しく判定する分散処理システムを提供する。分散処理システムは、入力情報を解析する解析ノードと、解析ノードにネットワークを介して接続され、解析ノードの性能を表す性能情報を保持する管理ノードと、を含む。管理ノードは、当該管理ノードに接続されている解析ノードに関する性能情報を統合する性能情報統合部を有する。解析ノードは、当該解析ノードに関する性能情報に基づいて算出した、当該解析ノードにおいてタスクを実行する第1のコストと、性能情報統合部により統合された当該解析ノードとは異なる他の解析ノードに関する性能情報に基づいて算出した、他の解析ノードへタスクを分散して実行する負荷分散のコストを表す第2のコストと、に基づいて、タスクを当該解析ノードにおいて実行するか、又は他の解析ノードへタスクを分散して実行するかを決定するタスク決定部を有する。

Description

分散処理システム、分散処理方法、及び記録媒体
 本発明は、映像ストリームの分散処理環境に用いる分散処理システム、分散処理方法、及びプログラム等に関する。
 ネットワーク構成を複雑化することなく、タスクを効率的に分散処理する技術が、特許文献1に開示されている。特許文献1には、ある情報処理装置の処理能力と処理負荷とを含む処理関連情報を周辺の情報処理装置へ配信し、周辺の装置からの処理関連情報を収集することで、ある情報処理装置でタスクを処理するか、そのタスクを他の周辺装置へ送信するかを決定する技術が記載されている。特許文献1に開示の技術は、ある情報処理装置でタスクを処理する場合は、タスクをその情報処理装置のタスク処理部へ送り、タスクを他の周辺装置へ送信する場合は、他の周辺装置のタスク受付部へタスクを送信し、処理を依頼する構成を含む。
特開2014-102691号公報
 特許文献1に開示された技術は、周辺装置の処理関連情報を収集し、周辺装置の処理関連情報を取得し、タスクを該情報処理装置で処理するか、他の周辺装置へ送信するかを決定する。ここで、特許文献1に開示された技術における、タスクの割当を決定する処理は、周辺装置における処理関連情報の変動周期よりも高頻度に、周辺装置の処理関連情報の収集を行うことが前提となっている。
 しかしながら、例えば、映像ストリームの分散処理環境においては、各装置の処理負荷の周期や変動幅が大きく、処理負荷が頻繁に変動する場合がある。このような場合、特許文献1に開示された技術は、処理関連情報の変動周期よりも早く、周辺装置の処理関連情報を収集することができないことがある。したがって、特許文献1に開示された技術は、各装置の処理負荷が頻繁に変動する場合、処理関連情報の収集が間に合わず、タスクの割当先を正しく判定できないという課題がある。
 本発明の目的の一例は、上述した課題を解決し、処理負荷が頻繁に変動する場合であってもタスクの割当先を正しく判定可能な分散処理システム、分散処理方法、及びプログラム等を提供することである。
 本発明の一態様における分散処理システムは、以下のように構成される。即ち、本開示の一態様における分散処理システムは、入力情報を解析する解析ノードと、上記解析ノードにネットワークを介して接続され、上記解析ノードの性能を表す性能情報を保持する管理ノードと、を含む。上記管理ノードは、当該管理ノードに接続されている上記解析ノードに関する上記性能情報を統合する性能情報統合部を有する。上記解析ノードは、当該解析ノードに関する上記性能情報に基づいて算出した、当該解析ノードにおいてタスクを実行する第1のコストと、上記性能情報統合部により統合された当該解析ノードとは異なる他の上記解析ノードに関する上記性能情報に基づいて算出した、他の上記解析ノードへ上記タスクを分散して実行する負荷分散のコストを表す第2のコストと、に基づいて、上記タスクを当該解析ノードにおいて実行するか、又は他の上記解析ノードへ上記タスクを分散して実行するかを決定するタスク決定部を有する。
 本発明の一態様における分散処理方法は、解析ノードが、入力情報を解析すること、当該解析ノード自身の性能を表す性能情報に基づいて当該解析ノード自身がタスクを実行する第1のコストを算出すること、ネットワークを介して自身に接続されている1以上の上記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の上記解析ノードに関する性能情報に基づいて、他の上記解析ノードへ上記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出すること、及び、算出した上記第1のコスト及び第2のコストに基づいて、当該解析ノード自身が上記タスクを実行するか、又は、他の上記解析ノードへ上記タスクの負荷分散を実行するかを決定すること、を含む。
 本発明の一態様におけるプログラムは、解析ノードとして機能するコンピュータに、
 入力情報を解析する処理と、当該コンピュータ自身の性能を表す性能情報に基づいて、当該コンピュータ自身がタスクを実行する第1のコストを算出する処理と、ネットワークを介して自身に接続されている1以上の上記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の上記解析ノードに関する性能情報に基づいて、他の上記解析ノードへ上記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出する処理と、算出した上記第1のコスト及び上記第2のコストに基づいて、当該コンピュータ自身が上記タスクを実行するか、又は、他の上記解析ノードへ上記タスクの負荷分散を実行するかを決定する処理と、を実行させる。
 なお、上記した本発明の目的は、上記コンピュータプログラムが記録された記録媒体により達成されてもよい。
 また、本発明の一態様における、解析ノードを実現可能な分散処理装置は、入力情報からタスクを生成するタスク生成部と、自装置の性能情報と、他の分散処理装置の性能情報が統合された統合性能情報と、を取得する性能情報取得部と、自装置の上記性能情報に基づいて算出した、自装置において上記タスクを実行するコストを表す第1のコストと、上記統合性能情報に基づいて算出した、他の上記分散処理装置へ上記タスクを分散して実行するコストを表す第2のコストと、に基づいて、上記タスクを自装置において実行するか、又は他の上記分散処理装置へ上記タスクを負荷して実行するかを決定するタスク決定部と、を備える。
 本発明によれば、処理負荷の変動が頻繁な場合でもタスクの割当先を正しく判定できる。
図1は、本発明の第1の実施形態における分散処理システムの運用形態の例を示す図である。 図2は、本実施形態における解析ノード等を実現するコンピュータ装置のハードウェア構成を示すブロック図である。 図3は、本発明の第1の実施形態における分散処理システムの機能構成を示すブロック図である。 図4は、本発明の第1の実施形態における解析ノードの性能情報の一例を示す図である。 図5は、本発明の第1の実施形態における統合性能情報の一例を示す図である。 図6は、本発明の第1の実施形態における余剰タスクの一例を示す図である。 図7は、本発明の第1の実施形態における分散処理システムの動作例を示すフローチャートである。 図8は、本発明の第1の実施形態における統合性能情報生成処理の動作例を示すフローチャートである。 図9は、本発明の第1の実施形態におけるタスク割当決定処理の動作例を示すフローチャートである。 図10は、本発明の第1の実施形態における余剰処理能力判定処理の動作例を示すフローチャートである。 図11は、本発明の第2の実施形態における分散処理システムの機能構成を示すブロック図である。 図12は、本発明の第2の実施形態における統合性能情報の一例を示す図である。 図13は、本発明の第2の実施形態における統合性能情報生成処理の動作例を示すフローチャートである。 図14は、本発明の第3の実施形態における分散処理システムの機能構成を示すブロック図である。 図15は、本発明の第3の実施形態におけるタスク割当決定処理の動作例を示すフローチャートである。 図16は、本発明の第3の実施形態における余剰処理能力判定処理の動作例を示すフローチャートである。 図17は、本発明の実施形態における分散処理システムの概略構成図である。
 以下、図面を参照して、本発明の実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有する要素には同一符号を付し、重複する説明は省略することもある。
 本実施形態においては、具体例として、以下のような構成を有する解析ノード100及び管理ノード200を有する分散処理システム10を説明する。即ち、ある解析ノード100が、管理ノード200に接続される他の解析ノード100(以降、「近傍の解析ノード100」と記載)の性能情報に基づいてタスクを実行するコストを算出するよう構成される。また、係る解析ノード100は、管理ノード200により統合される性能情報に基づいて、近傍の解析ノード100へタスクを分散(負荷分散)するコストを算出するよう構成される。係る解析ノード100は、算出した第1及び第2のコストに基づいて、タスクを自解析ノード100で実行するか、又は、近傍の解析ノード100へタスクの負荷を分散するかを決定する。
 図1は、本発明の第1の実施形態における分散処理システム10の運用形態の例を示す図である。図1に示すように、本実施形態における分散処理システム10は、解析ノード100と管理ノード200とが、インターネットやLAN(Local Area Network)等のネットワーク(以降、ネットワーク300と記載)を介して接続されている。分散処理システム10には、複数の解析ノード100及び管理ノード200が含まれてよい。各解析ノード100は1つ以上の管理ノード200と接続される。なお、近傍の解析ノード100は、ある特定の解析ノード100(以降、「対象の解析ノード100」と記載することがある)に接続される管理ノード200(以降、「対象の管理ノード200」と記載することがある)と接続された、他の解析ノード100である。例えば、近傍の解析ノード100は、対象の管理ノード200と接続する1以上の他の解析ノード100である。図1に示す分散処理システム10の具体例において、対象の解析ノード100が解析ノードAである場合、管理ノードAが対象の管理ノード200であり、解析ノードB、解析ノードD及び解析ノードEが近傍の解析ノード100である。
 解析ノード100は、プログラム制御により入力情報を解析するPC(Personal Computer)等の情報処理装置である。
 管理ノード200は、解析ノード100にネットワークを介して接続されており、解析ノード100の性能情報を管理するPC(Personal Computer)等の情報処理装置である。
 次に、本実施形態における分散処理システム10に含まれる解析ノード100、管理ノード200などの各装置を構成するハードウェアについて説明する。図2は、本実施形態における解析ノード100、管理ノード200などの各装置を実現するコンピュータ装置500のハードウェア構成を示すブロック図である。
 図2に示すように、コンピュータ装置500は、CPU(Central Processing Unit)501と、ROM(Read Only Memory)502と、RAM(Random Access Memory)503と、記憶装置504と、ドライブ装置505と、通信インタフェース506と、入出力インタフェース507とを備える。
 CPU501は、RAM503を用いてプログラム508を実行する。プログラム508は、ROM502に記憶されていてもよい。また、プログラム508は、記録媒体509に記録され、ドライブ装置505によって読み出されてもよく、外部装置からネットワーク510を介して送信されてもよい。通信インタフェース506は、ネットワーク510を介して外部装置とデータを送受信する。入出力インタフェース507は、周辺機器(キーボード、マウス、表示装置など)とデータをやり取りする。通信インタフェース506及び入出力インタフェース507は、データを取得又は出力する手段として機能することができる。出力情報などのデータは、記憶装置504に記憶されていてもよいし、プログラム508に含まれていてもよい。
 なお、以下の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム(より具体的には、図7、図8、図9、図10、図13、図15、図16等に示す処理をコンピュータに実行させるプログラム)を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
 該記録媒体としては例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行する形態に限らず、他のソフトウェア、拡張ボードの機能と共同して、OS上で動作して処理を実行する形態も各実施形態の範疇に含まれる。
 <第1の実施形態>
 次に、本実施形態における分散処理システム10の機能について説明する。図3は、本実施形態における分散処理システム10の機能構成を示すブロック図である。図3に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の方法を用いて行われてよい。
 図3に示すように、本実施形態における分散処理システム10は、解析ノード100と管理ノード200とを備える。解析ノード100と管理ノード200とは、ネットワーク300を介して接続される。
 本実施形態における解析ノード100は、タスク生成部101と、タスク決定部102と、性能情報管理部103と、タスク実行部104と、余剰判定部105と、タスク送受信部106と、性能情報送受信部107とを含む。本実施形態における管理ノード200は、性能情報送受信部201と、性能情報記憶部202と、性能情報統合部203と、タスク送受信部204と、タスク記憶部205とを含む。
 タスク生成部101は、解析ノード100が処理するタスクを生成する。タスクは、解析ノード100で行われる処理(解析処理)である。具体的には、タスクは、例えば、画像に含まれる人間の顔認識処理、顔認識した人物の性別判別処理、等を含んでよい。タスク生成部101は、例えば、外部装置から入力される入力情報を受け付け、入力情報に基づくタスクを生成する。外部装置は、例えば、監視カメラやセンサである。入力情報は、例えば、監視カメラからの映像データやセンサからのデータである。
 タスク決定部102(タスク決定手段)は、タスク生成部101により生成されたタスクまたはタスク送受信部106により受信されたタスクと、性能情報管理部103の性能情報とを用いて、対象の解析ノード100でタスクを実行するか、又は近傍の解析ノード100(近傍サーバ群)へタスクの実行を委譲するか(タスクの分散処理を実行するか)を決定する。対象の解析ノード100におけるタスク決定部102により、対象の解析ノード100において実行すると決定されたタスクは、対象の解析ノード100におけるタスク実行部104により実行される。タスク決定部102により、近傍の解析ノード100へタスクの分散処理を実行すると決定されたタスクは、タスク送受信部106により管理ノード200へ送信される。
 性能情報管理部103は、対象の解析ノード100の性能情報を取得し、性能情報送受信部107により管理ノード200へ送信する。また、性能情報管理部103は、管理ノード200により送信される統合性能情報を保管する。統合性能情報の詳細は後述する。
 タスク実行部104(タスク実行手段)は、タスク決定部102が、あるタスクを対象の解析ノード100で実行すると判定した場合、そのタスクを実行する。
 余剰判定部105は、性能情報管理部103により取得された対象の解析ノード100の性能情報に基づき、対象の解析ノード100に余剰処理能力があるか(対象の解析ノード100の資源に余剰があるか)を判定する。余剰処理能力は、対象の解析ノード100がタスクを実行する場合に、対象の解析ノード100において余っている処理能力(計算資源)である。余剰判定部105は、余剰処理能力がある場合、タスク記憶部205に格納されている余剰タスクに応じて、タスク実行部104でタスクを実行するように要求する。余剰タスクの詳細は後述する。
 なお、余剰判定部105は、性能情報管理部103により取得された対象の解析ノード100の性能情報、及び、タスク記憶部205に格納される余剰タスクを、管理ノード200から取得してもよい。また、余剰判定部105は、それらの情報が管理ノード200から送信されるように管理ノード200へ要求してもよい。これにより、余剰の資源を活用でき、かつ、負荷分散効果が得られる。
 タスク送受信部106は、解析ノード100のタスク、及び、タスク記憶部205に格納される余剰タスクを送受信する。例えば、タスク送受信部106は、管理ノード200のタスク送受信部204により送信されるタスクを受信する。また、タスク送受信部106は、例えば、タスク決定部102により近傍の解析ノード100へ負荷分散すると判定されたタスクを、管理ノード200へ送信する。
 性能情報送受信部107は、解析ノード100及び近傍の解析ノード100の性能情報並びに統合性能情報を送受信する。例えば、性能情報送受信部107は、性能情報管理部103により取得された性能情報を管理ノード200へ送信する。また、例えば、性能情報送受信部107は、管理ノード200の性能情報送受信部201により送信された統合性能情報を受信する。
 性能情報送受信部201は、解析ノード100に関する性能情報、及び、統合性能情報を送受信する。例えば、性能情報送受信部201は、解析ノード100の性能情報送受信部107により送信される性能情報を受信し、性能情報記憶部202へ格納する。また、例えば、性能情報送受信部201は、統合性能情報を各解析ノード100へ送信する。
 性能情報記憶部202は、各解析ノード100の性能情報を格納(保持)する。図4は、性能情報記憶部202に格納される解析ノード100の性能情報の一例を示す図である。図4に示すように、例えば、解析ノード100の性能情報は、各解析ノード100の識別子(解析ノードID(Identifier))と、スループットと、処理待ちタスク数と、NW遅延情報(ネットワーク遅延情報)と、それぞれの情報が更新された日時とを含む。なお、解析ノード100の性能情報は、図4に示すスループット、処理待ちタスク数、及び、ネットワーク遅延に限定されず、例えば、メモリ消費量などの解析ノード100の性能を示す情報を含んでもよい。
 また、性能情報記憶部202は、性能情報統合部203が各解析ノード100の性能情報を統合した情報を表す統合性能情報を格納する。図5は、性能情報記憶部202に格納される統合性能情報の一例を示す図である。統合性能情報は、近傍の解析ノード100全体としての性能情報である。図5に示すように、例えば、統合性能情報は、単位時間当たりのタスクのスループットと、処理待ちタスク数と、ネットワーク遅延(NW遅延)の統合値と、統合性能情報の対象となる近傍の解析ノード100の数と、統合した日時とを含む。図5に示す例において、ネットワーク遅延は、タスクを対象の解析ノード100から対象の管理ノード200まで送信する際のネットワークの遅延時間である。なお、ネットワーク遅延は遅延時間に限定されず、例えば、解析ノード100と管理ノード200間のルーターのホップ数を表してもよい。
 性能情報統合部203(性能情報統合手段)は、性能情報記憶部202に格納される各解析ノード100の性能情報を統合し、性能情報記憶部202へ格納する。
 タスク送受信部204は、解析ノード100のタスク、及び、タスク記憶部205に格納される余剰タスクを送受信する。例えば、タスク送受信部204は、タスク送受信部106から送信されるタスクを受信し、余剰タスクとしてタスク記憶部205へ格納する。
 タスク記憶部205は、余剰タスクを格納する。図6は、タスク記憶部205に格納される余剰タスクの一例を示す図である。図6に示すように、例えば、余剰タスクは、タスクの識別子(タスクID)と、タスクを送信した解析ノード100の識別子(送信ノードID)と、タスクのデータと、タスクのデータを受信した日付を含む。解析ノード100の識別子は、IPアドレスのように、対象の解析ノード100を対象の管理ノード200(管理サーバ)において一意に特定できる識別情報である。解析ノード100の識別子は、IPアドレスに限定されない。管理ノード200におけるタスク記憶部205は、解析ノード100により負荷分散されるタスクを格納するタスク格納部(タスク格納手段)として機能する。
 次に、本実施形態における分散処理システム10の動作について説明する。図7は、本実施形態における分散処理システム10の動作例を示すフローチャートである。分散処理システム10は、統合性能情報を生成する(ステップS101)。分散処理システム10は、タスクの割当を決定する(ステップS102)。分散処理システム10は、余剰処理能力の有無を判定する(ステップS103)。
 以下、ステップS101における処理(統合性能情報生成処理)の詳細を説明する。図8は、本実施形態における分散処理システム10による統合性能情報生成処理の動作例を示すフローチャートである。性能情報送受信部201は、近傍の解析ノード100の各々から性能情報を取得し、性能情報記憶部202へ格納する(ステップS201)。図1に示す具体例のように、分散処理システム10において、例えば、解析ノードAが対象の解析ノード100であり、管理ノードAが対象の管理ノード200であり、解析ノードB、解析ノードD及び解析ノードEが近傍の解析ノード100であることを想定する。この場合において、管理ノードAの性能情報送受信部201は、解析ノードB、解析ノードD及び解析ノードEの性能情報を取得し、図4に示す性能情報を管理ノードAの性能情報記憶部202へ格納する。
 性能情報統合部203は、近傍の解析ノード100の性能情報を統合する(ステップS202)。例えば、管理ノードAの性能情報統合部203は、管理ノードAの性能情報記憶部202に格納される解析ノードB、解析ノードD及び解析ノードEの性能情報を統計演算することで統合性能情報を生成する。そのような統計演算には、例えば、平均を算出する処理(平均処理)が含まれてもよい。具体的には、例えば、図5に示すように、性能情報統合部203は、図4に示す近傍の解析ノード100のスループットにおいて、”2タスク毎秒”、”5タスク毎秒”、及び、”3タスク毎秒”から、平均値”3.3タスク毎秒”を統合性能情報として算出する。同様に、性能情報統合部203は、処理待ちタスク数において、”0”、”5”、及び”7”から、平均値”4”を、統合性能情報として算出する。同様に、性能情報統合部203は、ネットワーク遅延において、”3.3”、”0.6”、及び”1.1”から、平均値”1.67”を統合性能情報として算出する。
 性能情報統合部203は、ステップS202で生成した統合性能情報を性能情報記憶部202へ格納する(ステップS203)。例えば、管理ノードAの性能情報統合部203は、解析ノードB、解析ノードD及び解析ノードEの性能情報を統計演算することで生成した統合性能情報を、管理ノードAの性能情報記憶部202に格納する。
 分散処理システム10(性能情報統合部203)は、このような処理により、統合性能情報を生成する。すなわち、管理ノード200は、接続されている解析ノード100の性能情報を統合する性能情報統合部203を有する。
 以下、ステップS102における処理(タスク割当決定処理)の詳細を説明する。図9は、本実施形態における分散処理システム10によるタスク割当決定処理の動作例を示すフローチャートである。タスク生成部101により、タスクが生成されることで、タスクが発生する(ステップS301)。例えば、解析ノードAのタスク生成部101は、外部装置からの入力情報に基づきタスクを生成する。
 タスク決定部102は、性能情報管理部103から対象の解析ノード100に関する現在の性能情報を取得し、対象の解析ノード100にて処理の溢れが発生するか否かを判定する(ステップS302)。例えば、解析ノードAのタスク決定部102は、解析ノードAのタスク生成部101により生成されたタスクと、解析ノードAの性能情報管理部103が有する現在の性能情報とを比較し、処理が溢れるか否かを判定する。
 対象の解析ノード100で処理が溢れない場合(ステップS302でNo)、対象の解析ノード100のタスク実行部104は、当該タスクを実行する(ステップS303)。
 対象の解析ノード100で処理が溢れる場合(ステップS302でYes)、タスク決定部102は、対象の解析ノード100の性能情報から、対象の解析ノード100でタスクを実行する場合の遅延コストを算出する(ステップS304)。例えば、解析ノードAのタスク決定部102は、解析ノードAの性能情報管理部103より、自身の性能情報を取得する。具体的には、例えば、タスク決定部102は、計算負荷として、平均処理スループットの”2タスク毎秒”と、処理待ちのタスク数の”10”とを取得する。解析ノードAのタスク決定部102は、例えば、平均処理スループット”2タスク毎秒”と、処理待ちタスク数”10”とから、”処理待ちタスク数÷平均スループット”を計算することにより、解析ノードAでタスクを実行する場合の遅延コスト(以降、「第1のコスト」と記載)を”5”と推定する。
 タスク決定部102は、性能情報記憶部202に格納される統合性能情報から、近傍の解析ノード100でタスクを実行する場合の遅延コストを算出する(ステップS305)。解析ノードAのタスク決定部102は、例えば、管理ノードAの性能情報記憶部202に格納される統合性能情報を取得する。具体的には、例えば、タスク決定部102は、統合性能情報として、平均処理スループットの”3.3タスク毎秒”と、実行待ちのタスク数の”4”と、ネットワーク遅延の”1.67”とを取得する。解析ノードAのタスク決定部102は、平均処理スループット”3.3タスク毎秒”と、実行待ちのタスク数”4”と、ネットワーク遅延”1.67”とから、解析ノードB、解析ノードD及び解析ノードEへタスクの分散処理を実行する場合の遅延コスト(以降、第2のコストと記載)を、例えば以下のように計算する。即ち、タスク決定部102は、上記各数値を用いて、”実行待ちタスク数÷平均スループット+ネットワーク遅延”を計算することで、第2のコストを”2.88”と推定する。
 タスク決定部102は、第1のコストと、第2のコストとを比較し、対象の解析ノード100でタスクを実行するか、又は近傍の解析ノード100へタスクの分散処理を実行するかを決定する(ステップS306)。第2のコストが第1のコストより低い場合(ステップS306でYes)、タスク送受信部106は、タスクを管理ノード200へ送信する(ステップS307)。第1のコストが第2のコストより低い場合(ステップS306でNo)、対象の解析ノード100のタスク実行部104は、タスクを実行する(ステップS303)。例えば、解析ノードAのタスク決定部102は、算出した第1のコストの値”5”と、第2のコストの値”2.88”とを算術比較する。本例の場合、第2のコストが第1のコストより低いため、解析ノードAのタスク送受信部106は、タスクを管理ノードAへ送信する。管理ノードAは、解析ノードAから送信されたタスク(余剰タスク)をタスク記憶部205に格納する。
 分散処理システム10(タスク決定部102)は、このような処理により、タスクの割当を決定する。すなわち、解析ノード100(タスク決定部102)は、ある解析ノード100の性能情報に基づいて、その解析ノード100においてタスクを実行する第1のコストを算出する。また、解析ノード100は、性能情報統合部203により統合される性能情報に基づいて、近傍の解析ノード100へタスクを負荷分散する第2のコストを算出する。解析ノード100は、算出された第1のコストと、第2のコストとに基づいて、その解析ノード100においてタスクを実行するか、又は近傍の解析ノード100へタスクの負荷分散を実行するかを決定する。
 なお、上記においては、本実施形態のタスク決定部102が、瞬間値(例えば、ある時点における性能情報)を用いた算術計算によりコストを推定する態様について説明した。本実施形態は、これに限定されない。タスク決定部102によるコストの推定方法は、例えば、過去一定時間でのコスト推移を一時的に記憶し、処理負荷が高い期間なのか、又は閑散期間なのかを推定することで、コスト計算へ反映する、等の方法を含んでもよい。
 以下、具体例を用いて説明する。以下に説明する具体例においては、例えば、過去4サイクルでの対象の解析ノード100のコストが、”1”、”2”、”1”、”5”と推移していることを想定する。また、過去4サイクルでの近傍の解析ノード100のコストが、”5”、”8”、”7”、”2.88”と推移していることを想定する。この場合において、タスク決定部102は、例えば、過去データを加味して各コスト計算を計算してもよい。具体的には、タスク決定部102は、例えば、過去のコストの推移を加味して、”(((((1+2)÷2)+1)÷2)+5)/2”を計算することで、第1のコストを”3.125”と算出してもよい。また、タスク決定部102は、例えば、過去のコストの推移を加味して、”(((((5+8)÷2)+7)÷2.88)+5)/2”を計算することで、第2のコストを”4.815”と算出してもよい。タスク決定部102は、第1のコストと第2のコストとを比較した結果から、対象の解析ノード100がタスクを実行すると決定する。
 また、タスク決定部102によるコストの推定方法は、コストの推移の代わりに性能情報の推移に応じて、コストの計算方法を変える方式、コストへ重みを積算する方式、等を含んでもよい。すなわち、タスク決定部102は、第1のコストの履歴を用いて第1のコストを算出し、第2のコストの履歴を用いて第2のコストを算出する、適切な方式を採用可能である。
 以下、ステップS103の余剰処理能力判定処理の詳細を説明する。図10は、本実施形態における分散処理システム10による余剰処理能力判定の動作例を示すフローチャートである。余剰判定部105は、対象の解析ノード100の性能情報を取得し、対象の解析ノード100に余剰処理能力があるか否かを判定する(ステップS401)。例えば、解析ノードAの余剰判定部105は、解析ノードAの性能情報管理部103より解析ノードAの性能情報を取得し、あらかじめ設定された閾値などを用いて、性能情報から解析ノードAに計算資源の余剰があるかを推定する。具体的には、余剰判定部105は、例えば、計算負荷として処理待ちのタスク数(例えば、”1”)を取得する。余剰判定部105は、閾値(例えば”2”)を参照する。この場合、余剰判定部105は、処理待ちタスク数(”1”)が、閾値(”2”)より低い値である場合、タスク取得が可能であると判定する。
 対象の解析ノード100に余剰処理能力がある場合(ステップS401でYes)、タスク送受信部106は、タスク記憶部205に格納される余剰タスクを取得する(ステップS402)。例えば、解析ノードAに余剰処理能力がある場合、タスク送受信部106は、管理ノードAのタスク記憶部205に格納される余剰タスクを取得する。図6に示す具体例の場合、余剰判定部105は、例えば、タスク記憶部205に格納される余剰タスクの中で最初に登録されたタスクであるタスクIDが”1”の余剰タスクを取得する。
 タスク実行部104は、余剰判定部105により取得された余剰タスクを実行する(ステップS403)。例えば、解析ノードAのタスク実行部104は、タスクIDが”1”の余剰タスクを実行する。対象の解析ノード100に余剰処理能力がない場合(ステップS401でNo)、分散処理システム10は処理を終了する。
 なお、上記においては、本実施形態の余剰判定部105が、タスク記憶部205から余剰タスクをFIFO(First In First Out)方式で取得する態様を説明したが、本実施形態は、これに限定されない。余剰判定部105による余剰タスク取得方法は、例えば、タスクのデータサイズなどの複合的な指標からタスクの実行優先度を決定し、当該タスクの実行優先度に基づいて取得する方式を含んでもよい。
 分散処理システム10(余剰判定部105)は、このような処理により、余剰処理能力の有無を判定する。
 以上説明したように、本実施形態における分散処理システム10は、統合性能情報を生成し、タスクの割当を決定し、余剰処理能力の有無を判定する。これにより、分散処理システム10は、処理負荷が頻繁に変動する場合でも、タスクの割当先(以下「タスク割当先」と記載する)を正しく判定できる。特に、本実施形態の分散処理システム10は、性能情報統合部203が、近傍の解析ノード100全体の性能情報を統計処理することで統合性能情報を生成する。本実施形態の分散処理システム10は、個々の解析ノード100の性能情報よりも変動が少ない統合性能情報を用いてタスク決定部102がタスクを割当てる。これより、分散処理システム10は、個々の性能情報を用いる場合に比べて、性能情報の収集間隔を広くすることができる。
 ここで、特許文献1に開示された技術は、周辺にある全装置の収集処理関連情報を装置間で直接授受する。特許文献1に開示された技術においては、処理関連情報をニアリアルタイムで収集する場合、全装置が相互に接続されることから、装置間での接続の組合せが増加する。このため、ネットワーク負荷が高くなる。すなわち、特許文献1に開示された技術は、装置数が増加した際に処理関連情報の通信によるネットワーク負荷が高くなるという課題がある。これに対し、本実施形態の分散処理システム10では、複数の解析ノード100が直接性能情報をやり取りするのではなく、管理ノード200の性能情報記憶部202を介して性能情報を取得するように構成されている。このため、性能情報の通信によるネットワーク負荷の増加を抑制することができる。
 また、特許文献1に開示された技術は、各装置が、他の装置の処理関連情報を参照して、処理を分散する宛先装置を割り当てる。これより、ある宛先装置が処理を受け取った時点では、その宛先装置の負荷が既に高くなっており処理待ちが発生する可能性がある。すなわち、特許文献1に開示された技術は、分散した処理の処理待ち時間にばらつきが発生するという課題がある。これに対し、本実施形態の分散処理システム10は、タスク決定部102が、性能情報統合部203が生成した統合性能情報を参照して、入力された処理タスクを対象の解析ノード100で処理した場合のコストと、周辺の解析ノード100へ分散した場合のコストとを算出する。本実施形態の分散処理システム10は、タスク決定部102が、算出したこれらのコストとを比較して、処理対象(送信先)を決定する。このため、本実施形態の分散処理システム10によれば、分散した処理の処理待ち時間のばらつきを低減することが可能であり、適切な分散処理が実現される。
 <第2の実施形態>
 次に、第2の実施形態における分散処理システム10の機能について説明する。図11は、本実施形態における分散処理システム10の機能構成を示すブロック図である。本実施形態における分散処理システム10は、第1の実施形態における分散処理システム10に加えて、管理ノード200において、性能情報統合部203とタスク記憶部205とが接続されている。
 本実施形態における性能情報統合部203は、性能情報記憶部202に格納される解析ノード100の性能情報と、タスク記憶部205に格納される余剰タスクとを統合し、性能情報記憶部202へ格納する。図12は、性能情報記憶部202に格納される統合性能情報の一例を示す図である。本実施形態の統合性能情報は、管理ノード200のタスク記憶部205に格納されている余剰タスク情報を加味した、当該管理ノード200対する近傍の解析ノード100全体としての性能情報である。図12に示すように、本実施形態の統合性能情報は、例えば、単位時間当たりのタスク処理スループットや、処理待ちタスク数、NW遅延の統合値や、統合に使用した解析ノード100の数(図12の「ノード数」)、及び、統合した日時を含む。本例では、ネットワーク遅延は、タスクを対象の解析ノード100から対象の管理ノード200に送信するのに要するネットワーク遅延時間を表す。
 なお、本実施形態のネットワーク遅延は、遅延時間に限定されるものではなく、例えば、解析ノード100と管理ノード200間のルーターのホップ数などを表してもよい。さらに、本実施形態の性能情報は、処理負荷やネットワーク遅延に限定されるものではなく、例えば、メモリ消費量などの情報を含んでもよい。
 以下、本実施形態の分散処理システム10による統合性能情報生成処理の詳細を説明する。図13は、本実施形態における分散処理システム10による統合性能情報生成処理の動作例を示すフローチャートである。性能情報送受信部201は、解析ノード100から性能情報を取得し、各解析ノード100の性能情報として性能情報記憶部202に格納する(ステップS501)。図1に示す具体例の場合、例えば、管理ノードAの性能情報送受信部201は、解析ノードB、解析ノードD及び解析ノードEの性能情報を取得し、管理ノードAの性能情報記憶部202へ格納する。
 性能情報統合部203は、タスク記憶部205に格納される余剰タスクを取得する(ステップS502)。例えば、管理ノードAの性能情報統合部203は、管理ノードAのタスク記憶部205に格納される解析ノードAの余剰タスクを取得する。
 性能情報統合部203は、取得した解析ノード100の性能情報と、余剰タスクとに基づいて、近傍の解析ノード100の統合性能情報を生成する(ステップS503)。例えば、性能情報統合部203は、取得した解析ノードB、解析ノードD及び解析ノードEの性能情報と、解析ノードB及び解析ノードDの余剰タスクと、を統計演算することで、統合性能情報を生成する。係る統計演算には、例えば、平均処理が含まれてもよい。図4に示す具体例の場合、性能情報統合部203は、例えば、近傍の解析ノード100のスループットとして、”2タスク毎秒”、”5タスク毎秒”、及び、”3タスク毎秒”の平均値から”3.3タスク毎秒”を算出する。同様に、性能情報統合部203は、ネットワーク遅延として、”3.3”、”0.6”、及び、”1.1”の平均値である”1.67”を算出する。性能情報統合部203は、図4に示す処理待ちタスク数である”0”、”5”、及び”7”と、図6に示す余剰タスクのタスク数である”2”とを加算し、その結果をノード数である”3”により除算することで、平均を算出する。即ち、性能情報統合部203は、”(12+2)÷3”を計算することで、値”4.6”を、統合性能情報(処理待ちタスク数)として算出する。
 性能情報統合部203は、ステップS503で生成した統合性能情報を性能情報記憶部202へ格納する(ステップS504)。例えば、管理ノードAの性能情報統合部203は、解析ノードB、解析ノードD及び解析ノードEの性能情報と、解析ノードB及び解析ノードDの余剰タスクと、を統計演算することで生成した統合性能情報を、管理ノードAの性能情報記憶部202に格納する。
 分散処理システム10(性能情報統合部203)は、このような処理により、性能情報と余剰タスクとに基づく統合性能情報を生成する。
 以上説明したように、本実施形態における分散処理システム10は、性能情報と余剰タスクとに基づく統合性能情報を生成し、タスクの割当を決定し、余剰処理能力の有無を判定する。これにより、分散処理システム10は、処理負荷が頻繁に変動する場合であってもタスク割当先を正しく判定できる。
 本実施形態における分散処理システム10では、性能情報統合部203が統合性能情報を生成する際、性能情報記憶部202の各解析ノード100の性能情報に加えて、タスク記憶部205に格納された、近傍にある複数の解析ノード100全体での実行待ちタスクを考慮して統合性能情報を生成する。これにより、分散処理システム10は、個々の性能情報のみから統合性能情報を生成する場合に比べて、性能情報の収集間隔を広くすることができる。
 <第3の実施形態>
 次に、第3の実施形態における分散処理システム10の機能について説明する。図14は、本実施形態における分散処理システム10の機能構成を示すブロック図である。本実施形態における分散処理システム10は、第1の実施形態における分散処理システム10に加えて、カメラ400をさらに備える。カメラ400は、解析ノード100(タスク生成部101)と接続されている。本実施形態における解析ノード100は、タスク実行部104が1次処理実行部108と、2次処理実行部109とをさらに含む。
 本実施形態におけるタスク生成部101は、カメラ400により入力される映像や画像、音声などの入力情報を受け取り、解析ノード100が処理する1次処理タスクを生成する。
 タスク決定部102は、タスク生成部101により生成される1次処理タスクと、1次処理実行部108により生成される2次処理タスクとについて、それぞれのタスクの実行先(それぞれのタスク実行する解析ノード100)を決定する。例えば、タスク決定部102は、タスク実行部104による2次処理タスク、又はタスク送受信部106が受信した2次処理タスクと、性能情報管理部103の性能情報とを用いて、対象の解析ノード100でタスクを実行するか、近傍の解析ノード100へタスクの分散処理を実行するか決定する。スク決定部102は、例えば、タスクが、入力情報からの対象物を検出する1次処理と、対象物について分析する2次処理とで構成される場合に、1次処理を実行した後に、2次処理を実行するか、又は近傍の解析ノード100へ2次処理の負荷分散を実行するかを決定する。
 タスク実行部104は、1次処理実行部108において、タスク生成部101により生成される1次処理タスクを実行する。タスク実行部104は、1次処理の結果である2次処理タスクを受け取り、当該2次処理タスクをタスク決定部102へ送る。
 余剰判定部105は、性能情報管理部103により取得された対象の解析ノード100の性能情報に基づき、対象の解析ノード100に2次処理タスクの余剰処理能力があるかを判定する。余剰判定部105は、余剰処理能力がある場合、タスク記憶部205に格納される余剰2次処理タスクに基づきタスク実行部104(2次処理実行部109)でタスクを実行するように要求する。余剰処理能力がある場合は、分散処理システム10は、タスク送受信部106がタスク送受信部204を介して、タスク記憶部205に格納されるタスクを取得し、タスク実行部104がタスクを実行する。分散処理システム10は、このように動作することで、負荷分散効果を得る。
 1次処理実行部108は、タスク生成部101により生成される1次処理タスクを実行する。1次処理タスクは、例えば、入力情報からの複数の対象物を検出する処理(タスク)である。1次処理実行部108は、1次処理タスクの実行結果である2次処理タスクを生成する。
 2次処理実行部109は、タスク決定部102により実行すると決定された2次処理タスクを実行する。2次処理タスクは、例えば、1次処理により検出された各対象物について分析する処理(タスク)である。
 カメラ400は、映像データや画像データ、音声データなどの情報を取得し、取得した情報を入力情報として解析ノード100(タスク生成部101)に送る。
 以下、本実施形態の分散処理システム10によるタスク割当決定処理の詳細を説明する。図15は、本実施形態における分散処理システム10によるタスク割当決定処理の動作例を示すフローチャートである。カメラ400により取得された入力情報に基づき、タスク生成部101が、1次処理タスクを生成することで、タスクが発生する(ステップS601)。例えば、解析ノードAのタスク生成部101は、外部装置からの入力情報に基づきタスクを生成する。
 1次処理実行部108は、タスク生成部101により生成される1次処理タスクを実行し、2次処理タスクを生成する(ステップS602)。
 タスク決定部102は、1次処理実行部108により生成される2次処理タスクがすべて処理されたかを判定する(ステップS603)。本実施形態の分散処理システム10によるタスク割当決定処理は、ステップS602で2次処理タスクが生成された際、タスク決定部102が処理すべき2次処理タスクがあると判定し(ステップS603でNo)、ステップS604へ進む。
 タスク決定部102は、性能情報管理部103から対象の解析ノード100の現在の性能情報を取得し、対象の解析ノード100にて処理の溢れが発生するかを判定する(ステップS604)。
 対象の解析ノード100で処理が溢れない場合(ステップS604でNo)、対象の解析ノード100の2次処理実行部109は、当該2次処理タスクを実行する(ステップS605)。
 対象の解析ノード100で処理が溢れる場合(ステップS604でYes)、タスク決定部102は、対象の解析ノード100の性能情報から、対象の解析ノード100で2次処理タスクを実行する場合の遅延コスト(第1のコスト)を算出する(ステップS606)。
 タスク決定部102は、性能情報記憶部202に格納される統合性能情報から、近傍の解析ノード100で2次処理タスクを実行する場合の遅延コスト(第2のコスト)を算出する(ステップS607)。
 タスク決定部102は、2次処理タスクを実行する場合の第1のコスト及び第2のコストを比較し、対象の解析ノード100で2次処理タスクを実行するか、又は近傍の解析ノード100へ2次処理タスクの分散処理を実行するかを決定する(ステップS608)。例えば、第2のコストが第1のコストより低い場合(ステップS608でYes)、タスク送受信部106は、2次処理タスクを管理ノード200へ送信する(ステップS609)。例えば、第1のコストが第2のコスト以下の場合(ステップS608でNo)、対象の解析ノード100の2次処理実行部109は、2次処理タスクを実行する(ステップS605)。
 なお、本実施形態の分散処理システム10は、すべての2次処理タスクが実施されるまでステップS604乃至ステップS609の処理(タスク割当決定処理)を繰り返し実行してよい。本実施形態の分散処理システム10によるタスク割当決定処理は、すべての2次処理タスクが完了した場合(ステップS603でYes)、実行が終了される。
 分散処理システム10(タスク決定部102)は、このような処理により、2次処理タスクの割当を決定する。
 以下、本実施形態の分散処理システム10による余剰処理能力判定処理の詳細を説明する。図16は、本実施形態における分散処理システム10による余剰処理能力判定処理の動作例を示すフローチャートである。
 余剰判定部105は、対象の解析ノード100の性能情報を取得し、対象の解析ノード100に余剰処理能力があるかを判定する(ステップS701)。
 対象の解析ノード100に余剰処理能力がある場合(ステップS701でYes)、タスク送受信部106は、タスク記憶部205に格納される余剰タスク(2次処理タスク)を取得する(ステップS702)。
 2次処理実行部109は、余剰判定部105により取得された2次処理タスクを実行する(ステップS703)。対象の解析ノード100に余剰処理能力がない場合(ステップS701でNo)、分散処理システム10は処理を終了する。
 分散処理システム10(余剰判定部105)は、このような処理により、余剰処理能力の有無を判定する。
 以上説明したように、本実施形態における分散処理システム10は、統合性能情報を生成し、2次処理タスクの割当を決定し、余剰処理能力の有無を判定する。これにより、分散処理システム10は、処理負荷の変動が頻繁な場合でもタスク割当先を正しく判定できる。
 本実施形態における分散処理システム10では、タスク実行部104が1次処理実行部108と2次処理実行部109とに細分化される。解析ノード100は、タスク生成部101が生成した1次処理タスクをタスク実行部104が実行した上で、余剰な2次処理タスクに関する処理を分散するように構成されている。これにより、分散処理システム10は、個々の性能情報のみから統合性能情報を生成する場合に比べて、性能情報の収集間隔を広くすることができる。
 <その他の実施形態>
 図17は、上述の実施形態における分散処理システム10の概略構成図である。図17に例示する分散処理システム10においては、ある解析ノード100が、入力情報を解析し、その解析ノード100自身の性能を表す性能情報に基づいて、その解析ノード100自身があるタスクを実行する際のコスト(第1のコスト)を算出する。
 また、その解析ノード100は、他の解析ノード100の性能情報を管理(保持)する管理ノード200により統合された、他の解析ノード100に関する性能情報に基づいて、あるタスクを他の解析ノード100に分散して実行する場合のコスト(第2のコスト)を算出する。その解析ノード100は、算出した第1のコスト及び第2のコストに基づいて、あるタスクをその解析ノード100自身が実行するか、又は近傍の他の解析ノード100へタスクを分散して実行するかを決定する。即ち、図17に例示する分散処理システム10は、解析ノード100において算出された第1のコスト及び第2のコストに応じて、あるタスクの実行に要する負荷を近傍の解析ノード100に分散する、負荷分散の機能を実現することができる。
 図17に例示するように、分散処理システム10は、入力情報を解析する解析ノード100と、管理ノード200と、を含む。管理ノード200は、解析ノード100にネットワークを介して接続され、解析ノード100の性能情報を管理する。管理ノード200は、ネットワークを介して接続された解析ノード100に関する性能情報を保持するよう構成されてよい。
 管理ノード200は、接続されている解析ノード100の性能情報を統合する性能情報統合部203を有する。解析ノード100は、タスク決定部102を有する。解析ノード100におけるタスク決定部102は、自解析ノード100自身の性能を表す性能情報に基づいてタスクを実行する第1のコストを算出するよう構成されてよい。また、解析ノード100におけるタスク決定部102は、性能情報統合部203により統合される性能情報に基づいて、近傍の解析ノード100へタスクを分散する第2のコストを算出するよう構成されてよい。解析ノード100におけるタスク決定部102は、算出した第1のコストと、第2のコストとに基づいて、自解析ノード100自身においてタスクを実行するか、又は近傍の解析ノード100へタスクの負荷を分散するかを決定する。
 本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
 上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 [付記1]
 入力情報を解析する解析ノードと、
 前記解析ノードにネットワークを介して接続されており、前記解析ノードの性能情報を管理する管理ノードと、を含み、
 前記管理ノードは、接続されている前記解析ノードの性能情報を統合する性能情報統合部を有し、
 前記解析ノードは、性能情報に基づいてタスクを実行する第1のコストと、前記性能情報統合部により統合される性能情報に基づいて、近傍の解析ノードへ前記タスクを負荷分散する第2のコストとに基づいて、前記タスクを実行するか、又は前記近傍の解析ノードへ前記タスクの負荷分散を実行するかを決定するタスク決定部を有する分散処理システム。
 [付記2]
 前記タスク決定部は、前記タスクが、前記入力情報からの対象物を検出する1次処理と、前記対象物について分析する2次処理とで構成される場合に、前記1次処理を実行した後に、前記2次処理を実行するか、又は前記近傍の解析ノードへ前記2次処理の負荷分散を実行するかを決定する付記1に記載の分散処理システム。
 [付記3]
 前記管理ノードは、前記解析ノードにより負荷分散されるタスクを格納するタスク格納部を有し、
 前記解析ノードは、自身の資源に余剰がある場合に、前記タスク格納部に格納されているタスクを実行するタスク実行部を有する付記1又は2に記載の分散処理システム。
 [付記4]
 前記性能情報統合部は、前記性能情報を統計演算することにより、前記性能情報を統合する付記1乃至3のうちいずれか1つに記載の分散処理システム。
 [付記5]
 前記性能情報統合部は、前記性能情報に加えて、前記タスク格納部に格納されるタスク数、入力量、出力量のいずれかまたはその組み合わせを用いて、前記性能情報を統合する付記3又は4に記載の分散処理システム。
 [付記6]
 前記タスク決定部は、前記性能情報から前記タスクを実行する場合の通信遅延時間と処理遅延時間とを用いて前記第1のコストを算出し、統合された前記性能情報を用いて前記近傍の解析ノードへ前記タスクを負荷分散する場合の通信遅延時間と処理遅延時間とを用いて前記第2のコストを算出する付記1乃至5のうちいずれか1つに記載の分散処理システム。
 [付記7]
 前記タスク決定部は、前記第1のコストの履歴を用いて前記第1のコストを算出し、前記第2のコストの履歴を用いて前記第2のコストを算出する付記1乃至6のうちいずれか1つに記載の分散処理システム。
 [付記8]
 前記性能情報は、前記解析ノードのスループットとネットワーク遅延である付記1乃至7のうちいずれか1つに記載の分散処理システム。
 [付記9]
 入力情報を解析し、
 解析ノードの性能情報を管理し、
 管理ノードにネットワークを介して接続されている前記解析ノードの性能情報を統合し、
 性能情報に基づいてタスクを実行する第1のコストと、統合される性能情報に基づいて、近傍の解析ノードへ前記タスクを負荷分散する第2のコストとに基づいて、前記タスクを実行するか、又は前記近傍の解析ノードへ前記タスクの負荷分散を実行するかを決定する分散解析方法。
 [付記10]
 コンピュータに、
 入力情報を解析する処理と、
 解析ノードの性能情報を管理する処理と、
 管理ノードにネットワークを介して接続されている前記解析ノードの性能情報を統合する性能情報統合処理と、
 性能情報に基づいてタスクを実行する第1のコストと、前記性能情報統合処理により統合される性能情報に基づいて、近傍の解析ノードへ前記タスクを負荷分散する第2のコストとに基づいて、前記タスクを実行するか、又は前記近傍の解析ノードへ前記タスクの負荷分散を実行するかを決定するタスク決定処理と、を実行させるプログラム。
 [付記11]
 入力情報からタスクを生成するタスク生成部と、
 性能情報と、近傍の分散処理装置の性能情報が統合される統合性能情報とを取得する性能情報取得部と、
 前記性能情報に基づいて前記タスクを実行する第1のコストと、前記統合性能情報に基づいて、前記近傍の分散処理装置へ前記タスクを負荷分散する第2のコストとに基づいて、前記タスクを実行するか、又は前記近傍の分散処理装置へ前記タスクの負荷分散を実行するかを決定するタスク決定部と、を備える分散処理装置。
[付記12]
 入力情報を解析する解析ノードと、
 前記解析ノードにネットワークを介して接続され、前記解析ノードの性能を表す性能情報を保持する管理ノードと、を含み、
 前記管理ノードは、当該管理ノードに接続されている前記解析ノードに関する前記性能情報を統合する性能情報統合手段を有し、
 前記解析ノードは、
  当該解析ノードに関する前記性能情報に基づいて算出した、当該解析ノードにおいてタスクを実行する第1のコストと、
  前記性能情報統合手段により統合された当該解析ノードとは異なる他の前記解析ノードに関する前記性能情報に基づいて算出した、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストと、に基づいて、
  前記タスクを当該解析ノードにおいて実行するか、又は他の前記解析ノードへ前記タスクを分散して実行するかを決定するタスク決定手段を有する
分散処理システム。
[付記13]
 前記解析ノードにおける前記タスク決定手段は、
  前記タスクが、前記入力情報から対象物を検出する処理である1次処理と、前記対象物について分析する処理である2次処理とを含む場合、前記1次処理を実行した後に、当該解析ノードにおいて前記2次処理を実行するか、又は、他の前記解析ノードへ前記2次処理を分散して実行するかを決定する
付記12記載の分散処理システム。
[付記14]
 前記管理ノードは、前記解析ノードにより負荷分散される前記タスクを格納するタスク格納手段を更に有し、
 前記解析ノードは、自身の資源に余剰がある場合に、前記タスク格納手段に格納されている前記タスクを実行するタスク実行手段を更に有する
付記12又は13に記載の分散処理システム。
[付記15]
 前記性能情報統合手段は、前記性能情報を統計演算することにより、前記性能情報を統合する
付記12乃至14のうちいずれか1項に記載の分散処理システム。
[付記16]
 前記性能情報統合手段は、
  前記性能情報と、
  前記タスク格納手段に格納されるタスク数、入力量、及び、出力量のいずれか又はその組み合わせと、を用いて、前記性能情報を統合する
付記14に記載の分散処理システム。
[付記17]
 前記タスク決定手段は、
  前記性能情報に含まれる、前記タスクを実行する場合の通信遅延時間と、処理遅延時間と、を用いて前記第1のコストを算出し、
  統合された前記性能情報に含まれる、他の前記解析ノードへ前記タスクを分散して実行する場合の通信遅延時間と、処理遅延時間と、を用いて前記第2のコストを算出する
付記12乃至16のうちいずれか1項に記載の分散処理システム。
[付記18]
 前記タスク決定手段は、
  ある時点より過去のある期間における前記第1のコストの推移を表す前記第1のコストの履歴を用いて、ある時点における前記第1のコストを算出し、
  ある時点より過去のある期間における前記第2のコストの推移を表す前記第2のコストの履歴を用いて、ある時点における前記第2のコストを算出する
付記12乃至17のうちいずれか1項に記載の分散処理システム。
[付記19]
 前記性能情報は、前記解析ノードのスループットとネットワーク遅延とを含む
付記12乃至18のうちいずれか1項に記載の分散処理システム。
[付記20]
 解析ノードが、
  入力情報を解析すること、
  当該解析ノード自身の性能を表す性能情報に基づいて当該解析ノード自身がタスクを実行する第1のコストを算出すること、
  ネットワークを介して自身に接続されている1以上の前記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の前記解析ノードに関する性能情報に基づいて、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出すること、及び、
  算出した前記第1のコスト及び第2のコストに基づいて、当該解析ノード自身が前記タスクを実行するか、又は、他の前記解析ノードへ前記タスクの負荷分散を実行するかを決定すること、を含む
分散解析方法。
[付記21]
 解析ノードとして機能するコンピュータに、
 入力情報を解析する処理と、
 当該コンピュータ自身の性能を表す性能情報に基づいて、当該コンピュータ自身がタスクを実行する第1のコストを算出する処理と、
 ネットワークを介して自身に接続されている1以上の前記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の前記解析ノードに関する性能情報に基づいて、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出する処理と、
  算出した前記第1のコスト及び前記第2のコストに基づいて、当該コンピュータ自身が前記タスクを実行するか、又は、他の前記解析ノードへ前記タスクの負荷分散を実行するかを決定する処理と、を実行させるプログラムが記録された
記録媒体。
[付記22]
 入力情報からタスクを生成するタスク生成部と、
 自装置の性能情報と、他の分散処理装置の性能情報が統合された統合性能情報と、を取得する性能情報取得部と、
 自装置の上記性能情報に基づいて算出した、自装置において上記タスクを実行するコストを表す第1のコストと、上記統合性能情報に基づいて算出した、他の上記分散処理装置へ上記タスクを分散して実行するコストを表す第2のコストと、に基づいて、上記タスクを自装置において実行するか、又は他の上記分散処理装置へ上記タスクを負荷して実行するかを決定するタスク決定部と、を備える
分散処理装置。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2016年9月29日に出願された日本出願特願2016-190473を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 10  分散処理システム
 100  解析ノード
 101  タスク生成部
 102  タスク決定部
 103  性能情報管理部
 104  タスク実行部
 105  余剰判定部
 106  タスク送受信部
 107  性能情報送受信部
 108  1次処理実行部
 109  2次処理実行部
 200  管理ノード
 201  性能情報送受信部
 202  性能情報記憶部
 203  性能情報統合部
 204  タスク送受信部
 205  タスク記憶部
 300  ネットワーク
 400  カメラ
 500  コンピュータ装置
 501  CPU
 502  ROM
 503  RAM
 504  記憶装置
 505  ドライブ装置
 506  通信インタフェース
 507  入出力インタフェース
 508  プログラム
 509  記録媒体
 510  ネットワーク

Claims (11)

  1.  入力情報を解析する解析ノードと、
     前記解析ノードにネットワークを介して接続され、前記解析ノードの性能を表す性能情報を保持する管理ノードと、を含み、
     前記管理ノードは、当該管理ノードに接続されている前記解析ノードに関する前記性能情報を統合する性能情報統合手段を有し、
     前記解析ノードは、
      当該解析ノードに関する前記性能情報に基づいて算出した、当該解析ノードにおいてタスクを実行する第1のコストと、
      前記性能情報統合手段により統合された当該解析ノードとは異なる他の前記解析ノードに関する前記性能情報に基づいて算出した、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストと、に基づいて、
      前記タスクを当該解析ノードにおいて実行するか、又は他の前記解析ノードへ前記タスクを分散して実行するかを決定するタスク決定手段を有する
    分散処理システム。
  2.  前記解析ノードにおける前記タスク決定手段は、
      前記タスクが、前記入力情報から対象物を検出する処理である1次処理と、前記対象物について分析する処理である2次処理とを含む場合、前記1次処理を実行した後に、当該解析ノードにおいて前記2次処理を実行するか、又は、他の前記解析ノードへ前記2次処理を分散して実行するかを決定する
    請求項1記載の分散処理システム。
  3.  前記管理ノードは、前記解析ノードにより負荷分散される前記タスクを格納するタスク格納手段を更に有し、
     前記解析ノードは、自身の資源に余剰がある場合に、前記タスク格納手段に格納されている前記タスクを実行するタスク実行手段を更に有する
    請求項1又は2に記載の分散処理システム。
  4.  前記性能情報統合手段は、前記性能情報を統計演算することにより、前記性能情報を統合する
    請求項1乃至3のうちいずれか1項に記載の分散処理システム。
  5.  前記性能情報統合手段は、
      前記性能情報と、
      前記タスク格納手段に格納されるタスク数、入力量、及び、出力量のいずれか又はその組み合わせと、を用いて、前記性能情報を統合する
    請求項3に記載の分散処理システム。
  6.  前記タスク決定手段は、
      前記性能情報に含まれる、前記タスクを実行する場合の通信遅延時間と、処理遅延時間と、を用いて前記第1のコストを算出し、
      統合された前記性能情報に含まれる、他の前記解析ノードへ前記タスクを分散して実行する場合の通信遅延時間と、処理遅延時間と、を用いて前記第2のコストを算出する
    請求項1乃至5のうちいずれか1項に記載の分散処理システム。
  7.  前記タスク決定手段は、
      ある時点より過去のある期間における前記第1のコストの推移を表す前記第1のコストの履歴を用いて、ある時点における前記第1のコストを算出し、
      ある時点より過去のある期間における前記第2のコストの推移を表す前記第2のコストの履歴を用いて、ある時点における前記第2のコストを算出する
    請求項1乃至6のうちいずれか1項に記載の分散処理システム。
  8.  前記性能情報は、前記解析ノードのスループットとネットワーク遅延とを含む
    請求項1乃至7のうちいずれか1項に記載の分散処理システム。
  9.  解析ノードが、
      入力情報を解析し、
      当該解析ノード自身の性能を表す性能情報に基づいて当該解析ノード自身がタスクを実行する第1のコストを算出し、
      ネットワークを介して自身に接続されている1以上の前記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の前記解析ノードに関する性能情報に基づいて、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出し、
      算出した前記第1のコスト及び第2のコストに基づいて、当該解析ノード自身が前記タスクを実行するか、又は、他の前記解析ノードへ前記タスクの負荷分散を実行するかを決定する
    分散解析方法。
  10.  解析ノードとして機能するコンピュータに、
     入力情報を解析する処理と、
     当該コンピュータ自身の性能を表す性能情報に基づいて、当該コンピュータ自身がタスクを実行する第1のコストを算出する処理と、
     ネットワークを介して自身に接続されている1以上の前記解析ノードに関する性能情報を保持する管理ノードにより統合された、他の前記解析ノードに関する性能情報に基づいて、他の前記解析ノードへ前記タスクを分散して実行する負荷分散のコストを表す第2のコストを算出する処理と、
      算出した前記第1のコスト及び前記第2のコストに基づいて、当該コンピュータ自身が前記タスクを実行するか、又は、他の前記解析ノードへ前記タスクの負荷分散を実行するかを決定する処理と、を実行させるプログラムが記録された
    記録媒体。
  11.  入力情報からタスクを生成するタスク生成手段と、
     自装置の性能情報と、他の分散処理装置の性能情報が統合された統合性能情報と、を取得する性能情報取得手段と、
     自装置の前記性能情報に基づいて算出した、自装置において前記タスクを実行するコストを表す第1のコストと、前記統合性能情報に基づいて算出した、他の前記分散処理装置へ前記タスクを分散して実行するコストを表す第2のコストと、に基づいて、前記タスクを自装置において実行するか、又は他の前記分散処理装置へ前記タスクを負荷して実行するかを決定するタスク決定手段と、を備える
    分散処理装置。
PCT/JP2017/033449 2016-09-29 2017-09-15 分散処理システム、分散処理方法、及び記録媒体 WO2018061825A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018542397A JP7006607B2 (ja) 2016-09-29 2017-09-15 分散処理システム、分散処理方法、及び記録媒体
US16/332,257 US11294736B2 (en) 2016-09-29 2017-09-15 Distributed processing system, distributed processing method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-190473 2016-09-29
JP2016190473 2016-09-29

Publications (1)

Publication Number Publication Date
WO2018061825A1 true WO2018061825A1 (ja) 2018-04-05

Family

ID=61760286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/033449 WO2018061825A1 (ja) 2016-09-29 2017-09-15 分散処理システム、分散処理方法、及び記録媒体

Country Status (3)

Country Link
US (1) US11294736B2 (ja)
JP (1) JP7006607B2 (ja)
WO (1) WO2018061825A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105091A1 (ja) * 2018-11-19 2020-05-28 日本電気株式会社 メディアデータ処理システム、方法およびプログラム
JP7439691B2 (ja) 2020-08-05 2024-02-28 株式会社豊田中央研究所 情報処理装置及びプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11675631B2 (en) * 2020-09-29 2023-06-13 Kyndryl, Inc. Balancing mainframe and distributed workloads based on performance and costs
JP2022124361A (ja) * 2021-02-15 2022-08-25 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN113691879B (zh) * 2021-10-25 2022-03-15 通号通信信息集团有限公司 视频数据处理方法、电子设备、计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887473A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ処理装置
JP2005148911A (ja) * 2003-11-12 2005-06-09 Nec Corp 負荷分散方法及び装置とシステム並びにプログラム
JP2014236465A (ja) * 2013-06-05 2014-12-15 日本電信電話株式会社 データストリーミング方法、データストリーミングシステム及び構成情報最適配置装置
WO2015125453A1 (ja) * 2014-02-18 2015-08-27 日本電気株式会社 情報処理装置及び負荷制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US8561072B2 (en) * 2008-05-16 2013-10-15 Microsoft Corporation Scheduling collections in a scheduler
JP5672312B2 (ja) * 2011-01-13 2015-02-18 富士通株式会社 スケジューリング方法
WO2013005322A1 (ja) * 2011-07-06 2013-01-10 富士通株式会社 制御端末、および制御方法
JP2014102691A (ja) 2012-11-20 2014-06-05 Toshiba Corp 情報処理装置、通信機能を持つカメラ、および情報処理方法
US10074066B2 (en) * 2016-01-16 2018-09-11 International Business Machines Corporation Two phase predictive approach for supply network optimization
WO2018030924A1 (en) * 2016-08-11 2018-02-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and cloud management node for managing a data processing task

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887473A (ja) * 1994-09-16 1996-04-02 Toshiba Corp データ処理装置
JP2005148911A (ja) * 2003-11-12 2005-06-09 Nec Corp 負荷分散方法及び装置とシステム並びにプログラム
JP2014236465A (ja) * 2013-06-05 2014-12-15 日本電信電話株式会社 データストリーミング方法、データストリーミングシステム及び構成情報最適配置装置
WO2015125453A1 (ja) * 2014-02-18 2015-08-27 日本電気株式会社 情報処理装置及び負荷制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020105091A1 (ja) * 2018-11-19 2020-05-28 日本電気株式会社 メディアデータ処理システム、方法およびプログラム
JPWO2020105091A1 (ja) * 2018-11-19 2021-09-27 日本電気株式会社 メディアデータ処理システム、方法およびプログラム
JP7103431B2 (ja) 2018-11-19 2022-07-20 日本電気株式会社 メディアデータ処理システム、方法およびプログラム
US11768708B2 (en) 2018-11-19 2023-09-26 Nec Corporation Media data processing system, method, and program
JP7439691B2 (ja) 2020-08-05 2024-02-28 株式会社豊田中央研究所 情報処理装置及びプログラム

Also Published As

Publication number Publication date
JPWO2018061825A1 (ja) 2019-07-11
JP7006607B2 (ja) 2022-01-24
US11294736B2 (en) 2022-04-05
US20190213052A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
WO2018061825A1 (ja) 分散処理システム、分散処理方法、及び記録媒体
EP3637733B1 (en) Load balancing engine, client, distributed computing system, and load balancing method
Tran-Dang et al. FRATO: Fog resource based adaptive task offloading for delay-minimizing IoT service provisioning
CN105979007B (zh) 加速资源处理方法、装置及网络功能虚拟化系统
Kliazovich et al. CA-DAG: Modeling communication-aware applications for scheduling in cloud computing
CN105940377B (zh) 用于基于云的虚拟化编排器的方法、系统和计算机可读介质
US20160203024A1 (en) Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform
KR20180028004A (ko) 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US10761888B2 (en) Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium
JP6558374B2 (ja) スケール数推定装置、スケール数管理システム、スケール数推定方法、スケール数管理方法、および、コンピュータ・プログラム
Zhengbing et al. Resource management in a distributed computer system with allowance for the level of trust to computational components
Zikos et al. The impact of service demand variability on resource allocation strategies in a grid system
KR101656706B1 (ko) 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법
JP6754115B2 (ja) 選択装置、装置選択方法、プログラム
KR20180033961A (ko) 계량데이터 관리 시스템 및 컴퓨터 판독가능 기록 매체
JP2017182221A (ja) 自動負荷分散情報処理システム
CN111211998A (zh) 可弹性扩容的资源配给方法、装置和电子设备
JPWO2016084327A1 (ja) 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム
CN115629853A (zh) 一种任务调度的方法和装置
CN111858019B (zh) 任务调度方法、装置及计算机可读存储介质
CN112019630A (zh) 一种负载均衡方法以及装置
US20220129328A1 (en) Distributed system, data distribution method and program
Garcia-Valls et al. A bi-dimensional QoS model for SOA and real-time middleware.
Mohamad et al. Resource requirement analysis for web applications running in a virtualised environment

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: 17855781

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018542397

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: 17855781

Country of ref document: EP

Kind code of ref document: A1