Management device and processing method

By managing grid computing to utilize multiple low-probability mobile units based on communication status and availability, the system ensures complete calculation results despite potential communication outages.

JP7782185B2Active Publication Date: 2025-12-09MAZDA MOTOR CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021158388
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-09-28
Publication Date
2025-12-09
Estimated Expiration
2041-09-28

AI Technical Summary

Technical Problem

In existing distributed processing systems, if processing fails midway due to communication outages on vehicle-mounted terminals, the calculation results cannot be obtained.

Method used

A management device manages grid computing by causing multiple low-probability mobile objects to process the same job data, prioritizing communication status and available time to reduce the risk of incomplete calculations.

Benefits of technology

This approach reduces the risk of not obtaining calculation results by ensuring sufficient low-accuracy mobile units are available to complete the processing, even in the face of communication failures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007782185000001
    Figure 0007782185000001
  • Figure 0007782185000002
    Figure 0007782185000002
  • Figure 0007782185000003
    Figure 0007782185000003
Patent Text Reader

Abstract

To reduce the risk of not being able to obtain calculation results.SOLUTION: In a grid computing process of causing a plurality of available mobile bodies 10 to process job data D1 among a plurality of mobile bodies 10 each having an arithmetic device 105, a control unit 505 causes a plurality of low-certainty mobile bodies 10 whose calculation completion certainty indicating certainty of being able to complete calculation of the job data D1 is below a threshold value among the plurality of available mobile bodies 10 to process the same portion of job data D1.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technology disclosed herein relates to grid computing. [Background technology]

[0002] Patent Document 1 discloses a distributed processing system consisting of a base station and an on-board terminal that can connect to each other via wireless communication. The base station has a resource information storage means and a processing allocation means. The resource information storage means stores resource information, which is information about the computational resources of the on-board terminal that functions as a computation node. The processing allocation means identifies the on-board terminal that will execute the requested processing based on the resource information, and causes the identified on-board terminal to execute the processing. The on-board terminal has a resource information registration means and a computation means. The resource information registration means transmits resource information of the own terminal to the base station and registers the own terminal as a computation node in the distributed processing system. The computation means executes the processing assigned by the base station. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-87273 Summary of the Invention [Problem to be solved by the invention]

[0004] In the system of Patent Document 1, if the requested processing fails midway through and is not completed on some vehicle-mounted terminals due to factors such as a communication outage, the results (calculation results) of the processing requested from that vehicle terminal cannot be obtained.

[0005] The technology disclosed herein has been made in consideration of this point, and its purpose is to reduce the risk of not being able to obtain calculation results. [Means for solving the problem]

[0006] The technology disclosed herein relates to 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. The management device includes a control unit that, in the grid computing process, causes a plurality of low-probability mobile objects, among the plurality of available mobile objects, whose calculation completion probability indicating the likelihood that the calculation of the job data can be completed, to process the same portion of the job data.

[0007] The above configuration can reduce the risk of not being able to obtain the calculation result.

[0008] In the management device, the number of the plurality of low-probability moving bodies may increase as the calculation completion probability of each of the plurality of low-probability moving bodies processing the same portion of the job data decreases.

[0009] The above configuration can effectively reduce the risk of not being able to obtain the calculation result.

[0010] In the management device, the calculation completion accuracy of the mobile unit may be derived based on information usable for deriving the calculation completion accuracy of the mobile unit. The information usable for deriving the calculation completion accuracy of the mobile unit may include at least the communication state of the mobile unit and the available time of the calculation device of the mobile unit. Of the information usable for deriving the calculation completion accuracy of the mobile unit, the communication state of the mobile unit and the available time of the calculation device of the mobile unit may have a greater influence on the derivation of the calculation completion accuracy of the mobile unit than other information excluding the communication state of the mobile unit and the available time of the calculation device of the mobile unit.

[0011] In the above configuration, importance can be placed on the "communication status of the mobile body" and the "available time of the mobile body's computing device" when deriving the calculation completion accuracy of the mobile body, so that the calculation completion accuracy of the mobile body can be appropriately set.

[0012] In the management device, the longer the expected processing time of the job data, the greater the number of the plurality of low-accuracy moving bodies that are caused to process the same portion of the job data.

[0013] This configuration ensures that the number of vehicles with low accuracy that can be used to calculate the same part of the job data is sufficient, thereby appropriately reducing the risk of not being able to obtain the calculation result.

