Management device and processing method
The management device in grid computing systems ensures communication stability by designating a stable representative node for direct data transmission to non-representative nodes, optimizing communication paths and reducing network reliance.
Patent Information
- Application Number
- JP2021158380
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-28
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2041-09-28
AI Technical Summary
Existing grid computing systems lack effective measures to ensure communication stability between nodes.
A management device that selects a representative node with high communication stability to transmit job data to non-representative nodes, ensuring direct communication between nodes without relying on the network, and controlling the distribution of job data to optimize communication paths.
This approach enhances communication stability within grid computing systems by ensuring reliable data transmission and reducing network dependency, thereby improving overall system performance.
Smart Images

Figure 0007729149000001 
Figure 0007729149000002 
Figure 0007729149000003
Abstract
Description
[Technical Field]
[0001] The technology disclosed herein relates to grid computing. [Background technology]
[0002] Patent Document 1 discloses a distributed processing system. This distributed processing system can take a first or second form. The first form is composed of a base station and multiple on-board terminals that can be connected to each other via wireless communication, with the base station functioning as a management node and the multiple on-board terminals functioning as calculation nodes. The second form is composed of multiple on-board terminals that can be connected to each other via wireless communication, with at least one of the multiple on-board terminals functioning as a management node and the other on-board terminals functioning as calculation nodes. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-89021 Summary of the Invention [Problem to be solved by the invention]
[0004] However, Patent Document 1 does not discuss how to ensure communication stability in a distributed processing system (grid computing).
[0005] The technology disclosed herein has been made in consideration of the above points, and its purpose is to ensure communication stability in grid computing. [Means for solving the problem]
[0006] The technology disclosed herein relates to a management device that manages grid computing processing in which job data is processed by a plurality of available mobile devices out of a plurality of mobile devices, each having a computing device. This management device comprises a control unit that, in the grid computing processing, transmits the job data to a representative node that is one of the available mobile devices and whose communication stability with the management device exceeds a predetermined threshold, controls the representative node to transmit the job data transmitted to the representative node to non-representative nodes that are other mobile devices out of the available mobile devices excluding the representative node, and causes the non-representative nodes to process the job data transmitted to the non-representative nodes. The control unit and the representative node communicate via a communications network, and the representative node and the non-representative nodes communicate directly without going through the communications network.
[0007] In the above configuration, communication stability between the management device and the representative node can be ensured.
[0008] In the management device, the control unit may determine a mobile body among the plurality of available mobile bodies whose communication stability with the management device exceeds the threshold value as a mobile body to function as the representative node, and may determine a mobile body among the plurality of available mobile bodies that can communicate with the representative node as a mobile body to function as the non-representative node.
[0009] In the above configuration, the control unit (management side) determines the representative node and non-representative nodes in advance, making it possible to determine a "communication route via a communication network" and a "communication route that does not pass through a communication network." Then, by making a mobile body with high communication stability with the management device the representative node, it is possible to increase the communication stability of the entire communication route.
[0010] In the management device, the control unit may determine, for each of a plurality of partial job data obtained by dividing the job data, the non-representative node that is to process the partial job data.
[0011] In the above configuration, the control unit (management side) determines in advance the partial job data to be assigned to the non-representative node, so that the control unit (management side) can control the communication volume on each communication path.
[0012] In the management device, the control unit may, in the grid computing processing, transmit to the representative node partial job data of the plurality of partial job data to be processed by the non-representative node corresponding to the representative node, and destination information indicating the non-representative node to process the partial job data.
[0013] In the above configuration, it is possible to properly instruct the representative node which partial job data to send to which non-representative node.
[0014] In the management device, the representative node may transmit partial job data transmitted from the control unit to the non-representative node that processes the partial job data indicated in the destination information during the grid computing process.
[0015] In the above configuration, partial job data can be appropriately transmitted from the representative node to the non-representative nodes.
[0016] In the management device, the control unit may be configured to control the non-representative node to send calculation result data indicating the calculation result of the job data to the representative node in the grid computing process, and to control the representative node to send the calculation result data sent to the representative node to the management device.
[0017] In the above configuration, the calculation result data can be transmitted by utilizing the communication between the management device and the representative node (communication with guaranteed communication stability).
[0018] In the management device, the non-representative nodes may be located within a communication range based on the representative node.
[0019] In the above configuration, communication stability between the representative node and non-representative nodes can be ensured.
[0020] The technology disclosed herein relates to a processing method for having a plurality of available mobile bodies out of a plurality of mobile bodies each having a computing device process job data transmitted by a management device. In this method, the management device transmits the job data to a representative node which is a mobile body out of the plurality of available mobile bodies whose communication stability with the management device exceeds a predetermined threshold, the representative node transmits the job data transmitted to the representative node to non-representative nodes which are mobile bodies other than the representative node out of the plurality of available mobile bodies, and the non-representative nodes process the job data transmitted to the non-representative nodes. The management device and the representative node communicate via a communications network, and the representative node and the non-representative nodes communicate directly without going through the communications network.
[0021] The above method can ensure communication stability between the management device and the representative node. [Effects of the Invention]
[0022] The technology disclosed herein can ensure communication stability in grid computing. [Brief explanation of the drawings]
[0023] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a system according to an embodiment. [Figure 2] FIG. 1 is a conceptual diagram illustrating grid computing. [Figure 3] FIG. 1 is a block diagram illustrating a configuration of a vehicle. [Figure 4] FIG. 2 is a block diagram illustrating the configuration of a user terminal. [Figure 5] FIG. 2 is a block diagram illustrating an example of a client server configuration. [Figure 6]FIG. 2 is a block diagram illustrating a configuration of a management server. [Figure 7] 10 is a flowchart illustrating a job reception process. [Figure 8] FIG. 10 is a schematic diagram illustrating an example of an image of a job reception screen. [Figure 9] 10 is a flowchart illustrating a position prediction process. [Figure 10] 10 is a flowchart illustrating an example of a capability prediction process. [Figure 11] 10 is a flowchart illustrating a communication prediction process. [Figure 12] 10 is a flowchart illustrating a matching process. [Figure 13] 1 is a flowchart illustrating a grid computing process. [Figure 14] FIG. 1 is a schematic diagram illustrating the configuration of nodes in a grid computing process. [Figure 15] FIG. 10 is a schematic diagram illustrating an example of node settings in grid computing processing according to a first modified example of the embodiment. [Figure 16] FIG. 10 is a schematic diagram illustrating an example of node settings in grid computing processing according to a second modification of the embodiment. [Figure 17] FIG. 11 is a schematic diagram illustrating an example of node settings in grid computing processing according to a third modified example of the embodiment. [Figure 18] 10 is a flowchart illustrating a modified example of the matching process. DETAILED DESCRIPTION OF THE INVENTION
[0024] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are designated by the same reference numerals and their description will not be repeated.
[0025] (Embodiment) FIG. 1 illustrates the configuration of a system 1 according to an embodiment. The system 1 includes a plurality of vehicles 10, a plurality of user terminals 20, a client server 30, and a management server 50. These components can communicate with each other via a communication network 5 (communication line). These components also communicate with each other to transmit and receive various information and data as necessary. Each of the plurality of vehicles 10 is equipped with a computing device 105. The system 1 may also include a plurality of client servers 30.
[0026] [Grid Computing] As shown in Figure 2, in the embodiment of the system 1, a grid computing (distributed processing system) is formed by vehicles 10 selected from a plurality of vehicles 10, and a grid computing process is performed in which job data is processed by an available vehicle 10 (more specifically, a computing device 105 installed in the vehicle 10) among the plurality of vehicles 10.
[0027] When the vehicle 10 needs the computing power of the arithmetic device 105, the arithmetic device 105 enters an operating state and uses the computing power of the arithmetic device 105. For example, when the vehicle 10 is traveling, the computing power of the arithmetic device 105 is required for traveling control of the vehicle 10, and the arithmetic device 105 enters an operating state.
[0028] On the other hand, when the computing power of the arithmetic device 105 becomes unnecessary in the vehicle 10, the arithmetic device 105 enters a stopped state, and the computing power of the arithmetic device 105 is not used. For example, when the vehicle 10 stops and the power supply of the vehicle 10 is turned off, the computing power of the arithmetic device 105 becomes unnecessary, and the arithmetic device 105 enters a stopped state.
[0029] Here, when the computing power of the computing device 105 is not needed in the vehicle 10, the computing power of the computing device 105 can be provided for grid computing processing, thereby making effective use of the computing power of the computing device 105. For example, it is desirable to provide the computing power of the computing device 105 for grid computing processing while the vehicle 10 is stopped.
[0030] 〔vehicle〕 The vehicle 10 is owned by a user. The user drives the vehicle 10. In this example, the vehicle 10 is a four-wheeled automobile. The vehicle 10 is equipped with a battery (not shown). Power from the battery is supplied to on-board devices such as the computing device 105. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles. The vehicle 10 is capable of communication using vehicle-to-network (V2N) communication and vehicle-to-vehicle (V2V) communication.
[0031] As shown in FIG. 3, the vehicle 10 includes an actuator 11, a sensor 12, an input unit 101, an output unit 102, a communication unit 103, a storage unit 104, and a computing device 105.
[0032] The actuators 11 include drive system actuators, steering system actuators, braking system actuators, etc. Examples of drive system actuators include an engine, a transmission, and a motor. Examples of braking system actuators include a brake. Examples of steering system actuators include a steering wheel.
[0033] The sensor 12 acquires various types of information used to control the vehicle 10. Examples of the sensor 12 include an exterior camera that captures images outside the vehicle, an interior camera that captures images inside the vehicle, radar that detects objects outside the vehicle, a vehicle speed sensor, an acceleration sensor, a yaw rate sensor, an accelerator opening sensor, a steering sensor, and a brake oil pressure sensor.
[0034] The input unit 101 inputs information and data. Examples of the input unit 101 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs audio showing information. Examples of the operation unit include operation buttons and touch sensors of a car navigation device. The information and data input to the input unit 101 are sent to the calculation device 105.
[0035] The output unit 102 outputs information and data. Examples of the output unit 102 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information. An example of a display unit is the display of a car navigation device. An example of a speaker is the speaker of a car navigation device.
[0036] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 are sent to the calculation device 105.
[0037] The storage unit 104 stores information and data.
[0038] The arithmetic device 105 controls each part of the vehicle 10. In this example, the arithmetic device 105 controls the actuator 11 in accordance with various information obtained by the sensor 12. The arithmetic device 105 communicates with external devices (such as components of the system 1) via the communication unit 103. The arithmetic device 105 appropriately updates the information and data stored in the memory unit 104 based on the information and data input to the input unit 101 and the information and data received via the communication unit 103.
[0039] The arithmetic device 105 includes a processor, a memory, etc. Examples of the processor include a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The memory stores programs for operating the processor, information and data indicating the processing results of the processor, etc. The processor (computer) executes the programs stored in the memory to realize various functions of the arithmetic device 105.
[0040] The number of processors installed in the arithmetic device 105 may be one or more. The processor installed in the arithmetic device 105 may be either a CPU or a GPU, or both a CPU and a GPU. In this example, the arithmetic device 105 has both a CPU and a GPU. For example, the arithmetic device 105 is configured by one or more ECUs (Electronic Control Units).
[0041] In this example, the memory unit 104 stores vehicle basic information D11, calculation device information D12, vehicle status information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, and communication management information D18.
[0042] <Vehicle basic information> The vehicle basic information D11 is basic information related to the vehicle 10. For example, the vehicle basic information D11 includes a vehicle ID set for the vehicle 10, a user ID set for the user who owns the vehicle, vehicle performance information indicating the performance of the vehicle, etc. The vehicle ID is an example of vehicle identification information that identifies the vehicle 10. The user ID is an example of user identification information that identifies the user.
[0043] <Calculation device information> The arithmetic device information D12 is information related to the arithmetic device 105. For example, the arithmetic device information D12 includes a arithmetic device ID set in the arithmetic device 105, arithmetic device performance information indicating the performance of the arithmetic device 105, and the like. The arithmetic device ID is an example of arithmetic device identification information for identifying the arithmetic device 105. The performance of the arithmetic device 105 indicated in the arithmetic device performance information includes the computational capacity (specifically, maximum computational capacity) of the arithmetic device 105, the ratio of CPU to GPU in the arithmetic device 105, the communication performance of the arithmetic device 105, the distributed processing performance of the arithmetic device 105, and the like. The computational capacity of the arithmetic device 105 is the amount of data that the arithmetic device 105 can calculate per unit time.
[0044] <Vehicle status information> The vehicle state information D13 indicates the state of the vehicle 10. For example, the vehicle state information D13 includes vehicle position information, vehicle communication information, vehicle power source information, vehicle battery remaining amount information, vehicle charging information, and the like.
[0045] The vehicle position information indicates the position (latitude and longitude) of the vehicle 10. For example, the vehicle position information can be obtained by a GPS (Global Positioning System). The vehicle communication information indicates the communication status of the vehicle 10. The vehicle power supply information indicates the power supply status of the vehicle 10. For example, the vehicle power supply information indicates whether the ignition power is on or off, whether the accessory power is on or off, etc.
[0046] The vehicle battery remaining amount information indicates the remaining amount of a battery (not shown) installed in the vehicle 10. The vehicle charging information indicates whether the vehicle 10 is being charged in a charging facility (not shown) that can charge the battery of the vehicle 10.
[0047] The computing device 105 monitors the state of the vehicle 10 and updates the vehicle state information D13 appropriately (for example, periodically) based on the results of the monitoring.
[0048] <Function usage information> The function usage information D14 indicates the usage history (past usage) and planned usage (future usage) of various functions of the vehicle 10. In other words, the function usage information D14 indicates, for each function of the vehicle 10, the time at which the function was used (or is planned to be used). For example, the function usage information D14 indicates, for each function of the vehicle 10, whether or not the function was used and the time in association with each other. Note that an example of a function of the vehicle 10 is OTA (Over The Air).
[0049] The arithmetic device 105 appropriately updates the function usage information D14. For example, when information regarding the usage history or usage schedule of various functions of the vehicle 10 is input, the arithmetic device 105 updates the function usage information D14 based on the information.
[0050] <Vehicle Usage Information> The vehicle usage information D15 indicates the usage history (past usage) and planned usage (future usage) of the vehicle 10. In other words, the vehicle usage information D15 indicates the time when the vehicle 10 was used (or is planned to be used). For example, the vehicle usage information D15 indicates whether the vehicle 10 was used and the time in association with each other.
[0051] The usage status of the vehicle 10 indicated in the vehicle usage information D15 is the usage status for purposes other than use for grid computing processing. An example of such other purposes of use is driving the vehicle 10. For example, whether the vehicle 10 is being used for driving can be determined based on the history and schedule of turning on and off the power supply (specifically, the ignition power supply) of the vehicle 10.
[0052] The arithmetic device 105 appropriately updates the vehicle use information D15. For example, when information on the vehicle use history or planned use is input, the arithmetic device 105 updates the vehicle use information D15 based on the input information.
[0053] <Location management information> The location management information D16 indicates the past and future locations of the vehicle 10. In other words, the location management information D16 indicates where the vehicle 10 was (or where the vehicle 10 is scheduled to be) at what time. For example, the location management information D16 indicates the location of the vehicle 10 in association with the time.
[0054] The location management information D16 may include scene information indicating a scene of the vehicle 10. Examples of scenes of the vehicle 10 include a scene in which the vehicle 10 is traveling in an urban area, a scene in which the vehicle 10 is traveling on a highway, and a scene in which the vehicle 10 is stopped. For example, the computing device 105 recognizes the external environment of the vehicle 10 based on the output of the sensor 12, estimates the scene of the vehicle 10 based on the results of the recognition, and registers the estimated scene of the vehicle 10 in the location management information D16. The location management information D16 may indicate the "location of the vehicle 10," the "scene of the vehicle 10," and the "time" in association with each other.
[0055] The arithmetic device 105 updates the location management information D16 as appropriate (for example, periodically). Updating the location management information D16 will be described in detail later.
[0056] <Operation management information> The operation management information D17 indicates the operation history (past utilization rate of computing capacity) and operation schedule (future utilization rate of computing capacity) of the arithmetic device 105 mounted on the vehicle 10. In other words, the operation management information D17 indicates what the utilization rate of the computing capacity of the vehicle 10 was (or what the utilization rate is expected to be) at what time. For example, the operation management information D17 indicates the utilization rate of the computing capacity of the arithmetic device 105 in association with time.
[0057] The operation status (computing capacity utilization rate) of the arithmetic device 105 of the vehicle 10 indicated in the operation management information D17 is the operation status for purposes other than use for grid computing processing.
[0058] The computing device 105 updates the operation management information D17 as appropriate (for example, periodically). Updating the operation management information D17 will be described in detail later.
[0059] <Communication Management Information> The communication management information D18 indicates the communication history (past communication state) and communication schedule (future communication state) of the vehicle 10. In other words, the communication management information D18 indicates what the communication state of the vehicle 10 was at what time (or what state it is expected to be). Specifically, the communication management information D18 indicates, for each device with which the vehicle 10 communicates, the communication state (past communication state and future communication state) between the device and the vehicle 10. For example, for each device with which the vehicle 10 communicates, the communication management information D18 indicates the "communication state between the device and the vehicle 10," the "location of the vehicle 10," and the "time," in association with each other.
[0060] In this example, the communication management information D18 includes the communication status between the "vehicle 10" and the "management server 50 that communicates with the vehicle 10 using vehicle-to-network communication (V2N)," and the communication status between the "vehicle 10 (own vehicle)" and the "other vehicle 10 (other vehicle) that communicates with the vehicle 10 (own vehicle) using vehicle-to-vehicle communication (V2V)." The communication status between the vehicle 10 and the management server 50 includes the communication status between the "vehicle 10" and the "repeater (not shown) that relays communication between the vehicle 10 and the management server 50," and the communication status between the repeater and the management server 50. Examples of repeaters include a base station of the communication network 5, and communication equipment installed in a home or facility.
[0061] The communication state includes information such as communication quality, communication bandwidth, and available communication time. Information related to communication quality includes latency, throughput, packet loss, error rate, and the number of communication interruptions. For example, the computing device 105 acquires this information by transmitting and receiving a test signal between the vehicle 10 and a device with which the vehicle 10 communicates. Information related to communication quality may include some or all of the latency, throughput, packet loss, error rate, and the number of communication interruptions, or may include other information correlated with these.
[0062] The communication state also includes a communication stability indicating the degree of communication stability between the "vehicle 10" and the "device with which the vehicle 10 communicates." Specifically, the calculation device 105 derives the communication stability based on at least one of the communication quality, the communication bandwidth, and the available communication time. In other words, the communication stability changes when at least one of the communication quality, the communication bandwidth, and the available communication time changes.
[0063] In this example, the calculation device 105 derives the communication stability based on the communication quality, the communication band, and the available communication time. The higher the communication quality, the higher the communication stability. The wider the communication band, the higher the communication stability. The longer the available communication time, the higher the communication stability.
[0064] The arithmetic device 105 updates the communication management information D18 as appropriate (for example, periodically). Updating the communication management information D18 will be described in detail later.
[0065] [User terminal] The user terminal 20 is owned by a user. The user operates the user terminal 20 to use various functions. The user can also carry the user terminal 20. Examples of such user terminals 20 include smartphones, tablets, and notebook personal computers.
[0066] As shown in FIG. 4, the user terminal 20 includes an input unit 201, an output unit 202, a communication unit 203, a storage unit 204, and a control unit 205.
[0067] The input unit 201 inputs information and data. Examples of the input unit 201 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs sound showing information. Examples of the operation unit include an operation button and a touch sensor. The information input to the input unit 101 is sent to the arithmetic device 105.
[0068] The output unit 202 outputs information and data. Examples of the output unit 202 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0069] The communication unit 203 transmits and receives information and data. The information and data received by the communication unit 303 are sent to the control unit 205.
[0070] The storage unit 204 stores information and data.
[0071] The control unit 205 controls each unit of the user terminal 20. The control unit 205 communicates with external devices (such as components of the system 1) via the communication unit 203. The control unit 205 updates the information and data stored in the storage unit 204 as appropriate, based on the information and data input to the input unit 201 and the information and data received via the communication unit 203.
[0072] The control unit 205 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc. The various functions of the control unit 205 are realized by the processor (computer) executing the program stored in the memory.
[0073] In this example, the storage unit 204 stores terminal information D21, terminal state information D22, and schedule information D23.
[0074] <Device Information> The terminal information D21 is information related to the user terminal 20. For example, the terminal information D21 includes a user terminal ID set in the user terminal 20, user terminal performance information indicating the performance of the user terminal 20, etc. The user terminal ID is an example of user terminal identification information that identifies the user terminal 20.
[0075] <Device status information> The terminal status information D22 is information indicating the status of the user terminal 20. The terminal status information D22 includes user terminal position information indicating the position of the user terminal 20, user terminal communication status information indicating the communication status of the user terminal 20, and the like.
[0076] The control unit 205 monitors the state of the user terminal 20 and updates the terminal state information D22 appropriately (for example, periodically) based on the results of this monitoring.
[0077] <Schedule Information> The schedule information D23 indicates the behavior history (past behavior) and behavior schedule (future behavior) of the user who owns the user terminal 20. In other words, the schedule information D23 indicates the location of the user at what time. For example, the schedule information D23 indicates the user's location in association with the time. The schedule information D23 can be acquired by a schedule function installed in the user terminal 20. Specifically, the user uses the schedule function to input their own behavior history and behavior schedule into the user terminal 20, thereby obtaining the schedule information D23 indicating the user's behavior history and behavior schedule.
[0078] The schedule information D23 may also include information indicating that the user's action is "action involving the use of the vehicle 10." For example, the schedule information D23 may indicate "the user's location," "whether the vehicle 10 is used," and "time" in association with each other.
[0079] The control unit 205 appropriately updates the schedule information D23 stored in the storage unit 204. For example, when information on the user's behavior is input to the input unit 101, the control unit 205 updates the schedule information D23 based on the information.
[0080] [Client Server] The client server 30 is owned by a client. The client requests the calculation of job data. Examples of such clients include companies, research institutes, and educational institutions.
[0081] As shown in FIG. 5, the client server 30 includes an input unit 301, an output unit 302, a communication unit 303, a storage unit 304, and a control unit 305.
[0082] The input unit 301 inputs information and data. Examples of the input unit 301 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image representing information, and a microphone that inputs audio representing information. Examples of the operation unit include an operation button, a touch sensor, a keyboard, and a mouse. The information and data input to the input unit 301 are sent to the control unit 305.
[0083] The output unit 302 outputs information and data. Examples of the output unit 302 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0084] The communication unit 303 transmits and receives information and data. The information and data received by the communication unit 303 are sent to the control unit 305.
[0085] The storage unit 304 stores information and data.
[0086] The control unit 305 controls each unit of the client server 30. The control unit 305 communicates with external devices (such as components of the system 1) via the communication unit 303. The control unit 305 updates the information and data stored in the storage unit 304 as appropriate, based on the information and data input to the input unit 301 and the information and data received via the communication unit 303.
[0087] The control unit 305 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc. The various functions of the control unit 305 are realized by the processor (computer) executing the program stored in the memory.
[0088] In this example, the storage unit 304 stores client information D31 and job data D1.
[0089] <Client Information> The client information D31 is information about the client. The client information D31 includes a client ID set for the client, a client-server ID set for the client server 30 owned by the client, a person in charge's name, address, telephone number, etc. The client ID is an example of client identification information that identifies the client. The client-server ID is an example of client-server identification information that identifies the client server 30.
[0090] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job.
[0091] The job data D1 can be classified by calculation type. Examples of calculation types include CPU-based calculation types and GPU-based calculation types. Job data D1 of the CPU-based calculation type tend to require complex calculations with many conditional branches, such as simulation calculations. Job data D1 of the GPU-based calculation type tend to require a huge amount of simple calculations, such as image processing and machine learning.
[0092] Furthermore, the job data D1 can be classified by processing conditions. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. Job data D1 with processing conditions that require constant communication requires that the vehicle 10 be able to communicate at all times in the grid computing process. Job data D1 with processing conditions that do not require constant communication does not require that the vehicle 10 be able to communicate at all times in the grid computing process.
[0093] <Job Information> Note that job information related to a job may be stored in the storage unit 304. The job information includes job name information indicating the name of the job, job content information explaining the content of the job, job data information regarding job data corresponding to the job, job deadline information indicating the deadline for the job, etc. The job data information indicates the calculation type, processing conditions, required calculation capacity, etc. of the job data.
[0094] [Management Server] The management server 50 manages the operation of the system 1 in which grid computing is configured. The management server 50 is owned by the business operator that operates the system 1. The management server 50 is an example of a management device that manages grid computing processing.
[0095] 6, the management server 50 includes an input unit 501, an output unit 502, a communication unit 503, a storage unit 504, and a control unit 505. The configurations of the input unit 501, output unit 502, communication unit 503, storage unit 504, and control unit 505 of the management server 50 are the same as the configurations of the input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of the client server 30.
[0096] In this example, the memory unit 504 stores a user table D51, a vehicle table D52, a client table D53, a job table D54, a position prediction table D55, a capability prediction table D56, a communication prediction table D57, a matching table D58, job data D1, and calculation result data D2.
[0097] <User table> The user table D51 is a table for managing users. For each user, the user table D51 registers a user ID set for the user, a vehicle ID set for the vehicle 10 owned by the user, a calculation device ID set for the calculation device 105 owned by the user, a user terminal ID set for the user terminal 20 owned by the user, and the like.
[0098] The control unit 505 updates the user table D51 as appropriate.
[0099] For example, when a new user joins the system 1, the control unit 505 updates the user table D51 by registering information related to the new user in the user table D51. Specifically, the control unit 505 sets a new user ID for the new user, associates the "user ID" set for the new user with the "vehicle ID" set for the vehicle 10 owned by the user, the "computing device ID" set for the computing device 105 mounted on the vehicle 10, and the "user terminal ID" set for the user terminal 20 owned by the new user, and registers them in the user table D51.
[0100] It is possible to obtain a "vehicle ID" and a "computing device ID" related to the new user through communication between the vehicle 10 owned by the new user and the management server 50. It is also possible to obtain a "user terminal ID" related to the new user through communication between the user terminal 20 owned by the new user and the management server 50.
[0101] <Vehicle Table> The vehicle table D52 is a table for managing the vehicles 10. In this example, the vehicle table D52 registers, for each vehicle 10, basic vehicle information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, communication management information D18, and the like, related to the vehicle 10.
[0102] The control unit 505 updates the vehicle table D52 as needed.
[0103] For example, when a new vehicle 10 joins the system 1, the control unit 505 updates the vehicle table D52 by registering information related to the new vehicle 10 in the vehicle table D52. Specifically, the control unit 505 associates basic vehicle information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, and communication management information D18 related to the new vehicle 10 and registers them in the vehicle table D52.
[0104] It is possible to obtain information related to the new vehicle 10 (in this example, vehicle basic information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, and communication management information D18) through communication between the new vehicle 10 and the management server 50. It is also possible to obtain a "user ID" related to the new vehicle 10 by referring to the user table D51.
[0105] In addition, the control unit 505 communicates with each vehicle 10 as appropriate (for example, periodically) to acquire information about the vehicle 10 (specifically, vehicle status information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, and communication management information D18), and updates the vehicle table D52 based on the acquired information.
[0106] <Client Table> The client table D53 is a table for managing clients. For each client, the client table D53 registers the client ID set for that client, the client server ID set for the client server 30 owned by the client, the name, address, telephone number, etc. of the person in charge of that client.
[0107] The control unit 505 updates the client table D53 as appropriate.
[0108] For example, when a new client joins the system 1, the control unit 505 updates the client table D53 by registering information related to the new client in the client table D53. Specifically, the control unit 505 sets a new client ID for the new client, associates the "client ID" set for the new client with the "client server ID" set for the client server 30 owned by the new client, and the "person in charge," "address," and "telephone number" of the new client, and registers them in the client table D53.
[0109] By communication between the client server 30 and the management server 50, it is possible to obtain the "client server ID", "person in charge", "address" and "telephone number" of the new client.
[0110] <Job Table> The job table D54 is a table for managing jobs requested by clients. For each job, the job table D54 registers the reception number set for that job, the client ID set for the client that requested the job, the name and content of the job, etc. The job table D54 also registers for each job the calculation type and processing conditions of the job data corresponding to that job, the required calculation capacity that is the calculation capacity required to calculate the job data, the delivery date set for that job, etc.
[0111] <Position Prediction Table> The position prediction table D55 is a table for managing the predicted results of the position of the vehicle 10. In this example, the position prediction table D55 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, position prediction information D5 related to that vehicle 10, and the like. The position prediction information D5 indicates the predicted results of the change in the position of the vehicle 10 over time. For example, the position prediction information D5 indicates the predicted value of the position of the vehicle 10 in association with the time. The process for predicting the change in the position of the vehicle 10 over time (position prediction process) will be described in detail later.
[0112] Ability Prediction Table The capacity prediction table D56 is a table for managing the predicted results of the computational capacity (computing capacity available for grid computing processing) of the arithmetic device 105 of the vehicle 10. In this example, the capacity prediction table D56 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, capacity prediction information D6 related to that vehicle 10, and the like. The capacity prediction information D6 indicates the predicted results of a change over time in the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10. For example, the capacity prediction information D6 indicates the predicted value of the computational capacity available for the arithmetic device 105 of the vehicle 10 in association with the time. The process for predicting a change over time in the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10 (capacity prediction process) will be described in detail later.
[0113] <Communication Prediction Table> The communication prediction table D57 is a table for managing the predicted results of the communication state of the vehicle 10. In this example, the communication prediction table D57 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, communication prediction information D7 related to that vehicle 10, and the like. The communication prediction information D7 indicates the predicted results of the change over time in the communication state of the vehicle 10. For example, the communication prediction table D57 indicates the predicted value of the communication state of the vehicle 10 in association with the time. The process for predicting the change over time in the communication state of the vehicle 10 (communication prediction process) will be described in detail later.
[0114] Matching Table The matching table D58 is a table for managing the results of the matching process described later. For each job, the matching table D58 registers the reception number set for that job, the job data corresponding to that job, the vehicle ID set for the vehicle 10 assigned to that job data by the matching process, and the like.
[0115] <Job Data> The job data D1 stored in the storage unit 504 is job data D1 accepted by a job acceptance process, which will be described later.
[0116] <Calculation result data> The calculation result data D2 stored in the storage unit 504 indicates the calculation result of the job data D1 by the grid computing process described later.
[0117] [Updating location management information] Next, the updating of the position management information D16 will be described. The arithmetic device 105 monitors the position of the vehicle 10, and updates the past positions of the vehicle 10 indicated in the position management information D16 based on the results of the monitoring. Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the position of the vehicle 10, it updates the position of the vehicle 10 indicated in the position management information D16 based on that information.
[0118] Examples of information that can be used to estimate the location of vehicle 10 include car navigation information showing the driving history and driving schedule of vehicle 10, vehicle usage information D15 stored in memory unit 104 of vehicle 10, and schedule information D23 stored in memory unit 204 of user terminal 20.
[0119] <Updating location management information based on car navigation information> In this example, the arithmetic device 105 estimates the position (past and future positions) of the vehicle 10 based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. Then, the arithmetic device 105 updates the position management information D16 stored in the memory unit 104 based on the estimated position of the vehicle 10.
[0120] Updating location management information based on vehicle usage information Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the position (past position and future position) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the position management information D16 stored in the storage unit 104 based on the estimated position of the vehicle 10.
[0121] Updating location management information based on schedule information Also, in this example, the arithmetic device 105 requests the user terminal 20 owned by the user who owns the vehicle 10 equipped with the arithmetic device 105 to access the schedule information D23 stored in the storage unit 204 of the user terminal 20. In response to the request, the control unit 205 of the user terminal 20 permits access to the schedule information D23.
[0122] Next, the arithmetic device 105 accesses the storage unit 204 of the user terminal 20, and detects an action involving the use of the vehicle 10 from the user's actions (past actions and future actions) shown in the schedule information D23 stored in the storage unit 204. For example, the arithmetic device 105 detects an action history in which the user has used the vehicle 10 from an action history that is past actions among the user's actions shown in the schedule information D23. Furthermore, the arithmetic device 105 detects an action plan in which the user plans to use the vehicle 10 from an action plan that is future actions among the user's actions shown in the schedule information D23.
[0123] Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the detected user's behavior (behavior history and behavior schedule), and estimates the position (past position and future position) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the position management information D16 stored in the memory unit 104 based on the estimated position of the vehicle 10.
[0124] [Updating operation management information] Next, the updating of the operation management information D17 will be described. The computing device 105 monitors the operation rate (utilization rate of computing capacity) of the computing device 105, and updates the past operation rate of the computing device 105 indicated in the operation management information D17 based on the results of this monitoring. Furthermore, when the computing device 105 acquires information that can be used to estimate the operation rate of the computing device 105, it updates the operation rate of the computing device 105 indicated in the operation management information D17 based on that information.
[0125] Examples of information that can be used to estimate the availability of the computing device 105 include car navigation information showing the driving history and driving schedule of the vehicle 10, function usage information D14 stored in the memory unit 104 of the vehicle 10, vehicle usage information D15, location management information D16, and schedule information D23 stored in the memory unit 204 of the user terminal 20.
[0126] <Updating operation management information based on car navigation information> In this example, the arithmetic device 105 estimates the availability of the vehicle 10 (past availability and future availability) based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. For example, the "availability of the arithmetic device 105 during the period when the vehicle 10 was stopped" and the "availability of the arithmetic device 105 during the period when the vehicle 10 is scheduled to be stopped" are estimated to be zero. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated availability of the arithmetic device 105.
[0127] <Updating operation management information based on function usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires function usage information D14 stored in the storage unit 104. The arithmetic device 105 detects the usage status of functions involving the use of the arithmetic device 105 from the usage status (usage history and usage schedule) of various functions indicated in the function usage information D14. The arithmetic device 105 estimates the operation rates (past operation rates and future operation rates) of the arithmetic device 105 based on the detected function usage status. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated operation rate of the arithmetic device 105.
[0128] <Updating operation management information based on vehicle usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the availability (past availability rate and future availability rate) of the arithmetic device 105 based on the estimated availability rate of the arithmetic device 105. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated availability rate of the arithmetic device 105.
[0129] <Updating operation management information based on location management information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires the position management information D16 stored in the storage unit 104. Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the position (past position and future position) of the vehicle 10 indicated in the position management information D16, and estimates the operation rate (past operation rate and future operation rate) of the arithmetic device 105 based on the estimated operation rate of the arithmetic device 105. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated operation rate of the arithmetic device 105.
[0130] <Updating operation management information based on schedule information> Also, in this example, similar to "updating location management information based on schedule information," the arithmetic device 105 accesses the memory unit 204 of the user terminal 20 owned by the user who owns the vehicle 10 in which the arithmetic device 105 is installed, and detects actions involving the use of the vehicle 10 from among the user's actions (action history and action plans) shown in the schedule information D23 stored in the memory unit 204.
[0131] Next, the arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the detected user behavior (behavior history and behavior schedule), and estimates the availability (past availability and future availability) of the arithmetic device 105 based on the result of the estimation. Then, the arithmetic device 105 updates the operation management information D17 stored in the memory unit 104 based on the estimated availability of the arithmetic device 105.
[0132] [Updating communication management information] Next, the updating of the communication management information D18 will be described. The arithmetic device 105 monitors the communication status of the vehicle 10 in which the arithmetic device 105 is installed, and updates the past communication status of the vehicle 10 indicated in the communication management information D18 based on the results of this monitoring. Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the communication status of the vehicle 10, it updates the communication status of the vehicle 10 indicated in the communication management information D18 based on that information.
[0133] Examples of information that can be used to estimate the communication status of vehicle 10 include car navigation information showing the driving history and driving schedule of vehicle 10, function usage information D14 stored in memory unit 104 of vehicle 10, vehicle usage information D15, location management information D16, and schedule information D23 stored in memory unit 204 of user terminal 20.
[0134] <Updating communication management information based on car navigation information> In this example, the arithmetic device 105 estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. For example, the "communication state of the vehicle 10 during a period when the vehicle 10 was parked in a location with a relatively good communication environment" and the "communication state of the vehicle 10 during a period when the vehicle 10 is scheduled to be parked in a location with a relatively good communication environment" are estimated to be "relatively good communication states." Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication state of the vehicle 10.
[0135] <Updating communication management information based on function usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires function usage information D14 stored in the storage unit 104. The arithmetic device 105 detects the usage status of functions involving communication use from the usage status (usage history and usage schedule) of various functions indicated in the function usage information D14. The arithmetic device 105 estimates the communication status of the vehicle 10 (past communication status and future communication status) based on the detected usage status of the functions. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication status of the vehicle 10.
[0136] <Updating communication management information based on vehicle usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the communication status (past communication status and future communication status) of the vehicle 10 based on the estimation result. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication status of the vehicle 10.
[0137] <Updating communication management information based on location management information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires the location management information D16 stored in the storage unit 104. Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the location (past location and future location) of the vehicle 10 indicated in the location management information D16, and estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication state of the vehicle 10.
[0138] <Updating communication management information based on schedule information> Also, in this example, similar to "updating location management information based on schedule information," the arithmetic device 105 accesses the memory unit 204 of the user terminal 20 owned by the user who owns the vehicle 10 in which the arithmetic device 105 is installed, and detects actions involving the use of the vehicle 10 from among the user's actions (action history and action plans) shown in the schedule information D23 stored in the memory unit 204.
[0139] Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the detected user behavior (behavior history and behavior schedule), and estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the communication management information D18 stored in the memory unit 104 based on the estimated communication state of the vehicle 10.
[0140] [Processing by the control unit (management method)] The control unit 505 performs job reception processing, location prediction processing, capacity prediction processing, communication prediction processing, matching processing, and grid computing processing. These processes are examples of a management method for managing grid computing processing.
[0141] [Job acceptance processing] Next, the job reception process will be described with reference to Fig. 7. In the job reception process, job data D1 for which a calculation is requested by a client is received. For example, the control unit 505 performs the following process each time a calculation of job data D1 is requested by a client.
[0142] <Step S11> First, the management server 50 accepts a job request from a client. Specifically, in response to an operation by a person in charge of the client, the client server 30 transmits a job request application to the management server 50. In response to the application, the control unit 505 of the management server 50 performs the following processing.
[0143] The control unit 505 requests the client server 30 to transmit information required to accept the job (specifically, client information related to the client requesting the job and job information related to the job). In this example, the control unit 505 transmits image data of the job acceptance screen to the client server 30. The control unit 305 of the client server 30 reproduces the image of the job acceptance screen from the image data, and causes the output unit 302 (display unit) to output (display) the image.
[0144] 8, the job reception screen is a screen for inputting information required to receive a job. The job reception screen has a client name input field R101 for inputting the client name, a person in charge name input field R102 for inputting the name of the person in charge of the client, an address input field R104 for inputting the client's address, a job name input field R111 for inputting the name of the job, a job content input field R112 for inputting an explanation of the job content, a calculation type input field R113 for inputting the calculation type of job data corresponding to the job, a processing condition input field R114 for inputting the processing conditions of the job data, a required calculation capacity input field R115 for inputting the required calculation capacity of the job data, a delivery date input field R116 for inputting the delivery date of the job, and a register button B100.
[0145] The person in charge of the client operates the input unit 301 (operation unit) of the client server 30 to input the necessary information into the job reception screen. This inputs client information about the client requesting the job and job information about the job. Then, after completing input of this information, the person in charge of the client operates the input unit 301 (operation unit) of the client server 30 to press the registration button B100 on the job reception screen. When the registration button B100 is pressed, the control unit 305 of the client server 30 transmits the information (client information and job information) input into the job reception screen to the management server 50. The control unit 505 of the management server 50 receives the client information and job information.
[0146] Next, the control unit 505 requests the client server 30 to transmit job data D1 corresponding to the job. In response to the request, the control unit 305 of the client server 30 transmits the job data D1 corresponding to the job to the management server 50. The control unit 505 of the management server 50 receives the job data D1.
[0147] <Step S12> Next, the control unit 505 of the management server 50 analyzes the job data D1 received in step S11. Specifically, the control unit 505 analyzes the calculation type, processing conditions, required calculation capacity, etc. of the job data D1. Then, the control unit 505 modifies the job information received in step S11 based on the results of the analysis of the job data D1.
[0148] If the job information received in step S11 is sufficiently reliable, the process of step S12 may be omitted.
[0149] <Step S13> Next, the control unit 505 of the management server 50 associates the client information received in step S11 with the job information corrected as necessary in step S12 (or the job information received in step S11), and registers them in the job table D54. The control unit 505 also stores the job data D1 received in step S11 in the storage unit 504.
[0150] [Position Prediction Processing] Next, the position prediction process will be described with reference to Fig. 9. In the position prediction process, the control unit 505 predicts a change in the position of the vehicle 10 over time based on the position management information D16 of the vehicle 10 registered in the vehicle table D52. For example, when the position management information D16 of the vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0151] <Step S21> First, the control unit 505 acquires the location management information D16 of the vehicle 10 registered in the vehicle table D52. As in "updating the location management information," the control unit 505 may update the location management information D16 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the location of the vehicle 10, and acquire the updated location management information D16.
[0152] <Step S22> Next, the control unit 505 predicts a change in the position of the vehicle 10 over time based on the "position management information D16" of the vehicle 10 acquired in step S21.
[0153] Specifically, the control unit 505 predicts a trend (pattern) of changes in the position of the vehicle 10 from the vehicle position indicated in the position management information D16. This prediction of the trend of changes in the position of the vehicle 10 may be realized by machine learning. Then, the control unit 505 predicts changes in the position of the vehicle 10 over time (where the vehicle 10 is at what time) based on the trend of changes in the position of the vehicle 10.
[0154] <Step S23> Next, the control unit 505 registers (overwrites) the position prediction information D5 indicating the "change over time in the position of the vehicle 10" predicted in step S22 in the position prediction table D55. This updates the position prediction table D55. Note that if the future position (estimated value) of the vehicle 10 indicated in the position management information D16 is sufficiently reliable, the future position of the vehicle 10 may be registered in the position prediction information D5.
[0155] [Ability Prediction Processing] Next, the capacity prediction process will be described with reference to Fig. 10. In the capacity prediction process, the control unit 505 predicts the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10 based on the operation management information D17 of the vehicle 10 registered in the vehicle table D52. For example, when the operation management information D17 of the vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0156] <Step S31> First, the control unit 505 acquires the calculation device information D12 and operation management information D17 of the vehicle 10 registered in the vehicle table D52. As in "updating operation management information," the control unit 505 may update the operation management information D17 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the utilization rate of the computing capacity of the vehicle 10, and acquire the updated operation management information D17.
[0157] <Step S32> Next, the control unit 505 predicts the change over time in the computing capacity available for grid computing processing of the computing device 105 of the vehicle 10 based on the "computing device information D12" and "operation management information D17" of the vehicle 10 acquired in step S31.
[0158] Specifically, the control unit 505 predicts a trend (pattern) of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, based on the operating status of the computing device 105 of the vehicle 10 indicated in the operation management information D17. This prediction of the trend of changes in the utilization rate of the computing capacity of the computing device 105 may be achieved by machine learning. Then, based on the trend of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, the control unit 505 predicts a period during which the computing capacity of the computing device 105 of the vehicle 10 has spare capacity (a period during which the utilization rate of the computing capacity is less than 100%), and defines this period as a "period during which the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing." For example, the control unit 505 defines a period during which the utilization rate of the computing capacity of the computing device 105 of the vehicle 10 is "30%" as a period during which "70%" of the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing.
[0159] <Step S33> Next, the control unit 505 registers (overwrites) the capacity prediction information D6 indicating the "change over time in the computing capacity available for grid computing processing of the arithmetic device 105" predicted in step S32 in the capacity prediction table D56. This updates the capacity prediction table D56.
[0160] [Communication prediction processing] Next, the communication prediction process will be described with reference to Fig. 11. In the communication prediction process, the control unit 505 predicts a change over time in the communication state of a vehicle 10 based on the communication management information D18 of the vehicle 10 registered in the vehicle table D52. For example, when the communication management information D18 of a vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0161] <Step S41> First, the control unit 505 acquires the communication management information D18 of the vehicle 10 registered in the vehicle table D52. As in "updating the communication management information," the control unit 505 may update the communication management information D18 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the communication status of the vehicle 10, and acquire the updated communication management information D18.
[0162] <Step S42> Next, the control unit 505 predicts a change over time in the communication state of the vehicle 10 based on the communication management information D18 of the vehicle 10 acquired in step S41.
[0163] Specifically, the control unit 505 predicts a trend (pattern) of changes in the communication state of the vehicle 10 from the communication state of the vehicle indicated in the communication management information D18. This prediction of the trend of changes in the communication state of the vehicle 10 may be realized by machine learning. Then, the control unit 505 predicts a change over time in the communication state of the vehicle 10 (what state the communication state of the vehicle 10 will be at what time) based on the trend of changes in the communication state of the vehicle 10.
[0164] <Step S43> Next, the control unit 505 registers (overwrites) the communication prediction information D7 indicating the "change over time in the communication state of the vehicle 10" predicted in step S42 in the communication prediction table D57. This updates the communication prediction table D57. Note that if the future communication state (estimated value) of the vehicle 10 indicated in the communication management information D18 is sufficiently reliable, the future communication state of the vehicle 10 may be registered in the communication prediction information D7.
[0165] [Matching process] Next, the matching process will be described with reference to Fig. 12. The matching process is a process of allocating a vehicle 10 that can be used in grid computing processing from among a plurality of vehicles 10 to the job data D1 accepted in the acceptance process. For example, after the job acceptance process is completed, the control unit 505 performs the following process.
[0166] <Step S51> First, the control unit 505 selects a job to be subjected to the matching process from among the jobs registered in the job table D54. Then, the control unit 505 selects job data D1 corresponding to the job to be subjected to the matching process from among the job data D1 stored in the storage unit 504.
[0167] <Step S52> Next, the control unit 505 selects a vehicle 10 that can be used in grid computing processing for the job data D1 selected in step S51 from among the multiple vehicles 10 based on the ``prediction result of the change over time in the computing capacity available for grid computing processing for each of the multiple vehicles 10 registered in the capacity prediction table D56'' and the ``prediction result of the change over time in the communication status of each of the multiple vehicles 10 registered in the communication prediction table D57.''
[0168] Specifically, the control unit 505 determines a planned calculation period during which grid computing processing for the job data D1 will be executed, and detects vehicles 10 that are capable of communicating and providing computing power during the planned calculation period from among the multiple vehicles 10. Then, the control unit 505 selects vehicles 10 to be assigned to the job data D1 from among the vehicles 10 that can provide computing power during the planned calculation period so that the "total computing power provided for the grid computing processing" is equal to or greater than the "computing power required for calculating the job data D1 in the grid computing processing."
[0169] <Step S53> Next, the control unit 505 assigns the vehicle 10 selected in step S52 to the job data D1 selected in step S51. Then, the control unit 505 registers matching result information indicating which vehicle 10 is assigned to which job data D1 in the matching table D58. For example, the control unit 505 associates the reception number set in the job data D1 (job) with the vehicle ID set for the vehicle 10 assigned to the job data D1, and registers them in the matching table D58.
[0170] [Grid Computing Processing] Next, the grid computing process will be described with reference to Fig. 13. In the grid computing process, job data D1 is processed by a plurality of available vehicles 10 among the plurality of vehicles 10. For example, the control unit 505 performs the following process after the matching process is completed. Note that the grid computing process is an example of a processing method in which job data D1 transmitted by the management server 50 is processed by a plurality of available vehicles 10 among the plurality of vehicles 10.
[0171] <Step S61> First, the control unit 505 refers to the matching table D58 and distributes the job data D1 to be subjected to the grid computing process to the vehicles 10 assigned to that job data D1 in the matching process. Specifically, the control unit 505 transmits a portion of the job data D1 to each of the vehicles 10 assigned to that job data D1. As a result, the job data D1 is processed in parallel by the vehicles 10 assigned to that job data D1.
[0172] <Step S62> Next, when each vehicle 10 completes the calculation of the partial job data (part of job data D1) transmitted to that vehicle 10, it transmits the partial calculation result data (part of calculation result data D2) obtained by the calculation to the management server 50. The control unit 505 of the management server 50 receives the partial calculation result data transmitted from the vehicle 10 and stores the partial calculation result data in the memory unit 504.
[0173] <Step S63> The control unit 505 determines whether or not all of the vehicles 10 to which the job data D1 has been distributed in step S61 have completed the calculations. If all of the vehicles 10 have completed the calculations, the process proceeds to step S64; if not, the process proceeds to step S62.
[0174] <Step S64> When all of the arithmetic devices 105 have completed the calculations, the control unit 505 generates calculation result data D2 (calculation result data D2 indicating the results of the calculation of the job data D1) corresponding to the job data D1 that is the target of the grid computing process by combining the partial calculation result data stored in the storage unit 504. Then, the control unit 505 transmits the calculation result data D2 corresponding to the job data D1 that is the target of the grid computing process to the client server 30 of the client that requested the calculation of the job data D1.
[0175] <Step S65> Next, a reward is granted by the operator of the system 1 to a user who has provided the computing power of the arithmetic device 105 of the vehicle 10 for the grid computing process. Examples of rewards granted to a user include points that can be used in the system 1, virtual currency, and product discount benefits. For example, the control unit 505 of the management server 50 performs processing to grant a reward to a user who has provided the computing power of the arithmetic device 105 of the vehicle 10 for the grid computing process. Examples of the processing to grant a reward include a process of associating a "user ID" set for the user with "points" (or virtual currency) that can be used in the system 1 and registering the associated information in the user table D51, and a process of transmitting information indicating a product discount benefit to the user terminal 20 owned by the user. Note that the information indicating the reward may be registered for each job in the job table D54.
[0176] Furthermore, a reward may be given by the client to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing. For example, the control unit 305 of the client server 30 may execute processing for giving a reward to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing.
[0177] [Characteristics of grid computing processing] Next, the characteristics of the grid computing process will be described with reference to Fig. 14. In the grid computing process, the control unit 505 performs the following processes.
[0178] In the following, the multiple vehicles 10 that can be used in the grid computing process will be referred to as "multiple available vehicles 10." In this example, the "vehicles 10 that can be used in the grid computing process" are, among the multiple vehicles 10, vehicles 10 whose computing capacity utilization rate of the arithmetic device 105 is less than 100% during the period when the grid computing process is performed, and which can communicate with the management server 50 or other vehicles 10.
[0179] 14, the control unit 505 of the management server 50 transmits job data D1 to be processed in grid computing processing to the representative node N1. The representative node N1 is a vehicle 10 among multiple available vehicles 10 whose communication stability with the management server 50 exceeds a predetermined threshold.
[0180] The control unit 505 controls the representative node N1 so that the representative node N1 transmits the job data D1 (more specifically, partial job data that is a part of the job data D1) transmitted to the representative node N1 to the computation node N2. The computation node N2 is one of the multiple available vehicles 10 other than the representative node N1. The control unit 505 causes the computation node N2 to process the job data D1 (more specifically, partial job data) transmitted to the computation node N2. The computation node N2 is an example of a non-representative node that processes the job data transmitted from the representative node N1.
[0181] The control unit 505 also controls the calculation node N2 so that the calculation node N2 transmits calculation result data D2 indicating the calculation result of the job data D1 (more specifically, partial calculation result data that is part of the calculation result data D2) to the representative node N1. The control unit 505 then controls the representative node N1 so that the representative node N1 transmits the calculation result data (more specifically, partial calculation result data) transmitted to the representative node N1 to the management server 50.
[0182] The management server 50 and the representative node N1 communicate via a communication network 5 (specifically, a base station provided in the communication network 5). The representative node N1 and the calculation node N2 communicate directly without going through the communication network 5. An example of the communication network 5 is a paid carrier communication network provided by a telecommunications company.
[0183] In this example, the communication between the management server 50 and the representative node N1 is communication using vehicle-to-network (V2N) communication, specifically communication using paid carrier communication provided by a telecommunications carrier. The communication between the representative node N1 and the calculation node N2 is vehicle-to-vehicle (V2V) communication.
[0184] [Local Area Network] In this way, a local area network is formed by the representative node N1 and the calculation node N2. In other words, a "vehicle 10 to serve as the representative node N1" and a "vehicle 10 to serve as the calculation node N2" are selected from among a plurality of vehicles 10 that can form the local area network. Then, the job data D1 is processed by the local area network.
[0185] [Matching process details] In the matching process, the control unit 505 of the management server 50 determines, from among multiple available vehicles 10, a "vehicle 10 to function as the representative node N1" and a "vehicle 10 to function as the calculation node N2," and associates the result of the determination with the job data D1 and registers it in the matching table D58.
[0186] Specifically, the control unit 505 refers to the communication prediction table D57 and selects, from among the multiple available vehicles 10, a vehicle 10 whose communication stability with the management server 50 exceeds a predetermined threshold during the period in which grid computing processing is performed, as a "candidate for representative node N1." Next, the control unit 505 determines a "vehicle 10 to function as representative node N1" from among the vehicles 10 selected as candidates for representative node N1.
[0187] Furthermore, the control unit 505 refers to the communication prediction table D57 and selects, from among the multiple available vehicles 10, vehicles 10 that can communicate with the representative node N1 during the period in which the grid computing process is performed, as "candidates for the computation node N2." Next, the control unit 505 refers to the capacity prediction table D56 and determines, from the vehicles 10 selected as candidates for the computation node N2, a "vehicle 10 to function as the computation node N2" so that the "total computational capacity of the computation nodes N2 provided for the grid computing process" is equal to or greater than the "computational capacity required for calculating the job data D1 in the grid computing process."
[0188] Next, based on the results of the above determination, the control unit 505 generates node information for identifying the "vehicle 10 to function as the representative node N1" and the "vehicle 10 to function as the calculation node N2", and link information indicating the correspondence between the representative node N1 and the calculation node N2 (which representative node N1 will communicate with which calculation node N2).
[0189] The control unit 505 also divides the job data D1 into a plurality of partial job data. Then, the control unit 505 refers to the capacity prediction table D56 and determines, for each of the plurality of partial job data, the computation node N2 that will process that partial job data. After completing the allocation of the computation nodes N2 to the partial job data, the control unit 505 generates assignment information that indicates the correspondence between the computation nodes N2 and the partial job data (which computation node N2 is to process which partial job data).
[0190] Next, the control unit 505 associates the node information, link information, and responsibility information with the job data D1 and registers them in the matching table D58. As a result, the node information, link information, and responsibility information are registered in the matching table D58 for each job data D1.
[0191] [Details of grid computing processing] In grid computing processing, the control unit 505 controls the multiple available vehicles 10 so that a vehicle 10 among the multiple available vehicles 10 whose communication stability with the management server 50 exceeds a threshold functions as a "representative node N1," and the other vehicles 10 among the multiple available vehicles 10 except for the representative node N1 function as "computation nodes N2."
[0192] Specifically, the control unit 505 references the node information registered in the matching table D58, and transmits a representative command to "a vehicle 10 that is to function as the representative node N1" from among the multiple available vehicles 10. The representative command is a command for causing the vehicle 10 to function as the representative node N1. The representative command may include a program and information for causing the vehicle 10 to function as the representative node N1. The vehicle 10 that receives the representative command transmitted from the control unit 505 functions as the "representative node N1" in response to the representative command.
[0193] Furthermore, the control unit 505 references the node information and link information registered in the matching table D58, and transmits to the representative node N1, dependency information indicating the "vehicle 10 to be caused to function as computation node N2" corresponding to that representative node N1, and a computation command. The computation command is a command for causing the vehicle 10 to function as computation node N2. The computation command may include a program and information for causing the vehicle 10 to function as computation node N2. The representative node N1 transmits the computation command to the "vehicle 10 to be caused to function as computation node N2" indicated in the dependency information. The vehicle 10 that receives the computation command transmitted from the representative node N1 functions as "computation node N2" in response to the computation command.
[0194] Next, the control unit 505 divides the job data D1 into a plurality of partial job data. The control unit 505 references the in-charge information and link information registered in the matching table D58, and transmits to the representative node N1 the partial job data to be processed by the calculation node N2 corresponding to the representative node N1, among the plurality of partial job data, and transmission destination information indicating the calculation node N2 to process the partial job data.
[0195] Next, the representative node N1 receives the partial job data and destination information sent from the control unit 505. Then, the representative node N1 references the destination information and sends the partial job data to the calculation node N2 that corresponds to the partial job data. Specifically, the representative node N1 sends the partial job data to "the calculation node N2 that is to process the partial job data" that is indicated in the destination information.
[0196] In the example of FIG. 14, three partial job data obtained by dividing job data D1 are processed by three computation nodes N2, respectively. Specifically, the first partial job data, labeled "1" in the figure, is processed by the first computation node N2 located on the "left side" of the figure. The second partial job data, labeled "2" in the figure, is processed by the second computation node N2 located on the "bottom" of the figure. The third job data, labeled "3" in the figure, is processed by the third computation node N2 located on the "right side" of the figure.
[0197] 14, the control unit 505 transmits the first to third partial job data (a collection of partial job data) and destination information to the representative node N1 corresponding to the first to third computation nodes N2. The destination information indicates that the first to third partial job data are to be processed by the first to third computation nodes N2, respectively. Upon receiving the three partial job data and destination information transmitted from the control unit 505, the representative node N1 references the destination information and transmits the first to third partial job data to the first to third computation nodes N2, respectively.
[0198] Next, the computation node N2 receives the partial job data transmitted from the representative node N1 and calculates the partial job data. As a result, partial computation result data (part of the computation result data D2) indicating the computation results of the partial job data is obtained. The computation node N2 transmits the partial computation result data to the representative node N1.
[0199] Next, the representative node N1 receives the partial calculation result data sent from the calculation node N2. Then, the representative node N1 sends the partial calculation result data to the management server 50.
[0200] Next, the control unit 505 of the management server 50 receives the partial calculation result data sent from the representative node N1. Then, the control unit 505 integrates the multiple partial calculation result data to generate calculation result data D2 that indicates the calculation result of the job data D1.
[0201] [Effects of the embodiment] As described above, in the embodiment, by designating a vehicle 10 of a plurality of available vehicles 10 whose communication stability with the management server 50 exceeds a threshold as the "representative node N1," it is possible to ensure communication stability between the management server 50 and the representative node N1. This makes it possible to transmit data related to grid computing processing (job data and calculation result data) using a communication path with ensured communication stability.
[0202] In this way, the communication stability of the communication path over which data related to grid computing processing is transmitted can be ensured, thereby reducing the occurrence of problems due to communication failures (for example, prolonged data transmission times), thereby improving the performance of grid computing processing.
[0203] Furthermore, in the embodiment, the control unit 505 of the management server 50 and a plurality of calculation nodes N2 (an example of a non-representative node) communicate indirectly via the representative node N1. With this configuration, it is possible to reduce the communication load on the control unit 505 of the management server 50 compared to when the control unit 505 of the management server 50 and a plurality of calculation nodes N2 communicate directly without going through the representative node N1 (i.e., when communication is concentrated on the management server 50).
[0204] Furthermore, in the embodiment, even if it is difficult for the control unit 505 of the management server 50 and the calculation node N2 to communicate directly (for example, if the communication bandwidth for inter-vehicle network communication used for communication between the management server 50 and the calculation node N2 is too narrow), as long as the control unit 505 of the management server 50 and the representative node N1 can communicate and the representative node N1 and the calculation node N2 can communicate, job data can be sent from the control unit 505 of the management server 50 to the calculation node N2 via the representative node N1. In this way, in grid computing processing, it is possible to effectively utilize vehicles 10 that have difficulty communicating directly with the control unit 505 of the management server 50.
[0205] Note that the communication stability in communication via the communication network 5 (for example, carrier communication) is likely to be affected by the usage status of the communication network 5. For example, the greater the number of communication devices that simultaneously use the communication network 5, the more likely the communication stability in communication via the communication network 5 is to decrease. On the other hand, the communication stability in communication that does not go through the communication network 5 (for example, vehicle-to-vehicle communication) is not affected by the usage status of the communication network 5.
[0206] In the embodiment, the control unit 505 of the management server 50 and the representative node N1 communicate via the communication network 5. The representative node N1 and the calculation node N2 communicate directly without going through the communication network 5. With this configuration, the number of vehicles 10 using the communication network 5 can be reduced compared to when the control unit 505 of the management server 50 and multiple calculation nodes N2 communicate via the communication network 5. This makes it easier to ensure communication stability in grid computing.
[0207] Furthermore, in the embodiment, in grid computing processing, the control unit 505 controls the calculation node N2 to transmit calculation result data (more specifically, partial calculation result data) to the representative node N1, and controls the representative node N1 to transmit the calculation result data transmitted to the representative node N1 to the management server 50. With this configuration, the calculation result data can be transmitted by utilizing communication between the management server 50 and the representative node N1 (communication with stable communication).
[0208] Furthermore, in the embodiment, the control unit 505 determines, from among the multiple available vehicles 10, a vehicle 10 whose communication stability with the management server 50 exceeds a threshold, as the "vehicle 10 to function as the representative node N1," and determines, from among the multiple available vehicles 10, a vehicle 10 that can communicate with the representative node N1 as the "vehicle 10 to function as the computation node N2." With this configuration, the control unit 505 (management side) determines the representative node N1 and the computation node N2 in advance, thereby making it possible to determine a "communication route via the communication network 5" and a "communication route that does not pass through the communication network 5." Then, by designating a vehicle 10 with high communication stability with the management server 50 as the representative node N1, it is possible to improve the communication stability of the entire communication route.
[0209] In the embodiment, the control unit 505 determines the computation node N2 to process each of the plurality of partial job data obtained by dividing the job data D1. With this configuration, the control unit 505 (management side) determines in advance the partial job data to be assigned to the computation node N2, thereby enabling the control unit 505 (management side) to control the communication volume on each communication path.
[0210] Furthermore, in the embodiment, in grid computing processing, the control unit 505 transmits to the representative node N1 partial job data to be processed by the computation node N2 corresponding to the representative node N1 among a plurality of partial job data, and transmission destination information indicating the computation node N2 to be made to process the partial job data. With this configuration, it is possible to appropriately instruct the representative node N1 which partial job data to transmit to which computation node N2.
[0211] Furthermore, in the embodiment, in grid computing processing, the representative node N1 transmits partial job data transmitted from the control unit 505 to the calculation node N2 that is to process the partial job data, as indicated in the transmission destination information. With this configuration, partial job data can be appropriately transmitted from the representative node N1 to the calculation node N2.
[0212] (Modification 1 of the embodiment) As shown in FIG. 15, a computation node N2 (an example of a non-representative node) may be a vehicle 10 located within a communication range R1 based on the representative node N1.
[0213] [Grid Computing Processing] In the grid computing process of the first variant of the embodiment, the control unit 505 of the management server 50 controls the multiple available vehicles 10 so that, among the multiple available vehicles 10, a vehicle 10 whose communication stability with the management server 50 exceeds a predetermined threshold functions as a "representative node N1," and other vehicles 10 among the multiple available vehicles 10 other than the representative node N1 and located within the communication range R1 based on the representative node N1 function as a "computation node N2."
[0214] [Matching process] In the matching process of the first modified example of the embodiment, the control unit 505 refers to the communication prediction table D57 and selects, from among a plurality of available vehicles 10, vehicles 10 that can communicate with the representative node N1 during the period in which grid computing processing is performed. Next, the control unit 505 refers to the position prediction table D55 and selects, from among the selected vehicles 10, vehicles 10 that are located within a communication range R1 based on the representative node N1 during the period in which grid computing processing is performed, as "candidates for computation node N2." Next, as in the embodiment, the control unit 505 determines, from among the vehicles 10 selected as candidates for computation node N2, a "vehicle 10 to function as computation node N2."
[0215] Alternatively, in the matching process of the first modified example of the embodiment, the control unit 505 refers to the communication prediction table D57 and the position prediction table D55, and selects, from among a plurality of available vehicles 10, a vehicle 10 whose communication stability with the management server 50 exceeds a threshold during the period in which grid computing processing is performed, and whose number of vehicles 10 located within a communication range R1 based on that vehicle 10 exceeds a predetermined lower limit, as a "candidate for representative node N1." Next, the control unit 505 determines a "vehicle 10 to function as representative node N1" from among the vehicles 10 selected as candidates for representative node N1. Next, as in the embodiment, the control unit 505 refers to the communication prediction table D57, and selects a "vehicle 10 to function as computation node N2" from among a plurality of available vehicles 10.
[0216] [Communication range] The communication range R1 is the range in which the representative node N1 and the computation node N2 (an example of a non-representative node) can communicate with each other. In this example, the communication range R1 is the range in which the vehicle 10 can communicate directly with the representative node N1 without going through the communication network 5, and more specifically, the range in which the vehicle 10 can perform inter-vehicle communication with the representative node N1. For example, the communication range R1 may be a circular range centered on the vehicle 10 that is the representative node N1.
[0217] Furthermore, the communication range R1 may be a range in which the stability of communication between the representative node N1 and the calculation node N2 (an example of a non-representative node) exceeds a predetermined threshold. The threshold for the communication range R1 may be the same as or different from the threshold used as a reference when selecting the vehicle 10 that will become the representative node N1.
[0218] Furthermore, the communication range R1 may be set according to the communication performance of the vehicle 10 that will be the representative node N1. For example, the higher the communication performance of the vehicle 10 that will be the representative node N1, the wider the communication range R1 based on that vehicle 10.
[0219] It can be said that the communication range R1 is the range within which the vehicle 10 can transmit a reply signal to the representative node N1 in response to a confirmation signal (e.g., a PING signal) transmitted from the representative node N1. Furthermore, the representative node N1 may cause the vehicle 10 to transmit information regarding the vehicle 10 (e.g., vehicle status information D13, location management information D16, operation management information D17, communication management information D18, etc.) together with the reply signal. Furthermore, after receiving the reply signal, the representative node N1 may transmit burst data in order to measure the communication bandwidth for communication with the vehicle 10 that transmitted the reply signal.
[0220] Furthermore, the communication range R1 may change depending on obstacles that exist around the representative node N1. Examples of obstacles include objects that block radio waves (for example, buildings) and structures that generate noise (for example, radio towers). For example, in an area behind an obstacle as viewed from the representative node N1, the communication range R1 may be made narrower than when there is no obstacle (the outer edge of the communication range R1 may be closer to the representative node N1).
[0221] [Communication stability between representative node and non-representative node] Furthermore, the communication state between the representative node N1 and the computation node N2 (an example of a non-representative node) can change depending on the distance between the representative node N1 and the computation node N2. For example, if the communication environment conditions other than the distance between the representative node N1 and the computation node N2 are the same, the longer the distance between the representative node N1 and the computation node N2, the lower the communication stability between the representative node N1 and the computation node N2.
[0222] [Effects of Modification 1 of the Embodiment] In the first modification of the embodiment, the same effects as those of the embodiment can be obtained.
[0223] Furthermore, in the first modification of the embodiment, by designating a vehicle 10 located within a communication range R1 based on the representative node N1 as a "computation node N2 (an example of a non-representative node)," it is possible to limit the distance between the representative node N1 and the computation node N2. This makes it possible to ensure communication stability between the representative node N1 and the computation node N2.
[0224] In this way, in addition to ensuring communication stability between the management server 50 and the representative node N1, it is also possible to ensure communication stability between the representative node N1 and the calculation node N2 (an example of a non-representative node), which further reduces the occurrence of problems due to poor communication (for example, prolonged data transmission times, etc.). This makes it possible to further improve the performance of grid computing processing.
[0225] (Modification 2 of the embodiment) As shown in FIG. 16, in addition to the calculation node N2, a relay node N3 and a storage node N4 may be set as non-representative nodes.
[0226] [Characteristics of grid computing processing] In the grid computing process of the second modification of the embodiment, the control unit 505 of the management server 50 controls the relay node N3 so that the relay node N3 transmits the job data transmitted to the relay node N3 to a non-representative node (for example, the calculation node N2). The control unit 505 also controls the relay node N3 so that the relay node N3 transmits the calculation result data transmitted to the relay node N3 to the representative node N1.
[0227] It should be noted that the representative node N1 and relay node N3 communicate directly without going through the communication network 5. In this example, the communication between the representative node N1 and relay node N3 is vehicle-to-vehicle communication (V2V).
[0228] Also, another relay node N3 may be provided that processes job data transmitted from the relay node N3. Communication between the relay node N3 and another relay node N3 is similar to communication between the representative node N1 and the relay node N3.
[0229] In the grid computing process of the second modification of the embodiment, the control unit 505 stores the data transmitted to the storage node N4 in the storage node N4. Examples of the data transmitted to the storage node N4 include partial calculation result data (part of the calculation result data D2), partial interim result data indicating the results of the partial job data (part of the job data D1), and partial job data scheduled to be transmitted to the calculation node N2.
[0230] The relay node N3 and the storage node N4 communicate directly without going through the communication network 5. In this example, the communication between the relay node N3 and the storage node N4 is vehicle-to-vehicle communication (V2V).
[0231] Furthermore, the storage node N4 may transmit and receive data not only with the vehicle 10 that serves as the relay node N3, but also with the vehicle 10 that serves as the representative node N1, the vehicle 10 that serves as the calculation node N2, and other vehicles 10. The communication between these vehicles 10 and the storage node N4 is similar to the communication between the relay node N3 and the storage node N4.
[0232] [Matching process details] In the matching process of the second variant of the embodiment, the control unit 505 of the management server 50 determines from among the multiple available vehicles 10, "a vehicle 10 to function as the representative node N1," "a vehicle 10 to function as the calculation node N2," "a vehicle 10 to function as the relay node N3," and "a vehicle 10 to function as the storage node N4," and associates the results of the determination with the job data D1 and registers them in the matching table D58.
[0233] Specifically, similar to the first modification of the embodiment, the control unit 505 determines the "vehicle 10 to function as the representative node N1" from among a plurality of available vehicles 10.
[0234] Next, the control unit 505 refers to the communication prediction table D57 and selects, from among the multiple available vehicles 10, vehicles 10 that can communicate with the representative node N1 during the period in which grid computing processing is performed, as "candidates for relay node N3." Next, the control unit 505 determines, from the vehicles 10 selected as candidates for relay node N3, a "vehicle 10 to function as relay node N3."
[0235] Next, the control unit 505 refers to the communication prediction table D57 and selects, from among the multiple available vehicles 10, vehicles 10 that can communicate with the representative node N1 or the relay node N3 during the period in which the grid computing processing is performed, as "candidates for the computation node N2." Next, as in the embodiment, the control unit 505 determines, from among the vehicles 10 selected as candidates for the computation node N2, a "vehicle 10 to function as the computation node N2."
[0236] Furthermore, the control unit 505 refers to the communication prediction table D57 and selects, from among the multiple available vehicles 10, vehicles 10 that can communicate with at least one of the vehicles 10 (representative node N1, calculation node N2, and relay node N3) that will be used during the period in which grid computing processing is performed, as "candidates for storage node N4." Next, the control unit 505 determines, from among the vehicles 10 selected as candidates for storage node N4, a "vehicle 10 to function as storage node N4."
[0237] Next, based on the results of the above determination, the control unit 505 generates node information for identifying the "vehicle 10 to function as the representative node N1," the "vehicle 10 to function as the calculation node N2," the "vehicle 10 to function as the relay node N3," and the "vehicle 10 to function as the storage node N4," as well as link information indicating the correspondence between the representative node N1, the calculation node N2, the relay node N3, and the storage node N4.
[0238] Next, as in the embodiment, the control unit 505 determines the computation node N2 to process each of the multiple partial job data obtained by dividing the job data D1, and generates responsibility information indicating the correspondence between the computation node N2 and the partial job data.
[0239] Next, similarly to the embodiment, the control unit 505 associates the node information, link information, and responsibility information with the job data D1 and registers them in the matching table D58.
[0240] [Details of grid computing processing] The grid computing processing of the second modification of the embodiment differs from the grid computing processing of the embodiment in the processing related to the representative node N1. Furthermore, in the grid computing processing of the second modification of the embodiment, in addition to the grid computing processing of the embodiment, processing related to the relay node N3 and the storage node N4 is performed. Other processing of the grid computing processing of the second modification of the embodiment is the same as the grid computing processing of the embodiment.
[0241] In the grid computing process of the second modification of the embodiment, a relay command is transmitted from the management server 50 to the "vehicle 10 to be made to function as a relay node N3" via the representative node N1. The relay command is a command to make the vehicle 10 function as the relay node N3. The relay command may include a program and information to make the vehicle 10 function as the relay node N3. The vehicle 10 that receives the relay command functions as the "relay node N3" in response to the relay command.
[0242] Similarly, a storage command is sent from the management server 50 to the "vehicle 10 to be made to function as storage node N4" via the representative node N1, etc. The storage command is a command to make the vehicle 10 function as storage node N4. The storage command may include a program and information to make the vehicle 10 function as storage node N4. The vehicle 10 that receives the storage command functions as "storage node N4" in response to the storage command.
[0243] Furthermore, the representative node N1 transmits to the relay node N3 the partial job data to be processed by the calculation node N2 corresponding to the relay node N3, out of the partial job data transmitted to the representative node N1, and relay destination information indicating the calculation node N2 to be made to process the partial job data. Note that the relay destination information may be generated by the representative node N1, or may be generated by the control unit 505 and transmitted to the representative node N1.
[0244] Next, the relay node N3 receives the partial job data and relay destination information transmitted from the representative node N1. Then, the relay node N3 references the relay destination information and transmits the partial job data to the calculation node N2 corresponding to the partial job data. Specifically, the relay node N3 transmits the partial job data to the "calculation node N2 that will process the partial job data" indicated in the relay destination information.
[0245] The computation node N2 corresponding to the relay node N3 receives the partial job data transmitted from the relay node N3, calculates the partial job data, and transmits partial computation result data indicating the computation results to the relay node N3. The relay node N3 receives the partial computation result data transmitted from the computation node N2, and transmits the partial computation result data to the representative node N1. The representative node N1 receives the partial computation result data transmitted from the relay node N3, and transmits the partial computation result data to the management server 50.
[0246] The storage node N4 stores data transmitted to the storage node N4 from another vehicle 10 (relay node N3 in the example of FIG. 15). In response to a data transmission request from the other vehicle 10, the storage node N4 transmits the data stored in the storage node N4 to the other vehicle 10.
[0247] [Effects of Modification 2 of the Embodiment] In the second modification of the embodiment, the same effects as those of the embodiment can be obtained.
[0248] Furthermore, in the second modification of the embodiment, the representative node N1 and a plurality of non-representative nodes (computation node N2 and storage node N4 in the example of FIG. 16) communicate indirectly via relay node N3. With this configuration, it is possible to reduce the communication load on the representative node N1 compared to when the representative node N1 and a plurality of non-representative nodes communicate directly without going through relay node N3 (i.e., when communication is concentrated on the representative node N1).
[0249] Furthermore, in the second modification of the embodiment, even if it is difficult for the representative node N1 and the calculation node N2 (an example of a non-representative node) to communicate directly, if the representative node N1 and the relay node N3 can communicate and the relay node N3 and the calculation node N2 can communicate, job data can be transmitted from the representative node N1 to the calculation node N2 via the relay node N3. In this way, in grid computing processing, it is possible to effectively utilize vehicles 10 that have difficulty communicating directly with the representative node N1.
[0250] Furthermore, in the second modification of the embodiment, by providing a storage node N4, data related to grid computing processing can be temporarily stored in the storage node N4.
[0251] (Modification 3 of the embodiment) As shown in FIG. 17, multiple representative nodes N1 may be provided.
[0252] In the grid computing process of the third variant of the embodiment, the control unit 505 of the management server 50 divides the job data D1 into multiple (two in the example of Figure 17) partial job data and transmits the multiple partial job data to multiple (two in the example of Figure 17) representative nodes N1, respectively.
[0253] Then, the control unit 505 generates calculation result data D2 by integrating the partial calculation result data transmitted to the management server 50 from each of the multiple representative nodes N1.
[0254] [Modification 3 of the embodiment] In the third modification of the embodiment, the same effects as those of the embodiment can be obtained.
[0255] Furthermore, in the third modification of the embodiment, by providing a plurality of representative nodes N1, it is possible to reduce the communication load per representative node N1 compared to when only one representative node N1 is provided.
[0256] (Modification of Matching Process) In the above description, the matching process shown in Fig. 18 may be performed instead of the matching process shown in Fig. 12. In this modification, the control unit 505 of the management server 50 performs the following process as appropriate (for example, periodically).
[0257] In the following description, a combination of multiple vehicles 10 that are capable of communicating and providing computing power to grid computing processes during the same period will be referred to as a "grid group."
[0258] <Step S55> First, the control unit 505 prepares multiple grid groups based on the "prediction result of the change over time in the computing capacity available for grid computing processing of each of the multiple vehicles 10 registered in the capacity prediction table D56" and the "prediction result of the change over time in the communication status of each of the multiple vehicles 10 registered in the communication prediction table D57."
[0259] The plurality of grid groups each differ in at least one of the "period during which computing power can be provided to grid computing processes" and the "total amount of computing power that can be provided to grid computing processes."
[0260] <Step S56> Next, the control unit 505 selects a job to be subjected to the matching process from among the jobs registered in the job table D54. Then, the control unit 505 selects job data D1 corresponding to the job to be subjected to the matching process from among the job data D1 stored in the storage unit 504.
[0261] <Step S57> Next, the control unit 505 selects, from the plurality of grid groups, a grid group to be used in the grid computing process for the job data D1 selected in step S56.
[0262] Specifically, the control unit 505 determines a planned calculation period during which grid computing processing for job data D1 will be executed, and selects grid groups available for use during the planned calculation period from among multiple grid groups. Then, the control unit 505 selects grid groups to be allocated to the job data D1 from among the grid groups available during the planned calculation period so that the "total computing capacity provided to the grid computing processing" is equal to or greater than the "computing capacity required for computing the job data D1 in the grid computing processing."
[0263] Next, the control unit 505 assigns a grid selected from the plurality of grid groups to the job data D1 selected in step S56. Then, the control unit 505 registers matching result information indicating which vehicle 10 is assigned to which job data D1 in the matching table D58.
[0264] (Other embodiments) In the above explanation, an example has been given in which job data D1 (or a part of job data D1) is transmitted from management server 50 to representative node N1, but the present invention is not limited to this. For example, A portion of the job data D1 may be sent from the management server 50 to the representative node N1, and another portion of the job data D1 may be sent from the management server 50 to "another vehicle 10 that is not the representative node N1 (for example, a calculation node N2 or a storage node N4)" without going through the representative node N1.
[0265] Furthermore, in the above description, an example has been given in which the control unit 505 of the management server 50 performs the position prediction process, but the present invention is not limited to this. For example, the position prediction process may be performed by the arithmetic device 105 of the vehicle 10. In this case, the arithmetic device 105 may transmit position prediction information D5 obtained by the position prediction process to the management server 50. The control unit 505 of the management server 50 may update the position prediction table D55 by registering (overwriting) the position prediction information D5 transmitted from the vehicle 10 in the position prediction table D55. The same applies to the operation prediction process and the communication prediction process.
[0266] In addition, in the above description, the control unit 505 is aggregated in a single management server 50, but this is not limiting. For example, the control unit 505 may be distributed among a plurality of management servers 50 (not shown) that communicate with each other via the communication network 5.
[0267] In the above description, the storage unit 504 may be configured by a single storage device or may be configured by multiple storage devices. The multiple storage devices may be consolidated into a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.
[0268] In the above description, the control unit 505 may be configured by a single control unit or may be configured by multiple control units. The multiple control units may be aggregated in a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.
[0269] In the above description, the arithmetic device 105 may be configured with a single arithmetic unit, or may be configured with multiple arithmetic units.
[0270] In the above description, the vehicle 10 (specifically, a four-wheeled motor vehicle) is given as an example of a moving body on which the arithmetic device 105 is mounted, but the present invention is not limited to this. The arithmetic device 105 may be mounted on a moving body other than the vehicle 10. Examples of such moving bodies include transportation machinery and personal digital assistants. Examples of transportation machinery include motorcycles, railroad vehicles, ships, aircraft, and drones. A vehicle is an example of transportation machinery. Examples of personal digital assistants include notebook personal computers, tablets, and smartphones.
[0271] In the above description, the grid computing process may be provided with the computing power of not only the computing device 105 mounted on the vehicle 10 but also that of another computing device (not shown). Such another computing device may be a stationary computing device (for example, a desktop personal computer).
[0272] The above embodiments may be combined as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the technology disclosed herein, its applications, or its uses. [Industrial Applicability]
[0273] As described above, the technology disclosed herein is useful as a grid computing technology. [Explanation of symbols]
[0274] 1 System 10 vehicles 105 Arithmetic equipment 20 User terminal 30 Client Server 50 Management Server 501 Input section 502 Output section 503 Communications Department 504 Storage section 505 Control Unit D1 Job data D2 Calculation result data N1 Representative node N2 Computing node (non-representative node) N3 Relay node (non-representative node) N4 Storage node (non-representative node)
Claims
1. A management device that manages a grid computing process in which job data is processed by a plurality of available mobile objects among a plurality of mobile objects each having a computing device, a control unit that, in the grid computing processing, transmits the job data to a representative node that is a mobile body of the plurality of available mobile bodies and that has communication stability with the management device that exceeds a predetermined threshold, controls the representative node to transmit the job data transmitted to the representative node to non-representative nodes that are other mobile bodies of the plurality of available mobile bodies excluding the representative node, and causes the non-representative nodes to process the job data transmitted to the non-representative nodes, the control unit and the representative node communicate with each other via a communication network, The representative node and the non-representative node communicate directly without going through the communication network. A management device characterized by:
2. 2. The management device of claim 1, The control unit controls the non-representative node to transmit calculation result data indicating a calculation result of the job data to the representative node in the grid computing processing, and controls the representative node to transmit the calculation result data transmitted to the representative node to the management device. A management device characterized by:
3. 3. The management device according to claim 1, The control unit determines, from among the plurality of available mobile bodies, a mobile body whose communication stability with the management device exceeds the threshold value as a mobile body to function as the representative node, and determines, from among the plurality of available mobile bodies, a mobile body that can communicate with the representative node as a mobile body to function as the non-representative node. A management device characterized by:
4. 4. The management device of claim 3, The control unit determines the non-representative node to process each of a plurality of partial job data obtained by dividing the job data. A management device characterized by:
5. 5. The management device of claim 4, In the grid computing processing, the control unit transmits to the representative node partial job data to be processed by the non-representative node corresponding to the representative node among the plurality of partial job data, and transmission destination information indicating the non-representative node to be caused to process the partial job data. A management device characterized by:
6. 6. The management device of claim 5, The representative node transmits the partial job data transmitted from the control unit to the non-representative node that is to process the partial job data indicated in the destination information in the grid computing processing. A management device characterized by:
7. In any one of claims 1 to 6, the management device The non-representative node is located within a communication range based on the representative node. A management device characterized by:
8. A processing method for causing a plurality of available mobile objects among a plurality of mobile objects each having a computing device to process job data transmitted by a management device, the method comprising: transmitting the job data by the management device to a representative node that is a mobile object among the plurality of available mobile objects and whose communication stability with the management device exceeds a predetermined threshold; The representative node transmits the job data transmitted to the representative node to non-representative nodes which are other mobile bodies other than the representative node among the plurality of available mobile bodies, The non-representative node processes the job data transmitted to the non-representative node; the management device and the representative node communicate via a communication network, The representative node and the non-representative node communicate directly without going through the communication network. A processing method characterized by:
Citation Information
Patent Citations
Network lead vehicle group forming communication system
JP2002198886A
System, method, and program for distributed processing, and data processing system
JP2005208756A
Wireless device and wireless network system equipped with it
JP2006081163A
Distributed processing system, on-board terminal, and base station
JP2007089021A
On-vehicle data communication device and data communication method
JP2007129521A