[0014] The technology disclosed herein relates to a processing method for causing a plurality of available mobile bodies among a plurality of mobile bodies each having a calculation unit to process job data transmitted from a management device. In this processing method, the management device transmits identical portions of the job data to a plurality of low-probability mobile bodies among the plurality of available mobile bodies, each of which has a calculation completion probability indicating the likelihood that calculation of the job data can be completed below a predetermined threshold, and the identical portions of the job data are processed by the plurality of low-probability mobile bodies.

[0015] The method described above can reduce the risk of not being able to obtain the calculation result. [Effects of the Invention]

[0016] The technology disclosed herein can reduce the risk of not being able to obtain calculation results. [Brief explanation of the drawings]

[0017] [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 an example of a probability prediction process. [Figure 13] 10 is a flowchart illustrating a matching process. [Figure 14] 1 is a flowchart illustrating a grid computing process. [Figure 15] FIG. 1 is a schematic diagram illustrating the transmission of job data in a grid computing process. [Figure 16] FIG. 10 is a schematic diagram illustrating an example of transmission of job data in grid computing processing according to the first modified example of the embodiment. [Figure 17] 10 is a flowchart illustrating a modified example of the matching process. DETAILED DESCRIPTION OF THE INVENTION

[0018] 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.

[0019] (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.

[0020] [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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] 〔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.

[0025] 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.

[0026] 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.

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] The storage unit 104 stores information and data.

[0032] 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.

[0033] 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.

[0034] 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).

[0035] 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, communication management information D18, and performance management information D19.

[0036] <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.

[0037] <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.

[0038] <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.

[0039] 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.

[0040] 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.

[0041] 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.

[0042] <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).

[0043] 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.

[0044] <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.

[0045] 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.

[0046] 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.

[0047] <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.

[0048] 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.

[0049] 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.

[0050] <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.

[0051] 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.

[0052] 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.

[0053] <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.

[0054] 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.

[0055] 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.

[0056] 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.

[0057] 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.

[0058] 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.

[0059] <Performance management information> The performance management information D19 indicates the performance of the calculation completion in the grid computing process of the vehicle 10. For example, the performance management information D19 indicates the ratio of "the number of grid computing processes in which the vehicle 10 was able to complete the calculation of job data" to "the number of grid computing processes in which the vehicle 10 was used."

[0060] When the grid computing process using the vehicle 10 is completed, the computing device 105 updates the performance management information D19 based on the calculation completion performance of the vehicle 10 in that grid computing process (whether or not the calculation was completed).

[0061] [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.

[0062] 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.

[0063] 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.

[0064] 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.

[0065] 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.

[0066] The storage unit 204 stores information and data.

[0067] 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.

[0068] 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.

[0069] In this example, the storage unit 204 stores terminal information D21, terminal state information D22, and schedule information D23.

[0070] <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.

[0071] <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.

[0072] 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.

[0073] <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.

[0074] 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.

[0075] 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.

[0076] [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.

[0077] 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.

[0078] 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.

[0079] 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.

[0080] 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.

[0081] The storage unit 304 stores information and data.

[0082] 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.

[0083] 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.

[0084] In this example, the storage unit 304 stores client information D31 and job data D1.

[0085] <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.

[0086] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job.

[0087] 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.

[0088] 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.

[0089] <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.

[0090] [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.

[0091] 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.

[0092] 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 probability table D60, a matching table D58, job data D1, and calculation result data D2.

[0093] <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.

[0094] The control unit 505 updates the user table D51 as appropriate.

[0095] 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.

[0096] 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.

[0097] <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 performance management information D19 related to the vehicle 10.

[0098] The control unit 505 updates the vehicle table D52 as needed.

[0099] 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.

[0100] 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, communication management information D18, and performance management information D19) 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.

[0101] 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, communication management information D18, and performance management information D19), and updates the vehicle table D52 based on the acquired information.

[0102] <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.

[0103] The control unit 505 updates the client table D53 as appropriate.

[0104] 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.

[0105] 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.

[0106] <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.

[0107] <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.

[0108] 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.

[0109] <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.

[0110] Accuracy table The accuracy table D60 is a table for managing the calculation completion accuracy of the vehicle 10. The calculation completion accuracy indicates the likelihood that the vehicle 10 will be able to complete the calculation of the job data D1 in the grid computing process. In this example, the accuracy table D60 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, accuracy information D8 related to that vehicle 10, and the like. The accuracy information D8 indicates the calculation completion accuracy of the vehicle 10. The process for deriving the calculation completion accuracy of the vehicle 10 (accuracy derivation process) will be explained in detail later.

[0111] 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.

[0112] <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.

[0113] <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.

[0114] [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.

[0115] 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.

[0116] <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.

[0117] 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.

[0118] 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.

[0119] 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.

[0120] 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.

[0121] [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.

[0122] 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.

[0123] <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.

[0124] <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.

[0125] <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.

[0126] <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.

[0127] Updating location 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.

[0128] 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.

[0129] [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.

[0130] 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.

[0131] <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.

[0132] <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.

[0133] <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.

[0134] <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.

[0135] <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.

[0136] 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.

[0137] [Processing by the control unit (management method)] The control unit 505 performs job reception processing, location prediction processing, capacity prediction processing, communication prediction processing, accuracy derivation processing, matching processing, and grid computing processing. These processes are examples of a management method for managing grid computing processing.

[0138] [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.

[0139] <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.

[0140] 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.

[0141] 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.

[0142] 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.

[0143] 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.

[0144] <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.

[0145] If the job information received in step S11 is sufficiently reliable, the process of step S12 may be omitted.

[0146] <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.

[0147] [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.

[0148] <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.

[0149] <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.

[0150] 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.

[0151] <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.

[0152] [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.

[0153] <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.

[0154] <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.

[0155] 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.

[0156] <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.

[0157] [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.

[0158] <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.

[0159] <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.

[0160] 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.

[0161] <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.

[0162] [Probability derivation process] Next, the accuracy derivation process will be described with reference to Fig. 12. The control unit 505 performs the following process as appropriate (for example, periodically).

[0163] <Step S45> First, the control unit 505 acquires, for each vehicle 10, information that can be used to derive the calculation completion accuracy of that vehicle 10. Examples of information that can be used to derive the calculation completion accuracy of the vehicle 10 include the remaining battery charge of the vehicle 10, the power supply status, the calculation completion record, the communication status, the available time of the arithmetic device 105, and the available rate of the calculation capacity of the arithmetic device 105.

[0164] In this example, the remaining battery charge of the vehicle 10 is indicated in vehicle remaining battery charge information included in vehicle status information D13 for the vehicle 10 registered in the vehicle table D52. The power supply status of the vehicle 10 is indicated in vehicle charging information included in vehicle status information D13 for the vehicle 10 registered in the vehicle table D52. The calculation completion record of the vehicle 10 (the ratio of the "number of grid computing processes in which the vehicle 10 was able to complete the calculation of job data" to the "number of grid computing processes in which the vehicle 10 was used") is indicated in record management information D19 for the vehicle 10 registered in the vehicle table D52. The communication status of the vehicle 10 is indicated in communication prediction information D6 for the vehicle 10 registered in the communication prediction table D57.

[0165] The available time of the computing device 105 of the vehicle 10 (the time during which the computing capacity of the computing device 105 can be continuously provided for grid computing processing) is derived based on the change over time (predicted value) of the available computing capacity of the computing device 105 indicated in the capacity prediction information D6 for the vehicle 10 registered in the capacity prediction table D55. Specifically, the "available time of the computing device 105" is the time during which the available computing capacity of the computing device 105 indicated in the capacity prediction information D6 continues to be greater than zero.

[0166] The available rate of computing power of the computing device 105 of the vehicle 10 (the proportion of computing power that can be used in grid computing processing) is derived based on the change over time (predicted value) of the available computing power of the computing device 105 shown in the capacity prediction information D6 for the vehicle 10 registered in the capacity prediction table D55.

[0167] <Step S46> Next, the control unit 505 derives the calculation completion accuracy of the vehicle 10 for each vehicle 10 based on the "information usable for deriving the calculation completion accuracy of the vehicle 10" acquired in step S45. For example, the control unit 505 derives the calculation completion accuracy of the vehicle 10 based on at least one of the remaining battery charge of the vehicle 10, the power supply status, the calculation completion record, the communication status, the available time of the calculation device 105, and the availability rate of the calculation capacity of the calculation device 105.

[0168] For example, the higher the remaining battery charge of vehicle 10, the higher the accuracy of calculation completion of vehicle 10. The accuracy of calculation completion of vehicle 10 when the power supply state of vehicle 10 is "powered (charging at charging equipment)" is higher than the accuracy of calculation completion of vehicle 10 when the power supply state of vehicle 10 is "not powered (not charging at charging equipment)". The more calculation completion records vehicle 10 has, the higher the accuracy of calculation completion of vehicle 10. The better the communication state of vehicle 10, the higher the accuracy of calculation completion of vehicle 10. The longer the available time of vehicle 10's calculation device 105, the higher the accuracy of calculation completion of vehicle 10. The higher the availability rate of the calculation capacity of vehicle 105, the higher the accuracy of calculation completion of vehicle 10.

[0169] The quality of the communication state of the vehicle 10 varies depending on the communication quality, communication band, and available communication time of the vehicle 10. For example, the higher the communication quality of the vehicle 10, the better the communication state of the vehicle 10. The wider the communication band of the vehicle 10, the better the communication state of the vehicle 10. The longer the available communication time of the vehicle 10, the better the communication state of the vehicle 10.

[0170] <Step S47> Next, the control unit 505 registers (overwrites) the accuracy information D8 indicating the "calculation completion accuracy of the vehicle 10" derived in step S46 in the accuracy table D60 for each vehicle 10. This updates the accuracy table D60.

[0171] [Matching process] Next, the matching process will be described with reference to Fig. 13. 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.

[0172] <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.

[0173] <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.''

[0174] 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."

[0175] <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.

[0176] [Grid Computing Processing] Next, the grid computing process will be described with reference to Fig. 14. 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.

[0177] <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.

[0178] <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.

[0179] <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.

[0180] <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.

[0181] <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.

[0182] 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.

[0183] [Characteristics of grid computing processing] Next, the characteristics of the grid computing process will be described with reference to Fig. 15. In the grid computing process, the control unit 505 performs the following processes.

[0184] 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.

[0185] 15, in grid computing processing, the control unit 505 of the management server 50 causes multiple vehicles 10, among multiple available vehicles 10, whose calculation completion accuracy is below a predetermined threshold, to process the same portion of the job data D1. Hereinafter, a vehicle 10 whose calculation completion accuracy is below the threshold will be referred to as a "low accuracy vehicle 10," and a vehicle 10 whose calculation completion accuracy is not below the threshold will be referred to as a "high accuracy vehicle 10."

[0186] [Matching process details] In the matching process, the control unit 505 of the management server 50 refers to the accuracy table D60 and selects a plurality of low accuracy vehicles 10 from a plurality of available vehicles 10. Next, the control unit 505 selects two or more low accuracy vehicles 10 from the plurality of low accuracy vehicles 10 as "candidates for low accuracy vehicles 10 that constitute a vehicle group," and sets the combination of the selected two or more vehicles 10 as a "vehicle group."

[0187] Next, the control unit 505 refers to the capacity prediction table D56 and determines the vehicles 10 (a group of low-accuracy vehicles 10 and high-accuracy vehicles 10) to process the job data D1 from among the multiple available vehicles 10 so that the "total computing capacity provided to the grid computing process" is equal to or greater than the "computing capacity required to process the job data D1 in the grid computing process." Note that the control unit 505 treats the computing capacity (for example, the minimum value or average value) derived based on the computing capacity of each of the multiple low-accuracy vehicles 10 that make up the vehicle group as the "computing capacity of the vehicle group."

[0188] Next, the control unit 505 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 vehicle 10 that will process the partial job data (a vehicle group of low-accuracy vehicles 10 or a high-accuracy vehicle 10). Upon completing the allocation of the vehicles 10 to the partial job data, the control unit 505 generates assignment information indicating the correspondence between the vehicles 10 and the partial job data (which vehicle 10 will process which partial job data), and vehicle group information indicating the correspondence between the vehicle group and the low-accuracy vehicles 10 (which low-accuracy vehicle 10 is included in which vehicle group).

[0189] Next, the control unit 505 associates the responsibility information and the vehicle group information with the job data D1 and registers them in the matching table D58. As a result, the responsibility information and the vehicle group information are registered in the matching table D58 for each job data D1. In addition, if it is not possible to select multiple low-probability vehicles 10 from multiple available vehicles 10, the control unit 505 refers to the capacity prediction table D56 without setting the above-mentioned vehicle group, and determines the vehicle 10 to process the job data D1 from multiple available vehicles 10.

[0190] [Details of grid computing processing] In the grid computing process, the control unit 505 of the management server 50 divides the job data D1 to be processed in the grid computing process into a plurality of partial job data. Next, the control unit 505 refers to the handling information registered in the matching table D58, and transmits each of the plurality of partial job data to the vehicle 10 that is to process the partial job data.

[0191] Specifically, the control unit 505 performs the following process to transmit the same partial job data to each of the plurality of low-accuracy vehicles 10 that constitute a vehicle group. First, the control unit 505 references the vehicle group information registered in the matching table D58, and duplicates the partial job data so that the same number of pieces of partial job data are obtained as the number of low-accuracy vehicles 10 that constitute the vehicle group. Then, the control unit 505 transmits the plurality of partial job data obtained by the duplication to each of the plurality of low-accuracy vehicles 10 that constitute the vehicle group.

[0192] In the example of FIG. 15, of the four vehicles 10, three vehicles 10 are "low-accuracy vehicles 10" and one vehicle 10 is "high-accuracy vehicle 10." The three low-accuracy vehicles 10 form one vehicle group. Of the two partial job data obtained by dividing job data D1, the first partial job data labeled "1" is transmitted to each of the three low-accuracy vehicles 10, and the second partial job data labeled "2" is transmitted to one high-accuracy vehicle 10.

[0193] Each of the plurality of low-accuracy vehicles 10 constituting one vehicle group calculates the same partial job data (the same part of job data D1) transmitted from the control unit 505. As a result, each of the plurality of low-accuracy vehicles 10 obtains partial calculation result data (part of calculation result data D2) indicating the calculation result of the partial job data. Then, each of the plurality of low-accuracy vehicles 10 transmits the partial calculation result data to the control unit 505.

[0194] Similarly, the high-accuracy vehicle 10 calculates the partial job data transmitted from the control unit 505. As a result, partial calculation result data indicating the calculation results of the partial job data is obtained in the high-accuracy vehicle 10. Then, the high-accuracy vehicle 10 transmits the partial calculation result data to the control unit 505.

[0195] The control unit 505 receives the partial calculation result data transmitted from each of the multiple available vehicles 10. Then, the control unit 505 integrates the multiple partial calculation result data to generate calculation result data D2 indicating the calculation result of the job data D1.

[0196] In this example, when partial calculation result data is transmitted to the management server 50 from multiple low-accuracy vehicles 10 that make up a vehicle group, the control unit 505 adopts the partial calculation result data that is first received by the management server 50 from the multiple low-accuracy vehicles 10, and discards the other partial calculation result data.

[0197] Furthermore, when partial calculation result data is transmitted to the management server 50 from a plurality of low-accuracy vehicles 10 that make up a vehicle group, the control unit 505 may check whether or not there is an error in the partial calculation result data by comparing the partial calculation result data transmitted from each of the plurality of low-accuracy vehicles 10. In this case, the control unit 505 adopts "partial calculation result data that has been confirmed to be free of errors" from among the partial calculation result data transmitted from each of the plurality of low-accuracy vehicles 10, and discards the other partial calculation result data.

[0198] [Effects of the embodiment] As described above, in the embodiment, the risk of not being able to obtain the calculation results of the job data D1 can be reduced by having multiple low-probability vehicles 10 (vehicles 10 whose calculation completion probability is below a threshold) process the same part of the job data D1.

[0199] In addition, when multiple available vehicles 10 each process different partial job data (parts of job data), the use of low-accuracy vehicles 10 may be prohibited to avoid the risk of not being able to obtain calculation results for the partial job data. In this case, the low-accuracy vehicles 10 cannot be used effectively. On the other hand, in the embodiment, multiple low-accuracy vehicles 10 can be made to process the same part of the job data D1, so the low-accuracy vehicles 10 can be used effectively.

[0200] (Modification 1 of the embodiment) Next, a first modification of the embodiment will be described with reference to Fig. 16. The first modification of the embodiment differs from the first embodiment in the way that low-accuracy vehicles 10 are divided into vehicle groups. Other processing in the first modification of the embodiment is the same as the processing in the embodiment.

[0201] In the first variant of the embodiment, the calculation completion accuracy of the vehicle 10 is classified into three levels: "high," "medium," and "low." "High" indicates that the calculation completion accuracy does not fall below a first threshold. "Medium" indicates that the calculation completion accuracy falls below the first threshold but does not fall below a second threshold (a value lower than the first threshold). "Low" indicates that the calculation completion accuracy falls below the second threshold.

[0202] The first threshold value is a threshold value for determining whether the vehicle 10 is a "low-accuracy vehicle 10" or a "high-accuracy vehicle 10." In the first modified example of the embodiment, a vehicle 10 whose calculation completion accuracy is "low" or "medium" is a "low-accuracy vehicle 10," and a vehicle 10 whose calculation completion accuracy is "high" is a "high-accuracy vehicle 10."

[0203] As shown in FIG. 16, in the first modification of the embodiment, a group of multiple vehicles (a combination of multiple low-accuracy vehicles 10 that process the same part of the job data D1) is formed.

[0204] Furthermore, in the first modified example of the embodiment, the lower the calculation completion accuracy of each of the plurality of low-accuracy vehicles 10 that process the same portion of the job data D1, the greater the number of the plurality of low-accuracy vehicles 10. In other words, the lower the calculation completion accuracy of each of the plurality of low-accuracy vehicles 10 that make up one vehicle group, the greater the number of low-accuracy vehicles 10 that make up that one vehicle group.

[0205] In the example of FIG. 16, three vehicles 10 with a "low" calculation completion probability form a first vehicle group that processes the first partial job data that is part of job data D1. Two vehicles 10 with a "medium" calculation completion probability form a second vehicle group that processes the second partial job data that is part of job data D1. One vehicle 10 with a "high" calculation completion probability processes the third partial job data (partial job data marked "3" in the figure) that is part of job data D1.

[0206] The calculation completion probability of the vehicles 10 constituting the first vehicle group ("low" in this example) is lower than the calculation completion probability of the vehicles 10 constituting the second vehicle group ("medium" in this example). The number of vehicles 10 constituting the first vehicle group (three in this example) is greater than the number of vehicles 10 constituting the second vehicle group (two in this example).

[0207] [Matching process] In the matching process of the first modified example of the embodiment, the control unit 505 of the management server 50 refers to the accuracy table D60 and classifies the plurality of low-accuracy vehicles 10 into a plurality of groups based on the calculation completion accuracy of each of the plurality of low-accuracy vehicles 10. In this example, the plurality of low-accuracy vehicles 10 are classified into a first group having a calculation completion accuracy of "low" and a second group having a calculation completion accuracy of "medium".

[0208] Next, for each group, the control unit 505 selects two or more vehicles 10 that are "candidates for vehicles 10 that constitute a vehicle group" from among the multiple vehicles 10 included in that group, and sets the combination of the selected two or more vehicles 10 as a "vehicle group." Note that the number of vehicles 10 that constitute a vehicle group is determined for each group so that the lower the calculation completion accuracy of the vehicles 10 included in the group, the greater the number of vehicles 10 that constitute the vehicle group set in that group. Furthermore, if it is not possible to select two or more vehicles 10 with low accuracy from among the multiple available vehicles 10, the control unit 505 does not set the above vehicle group.

[0209] The other steps of the matching process of the first modified example of the embodiment are the same as those of the matching process of the embodiment.

[0210] [Grid Computing Processing] Similar to the grid computing processing of the embodiment, in the grid computing processing of the first variant of the embodiment, the control unit 505 of the management server 50 divides the job data D1 into multiple partial job data and transmits the multiple partial job data to the vehicle fleet and the high-accuracy vehicle 10.

[0211] In the example of Figure 16, the control unit 505 transmits the first partial job data to three low-accuracy vehicles 10 that make up the first vehicle group, transmits the second partial job data to two low-accuracy vehicles 10 that make up the second vehicle group, and transmits the third partial job data to one high-accuracy vehicle 10.

[0212] Other processes in the grid computing process of the first modified example of the embodiment are the same as those in the grid computing process of the embodiment.

[0213] [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.

[0214] Furthermore, in the first modified example of the embodiment, the lower the calculation completion probability of each of the plurality of low-accuracy vehicles 10 (i.e., the plurality of low-accuracy vehicles 10 constituting one vehicle group) that process the same portion of the job data D1, the greater the number of the plurality of low-accuracy vehicles 10 (i.e., the number of low-accuracy vehicles 10 constituting one vehicle group). With this configuration, it is possible to effectively reduce the risk that the calculation result of the job data D1 cannot be obtained.

[0215] (Modification 2 of the embodiment) Next, a second modification of the embodiment will be described. The second modification of the embodiment differs from the embodiment in the method of determining the calculation completion accuracy (accuracy derivation process) of the vehicle 10. Other processes in the second modification of the embodiment are the same as those in the embodiment.

[0216] In the second modification of the embodiment, the calculation completion accuracy of the vehicle 10 varies depending on at least the communication state of the vehicle 10 and the available time of the arithmetic device 105 of the vehicle 10. In other words, the "information usable for deriving the calculation completion accuracy" includes at least the "communication state of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10," and the calculation completion accuracy of the vehicle 10 is derived based on the "information usable for deriving the calculation completion accuracy." Specifically, the "information usable for deriving the calculation completion accuracy" acquired by the control unit 505 in step S45 of the accuracy derivation process includes at least the "communication state of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10." In step S46 of the accuracy derivation process, the control unit 505 derives the calculation completion accuracy of the vehicle 10 based on at least the "communication state of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10."

[0217] The information usable for deriving the calculation completion accuracy of the vehicle 10 may include other information in addition to the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10." Of the information usable for deriving the calculation completion accuracy of the vehicle 10, the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10" may have a greater influence on the derivation of the calculation completion accuracy of the vehicle 10 than other information other than the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10." For example, when deriving the calculation completion accuracy of the vehicle 10, the control unit 505 may weight each piece of information usable for deriving the calculation completion accuracy so that the influence of the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10" is greater. Specifically, the weighting coefficients of the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10" may be greater than the weighting coefficients of the other information.

[0218] Note that the vehicle 10 frequently changes its parking location and does not participate in grid computing while in operation (when a user is using the vehicle 10). Therefore, the communication state and available time of the vehicle 10 are more likely to change significantly than a stationary computing device (e.g., a desktop personal computer). Therefore, in grid computing processing, to improve the likelihood that the calculation of the job data D1 can be completed, it is desirable to use a vehicle 10 with good communication state and long available time of the computing device 105. In other words, of the information that can be used to derive the likelihood of calculation completion, the "communication state of the vehicle 10" and the "available time of the computing device 105 of the vehicle 10" are important.

[0219] [Effects of Modification 2 of the Embodiment] In the first modification of the embodiment, the same effects as those of the embodiment can be obtained.

[0220] In addition, in the second variant of the embodiment, the calculation completion accuracy of the vehicle 10 can be appropriately set by changing the calculation completion accuracy of the vehicle 10 according to at least the "communication status of the vehicle 10" and the "available time of the calculation device 105 of the vehicle 10".

[0221] Furthermore, in the second modified example of the embodiment, among the information that can be used to derive the calculation completion accuracy of the vehicle 10, the "communication status of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10" have a greater influence on the derivation of the calculation completion accuracy of the vehicle 10 than other information except for the "communication status of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10". This allows the "communication status of the vehicle 10" and the "available time of the arithmetic device 105 of the vehicle 10" to be given more importance in deriving the calculation completion accuracy of the vehicle 10, and the calculation completion accuracy of the vehicle 10 can be set appropriately.

[0222] (Modification 3 of the embodiment) Next, a third modification of the embodiment will be described. The third modification of the embodiment differs from the embodiment in the method of determining the number of low-accuracy vehicles 10 that make up one vehicle group. Other processing in the third modification of the embodiment is the same as the processing in the embodiment.

[0223] In the third modification of the embodiment, the longer the expected processing time of the job data D1, the greater the number of low-accuracy vehicles 10 that are made to process the same portion of the job data D1.

[0224] [Expected processing time] The expected processing time is the estimated time required to calculate the job data D1. The expected processing time is estimated based on the amount of job data D1, the computational performance of the vehicle 10 that processes the job data D1, and the like. For example, the greater the amount of job data D1, the longer the expected processing time. The lower the performance of the computation device 105 of the vehicle 10, the longer the expected processing time.

[0225] [Deriving expected processing time] In this example, the control unit 505 derives the expected processing time for job data D1 based on information that can be used to derive the expected processing time. Next, the control unit 505 associates time information indicating the expected processing time for job data D1 with the job data D1 and registers it in the matching table D58. As a result, time information indicating the expected processing time is registered in the matching table D58 for each job data D1.

[0226] Examples of information that can be used to derive the expected processing time include the data volume of the job data D1 and the computing performance of the vehicle 10 that processes the job data D1. For example, the data volume of the job data D1 can be obtained by analyzing the job data D1. The computing performance of the vehicle 10 that processes the job data D1 is derived based on the capacity prediction information D6 about the vehicle 10 registered in the capacity prediction table D56 (a predicted value of the computing capacity available to the computing device 105 of the vehicle 10).

[0227] [Matching process] In the matching process of the second modified example of the embodiment, the control unit 505 refers to the time information registered in the matching table D58, and determines the upper limit number of low-accuracy vehicles 10 that constitute one vehicle group based on the expected processing time of the job data D1 indicated in the time information. Specifically, the longer the expected processing time of the job data D1, the higher the upper limit number of low-accuracy vehicles 10 that constitute one vehicle group.

[0228] The subsequent processes of the matching process of the second modification of the embodiment are the same as the matching process of the embodiment. The control unit 505 determines the vehicle 10 to process the job data D1 from among the multiple available vehicles 10 so that the number of low-accuracy vehicles 10 constituting one vehicle group does not exceed the upper limit number.

[0229] [Relationship between expected job data processing time and number of vehicles with low accuracy] The low-accuracy vehicles 10 include vehicles 10 whose calculation completion accuracy is lower than the threshold due to a relatively short available time for the computing device 105. Therefore, the longer the expected processing time of the job data D1, the more desirable it is to increase the number of low-accuracy vehicles 10 that are caused to process the same part of the job data D1 in order to ensure a sufficient number of low-accuracy vehicles 10 that can be used to calculate the same part of the job data D1.

[0230] [Effects of Modification 3 of the Embodiment] In the third modification of the embodiment, the same effects as those of the embodiment can be obtained.

[0231] Furthermore, in the third modification of the embodiment, the longer the expected processing time of the job data D1, the more low-accuracy vehicles 10 are made to process the same part of the job data D1, thereby ensuring the number of low-accuracy vehicles 10 that can be used to calculate the same part of the job data D1. This makes it possible to appropriately reduce the risk of not being able to obtain calculation results.

[0232] Note that when the calculation of the job data D1 cannot be interrupted, the number of low-probability vehicles 10 that are made to process the same part of the job data D1 may be greater than when the calculation of the job data D1 can be interrupted. An example of when the calculation of the job data D1 cannot be interrupted is when the job data D1 is "public job data."

[0233] Furthermore, when the required time for computing the job data D1 is not strict, such as in scientific and technical calculations, the number of low-accuracy vehicles 10 that are made to process the same portion of the job data D1 may be reduced.

[0234] (Modification of Matching Process) In the above description, the matching process shown in Fig. 17 may be performed instead of the matching process shown in Fig. 13. In this modification, the control unit 505 of the management server 50 performs the following process as appropriate (for example, periodically).

[0235] 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."

[0236] <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."

[0237] 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."

[0238] <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.

[0239] <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.

[0240] 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."

[0241] 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.

[0242] (Other embodiments) In the above description, an example has been given in which the management server 50 and the vehicle 10 communicate directly without going through another vehicle 10, but this is not limiting. For example, the management server 50 and the vehicle 10 may communicate indirectly via another vehicle 10.

[0243] In addition, in the above description, an example has been given in which the partial calculation result data received first by the management server 50 is adopted from among the partial calculation result data transmitted from each of the plurality of low-accuracy vehicles 10, but this is not limiting. For example, the control unit 505 of the management server 50 may adopt the partial calculation result data transmitted from the vehicle 10 with the highest calculation completion accuracy from among the partial calculation result data transmitted from each of the plurality of low-accuracy vehicles 10.

[0244] 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.

[0245] 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.

[0246] 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.

[0247] 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.

[0248] In the above description, the arithmetic device 105 may be configured with a single arithmetic unit, or may be configured with multiple arithmetic units.

[0249] 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.

[0250] 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).

[0251] 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]

[0252] As described above, the technology disclosed herein is useful as a grid computing technology. [Explanation of symbols]

[0253] 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

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 causes a plurality of low-probability mobile objects, among the plurality of available mobile objects, whose calculation completion probabilities indicating the likelihood of completing calculation of the job data are below a predetermined threshold, to process the same portion of the job data in the grid computing process; The longer the expected processing time of the job data, the greater the number of the plurality of low-probability moving bodies that are caused to process the same portion of the job data. A management device characterized by:

2. 2. The management device of claim 1, The lower the probability of completion of calculation for each of the plurality of low-probability moving bodies processing the same portion of the job data, the greater the number of the plurality of low-probability moving bodies. A management device characterized by:

3. 3. The management device according to claim 1, the calculation completion probability of the moving body is derived based on information that can be used to derive the calculation completion probability of the moving body; the information usable for deriving the calculation completion probability of the mobile unit includes at least a communication state of the mobile unit and an available time of a computing device of the mobile unit; Among the information that can be used to derive the calculation completion accuracy of the mobile body, the communication state of the mobile body and the available time of the calculation device of the mobile body have a greater influence on the deriving of the calculation completion accuracy of the mobile body than other information other than the communication state of the mobile body and the available time of the calculation device of the mobile body. A management device characterized by:

4. 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 from a management device, the method comprising: the management device transmits the same portion of the job data to a plurality of low-probability mobile bodies among the plurality of available mobile bodies, the mobile bodies having a calculation completion probability indicating a probability that the calculation of the job data can be completed below a predetermined threshold; processing the same portion of the job data by the plurality of low-accuracy moving bodies; The longer the expected processing time of the job data, the greater the number of the plurality of low-probability moving bodies that are caused to process the same portion of the job data. A processing method characterized by:

Citation Information

Patent Citations

  • Distributed processing system and onboard terminal

    JP2007087273A

  • Selection device, device selecting method, and program

    JP2018147340A