Control device and processing method

The management device addresses processing delays by reducing job data on mobile devices with low bandwidth, ensuring efficient utilization and timely completion.

JP7841244B2Active Publication Date: 2026-04-07MAZDA MOTOR CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-12-21
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing grid computing systems fail to consider the impact of reduced mobile communication bandwidth on in-vehicle terminals, leading to prolonged processing times.

Method used

A management device that processes job data by reducing its amount when communication bandwidth falls below a threshold, allowing job data to be processed on mobile devices with lower bandwidth while maintaining computational accuracy.

Benefits of technology

This approach shortens processing time and effectively utilizes mobile devices with reduced communication bandwidth, preventing processing delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007841244000001
    Figure 0007841244000001
  • Figure 0007841244000002
    Figure 0007841244000002
  • Figure 0007841244000003
    Figure 0007841244000003
Patent Text Reader

Abstract

To prevent extension of the processing time due to reduction in bandwidth of a mobile body.SOLUTION: If job data is allowable data allowing for reduction of calculation accuracy and a bandwidth of a mobile body 10 assigned to the job data out of a plurality of mobile bodies 10 is lower than a predetermined threshold, a controller 505 processes the job data so as to reduce the data volume of the job data and causes the mobile body 10 to process the processed job data.SELECTED DRAWING: Figure 12
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

[0002] Patent Document 1 discloses a distributed processing system composed of a base station and an in-vehicle terminal that can be connected to each other by wireless communication. The base station has resource information storage means and processing allocation means. The resource information storage means stores resource information, which is information regarding the computing resources of the in-vehicle terminal functioning as a computing node. The processing allocation means identifies the in-vehicle terminal that executes the requested processing based on the resource information, and causes the identified in-vehicle terminal to execute the processing. The in-vehicle terminal has resource information registration means and computing means. The resource information registration means transmits the resource information of its own terminal to the base station and registers its own terminal as a computing node in the distributed processing system. The computing means executes the processing assigned from the base station.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the system of Patent Document 1, when causing an in-vehicle terminal (an example of a computing device mounted on a moving body) to execute the requested processing, the communication bandwidth of the in-vehicle terminal is not considered. Note that as the communication bandwidth of the in-vehicle terminal becomes lower, it becomes more difficult to smoothly communicate with the in-vehicle terminal, and the time required for communication with the in-vehicle terminal becomes longer. As a result, the time (processing time) until the in-vehicle terminal completes the requested processing becomes longer.

[0005] The technology disclosed herein has been developed in view of the above, and its purpose is to suppress the prolongation of processing time caused by a decrease in mobile communication bandwidth. [Means for solving the problem]

[0006] The technology disclosed herein relates to a management device for managing grid computing processing, in which multiple mobile devices, each having a computing device, process job data. The management device includes a control unit that, in the grid computing processing, processes the job data such that the amount of data in the job data is reduced when the job data is acceptable data for which a decrease in computational accuracy is permissible, and the communication bandwidth of one of the multiple mobile devices assigned to the job data falls below a predetermined threshold, and then processes the processed job data on the mobile device.

[0007] In the above configuration, the amount of job data can be reduced, thereby shortening the time required to process the job data (processing time). This can suppress the prolongation of processing time caused by a decrease in mobile communication bandwidth.

[0008] Furthermore, in the management device, the control unit may associate the calculation result data obtained by having the processed job data processed by the mobile unit with information indicating that the calculation result data was obtained by having the processed job data processed by the mobile unit.

[0009] In the above configuration, by referring to the information associated with the calculation result data obtained based on job data that has been processed to reduce the amount of data, it is possible to identify that the calculation result data is "calculation result data obtained based on job data that has been processed to reduce the amount of data".

[0010] Furthermore, in the management device, the control unit may process the job data such that the amount of data in the job data decreases as the communication bandwidth of the mobile device assigned to the job data, which is the permissible data, falls below the threshold.

[0011] In the above configuration, the amount of job data reduction can be increased as the mobile device's communication bandwidth falls below the threshold. This allows for appropriate setting of the job data volume according to the mobile device's communication bandwidth.

[0012] Furthermore, in the management device, the control unit may determine that the job data is acceptable data if the job data satisfies an acceptable condition, which is a condition under which a decrease in calculation accuracy is permissible. The acceptable condition may include at least one of the following: an accuracy condition, where the calculation accuracy required for the job data is lower than a predetermined standard accuracy; and a delivery date condition, where the remaining time until the delivery date required for the job data is shorter than a predetermined standard time.

[0013] In the above configuration, by determining whether job data is acceptable data based on an acceptance condition that includes at least one of the accuracy condition and the delivery date condition, it is possible to appropriately determine the job data based on at least one of the "calculation accuracy required for the job data" and the "delivery date required for the job data".

[0014] Furthermore, in the management device, the control unit may, in a matching process performed before the grid computing process and which assigns a mobile entity to process the job data, preferentially assign to the job data a mobile entity among the plurality of mobile entities whose communication bandwidth is below the threshold when the job data is the acceptable data.

[0015] In the above configuration, in grid computing processing, job data, which is the acceptable data, can be processed by "mobile devices whose communication bandwidth falls below the threshold" among multiple mobile devices. This makes it possible to effectively utilize mobile devices with communication bandwidth below the threshold as computing resources.

[0016] Furthermore, in the management device, the threshold may be set to the amount of job data transferred per unit time required by the mobile device in order to complete the processing of the job data by the deadline required for the job data.

[0017] In the above configuration, it is possible to determine whether the mobile device's communication bandwidth (specifically, the amount of data that can be transferred per unit time) is insufficient, based on the amount of job data that the mobile device needs to transfer per unit time in order to complete the processing of the job data by the deadline required for the job data. This makes it possible to appropriately select mobile devices that are experiencing insufficient communication bandwidth (i.e., mobile devices that should send job data that has been processed so that the amount of data is reduced in grid computing processing).

[0018] Furthermore, the technology disclosed herein relates to a processing method for causing a plurality of mobile devices, each having a computing device, to process job data transmitted from a management device, wherein the management device processes the job data so as to reduce the amount of data in the job data when the job data is acceptable data in which a decrease in calculation accuracy is permissible, and the communication bandwidth of one of the plurality of mobile devices assigned to the job data falls below a predetermined threshold, transmits the processed job data to the mobile device, and processes the processed job data on the mobile device.

[0019] The method described above reduces the amount of job data, thereby shortening the time required to process the job data (processing time). This helps to suppress the prolongation of processing time caused by a decrease in mobile communication bandwidth. [Effects of the Invention]

[0020] According to the technology disclosed herein, it is possible to suppress the elongation of the processing time due to the reduction of the communication band of the moving body.

Brief Description of Drawings

[0021] [Figure 1] It is a schematic diagram illustrating the configuration of the system of the embodiment. [Figure 2] It is a conceptual diagram for explaining grid computing. [Figure 3] It is a block diagram illustrating the configuration of the vehicle. [Figure 4] It is a block diagram illustrating the configuration of the client server. [Figure 5] It is a block diagram illustrating the configuration of the management server. [Figure 6] It is a flowchart illustrating the job reception process. [Figure 7] It is a flowchart illustrating the position prediction process. [Figure 8] It is a flowchart illustrating the ability prediction process. [Figure 9] It is a flowchart illustrating the communication prediction process. [Figure 10] It is a flowchart illustrating the matching process. [Figure 11] It is a flowchart illustrating the grid computing process. [Figure 12] It is a conceptual diagram for explaining the characteristics of the grid computing process. [Figure 13] It is a flowchart illustrating a part of the details of the grid computing process. [Figure 14] It is a flowchart illustrating the confirmation process of Modification 3 of the embodiment. [Figure 15] It is a flowchart illustrating a part of the matching process of Modification 4 of the embodiment.

Modes for Carrying Out the Invention

[0022] The embodiments will be described in detail below with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals, and their descriptions will not be repeated.

[0023] (Embodiment) Figure 1 illustrates the configuration of System 1 in an embodiment. This System 1 comprises a plurality of vehicles 10, a client server 20, and a management server 50. These components can communicate with each other via a communication network 5 (communication line). Furthermore, these components communicate with each other as needed to send and receive various information and data. Each of the plurality of vehicles 10 is equipped with a computing device 105. Note that System 1 may also be provided with a plurality of client servers 20.

[0024] [Grid Computing] As shown in Figure 2, in the system 1 of this embodiment, a grid computing (distributed processing system) is configured using vehicles 10 selected from among multiple vehicles 10, and grid computing processing is performed in which job data is processed by the available vehicles 10 (specifically, the computing devices 105 mounted on the vehicles 10).

[0025] Furthermore, when the vehicle 10 requires the computing power of the arithmetic unit 105, the arithmetic unit 105 becomes operational and its computing power is utilized. For example, when the vehicle 10 is in motion, the computing power of the arithmetic unit 105 is required for controlling the vehicle's movement, and the arithmetic unit 105 becomes operational.

[0026] On the other hand, when the computing power of the arithmetic unit 105 is no longer needed in the vehicle 10, the arithmetic unit 105 will be shut down, and its computing power will no longer be utilized. For example, when the vehicle 10 is stopped and the power to the vehicle 10 is turned off, the computing power of the arithmetic unit 105 is no longer needed, and the arithmetic unit 105 will be shut down.

[0027] In this case, when the computing power of the arithmetic unit 105 is not needed in the vehicle 10, it is possible to effectively utilize the computing power of the arithmetic unit 105 by providing it to grid computing processing. For example, it is desirable to provide the computing power of the arithmetic unit 105 to grid computing processing while the vehicle 10 is stopped.

[0028] In the following description, the computing power that vehicle 10 can provide for grid computing processing will be referred to as "available computing power." The period during which vehicle 10's available computing power can be provided for grid computing processing will be referred to as "available period."

[0029] 〔vehicle〕 Vehicle 10 is owned by the user. The user drives Vehicle 10. In this example, Vehicle 10 is a four-wheeled automobile. Vehicle 10 is also equipped with a battery (not shown). Power from the battery is supplied to in-vehicle equipment such as the computing unit 105. Examples of such a vehicle 10 include electric vehicles and plug-in hybrid vehicles. Vehicle 10 is also capable of communication using vehicle-to-vehicle network communication (V2N) and vehicle-to-vehicle communication (V2V).

[0030] As shown in Figure 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.

[0031] Actuators 11 include drive system actuators, steering system actuators, braking system actuators, etc. Examples of drive system actuators include engines, transmissions, and motors. Examples of braking system actuators include brakes. Examples of steering system actuators include steering wheels.

[0032] Sensor 12 acquires various types of information used to control the vehicle 10. Examples of sensors 12 include an external camera for imaging the area outside the vehicle, an internal camera for imaging the area inside the vehicle, a radar for detecting objects outside the vehicle, a vehicle speed sensor, an acceleration sensor, a yaw rate sensor, an accelerator pedal position sensor, a steering sensor, and a brake hydraulic pressure sensor.

[0033] The input unit 101 receives information and data. Examples of the input unit 101 include an operation unit that inputs information corresponding to the operation it is operated on, a camera that inputs images representing information, and a microphone that inputs audio representing information. Examples of operation units include operation buttons and touch sensors on a car navigation system. The information and data input to the input unit 101 are sent to the arithmetic unit 105.

[0034] The output unit 102 outputs information or 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 system, and an example of a speaker is the speaker of a car navigation system.

[0035] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 are sent to the computing unit 105.

[0036] The memory unit 104 stores information and data.

[0037] The arithmetic unit 105 controls various parts of the vehicle 10. In this example, the arithmetic unit 105 controls the actuators 11 according to various information obtained from the sensors 12. The arithmetic unit 105 communicates with external devices (such as components of system 1) via the communication unit 103. The arithmetic unit 105 appropriately updates the information and data stored in the storage 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.

[0038] The arithmetic unit 105 includes a processor, memory, and other components. Examples of processors include CPUs (Central Processing Units) and GPUs (Graphics Processing Units). The memory stores programs for operating the processor, as well as information and data indicating the processor's processing results. The various functions of the arithmetic unit 105 are realized when the processor (computer) executes the programs stored in the memory.

[0039] The number of processors installed in the arithmetic unit 105 may be one or more. Furthermore, the processors installed in the arithmetic unit 105 may be either a CPU or a GPU, or both. In this example, the arithmetic unit 105 has both a CPU and a GPU. For example, the arithmetic unit 105 is composed of one or more ECUs (Electronic Control Units).

[0040] In this example, the storage unit 104 stores vehicle basic information D11, arithmetic unit information D12, vehicle status information D13, driving management information D14, operation management information D15, and communication management information D16.

[0041] <Basic Vehicle Information> Vehicle Basic Information D11 is basic information about vehicle 10. For example, vehicle basic information D11 includes the vehicle ID set for vehicle 10, the user ID set for the user who owns the vehicle, and vehicle performance information indicating the vehicle's performance. The ID is information for identification (identification information).

[0042] <Calculation unit information> The arithmetic unit information D12 is information about the arithmetic unit 105 installed in the vehicle 10. For example, the arithmetic unit information D12 includes the arithmetic unit ID set for the arithmetic unit 105, and arithmetic unit performance information indicating the performance of the arithmetic unit 105. The performance of the arithmetic unit 105 shown in the arithmetic unit performance information includes the computing power of the arithmetic unit 105 (specifically, the maximum computing power), the ratio of CPU to GPU in the arithmetic unit 105, the communication performance of the arithmetic unit 105, and the computing performance of the arithmetic unit 105. For example, the computing power of the arithmetic unit 105 is indicated by the number of arithmetic instructions that can be processed per unit time.

[0043] <Vehicle condition information> Vehicle status information D13 indicates the status of vehicle 10. In this example, vehicle status information D13 includes vehicle location information, vehicle calculation information, vehicle communication information, vehicle power information, vehicle battery level information, vehicle charging information, vehicle function information, etc.

[0044] Vehicle position information indicates the location of vehicle 10 (specifically, its latitude and longitude). For example, vehicle position information can be obtained using GPS (Global Positioning System). Vehicle calculation information indicates the operating status of the calculation unit 105 mounted on vehicle 10. Vehicle communication information indicates the communication status of vehicle 10. Vehicle power information indicates the power status of vehicle 10. For example, vehicle power information indicates whether the ignition power is on or off, whether the accessory power is on or off, etc.

[0045] The vehicle battery charge information indicates the remaining charge of the battery (not shown) installed in vehicle 10. The vehicle charging information indicates whether vehicle 10 is being charged at a charging facility (not shown) capable of charging vehicle 10's battery. The vehicle function information indicates the usage status of various functions of vehicle 10. An example of a function of vehicle 10 is OTA (Over The Air).

[0046] The computing unit 105 monitors the status of the vehicle 10 and updates the vehicle status information D13 as appropriate (for example, periodically) based on the results of the monitoring.

[0047] <Driving Management Information> The driving management information D14 shows the driving history (past driving status) and driving schedule (future driving status) of vehicle 10. In other words, the driving management information D14 shows where vehicle 10 was (or is scheduled to be) at what time and on what driving route. For example, the driving management information D14 shows the driving route, location, and time of vehicle 10 in association.

[0048] The calculation unit 105 updates the driving management information D14 as appropriate (for example, periodically). For example, the calculation unit 105 monitors the driving status of the vehicle 10 and updates the driving history of the vehicle 10 shown in the driving management information D14 based on the results of the monitoring.

[0049] Furthermore, when the computing unit 105 acquires information that can be used to estimate the driving status of the vehicle 10, it updates the driving status of the vehicle 10 shown in the driving management information D14 based on that information. Examples of information that can be used to estimate the driving status of the vehicle 10 include the vehicle 10's driving history and car navigation information showing the planned driving schedule.

[0050] The travel management information is an example of location management information that shows the movement history (past locations) and planned movements (future locations) of vehicle 10. The location management information shows where vehicle 10 was (or is planned to be) at what time. For example, the location management information shows the location of vehicle 10 in relation to the time.

[0051] <Operation Management Information> Operation management information D15 shows the operation history (past computing capacity utilization rate) and planned operation (future computing capacity utilization rate) of the computing device 105 installed in the vehicle 10. In other words, operation management information D15 shows what the computing capacity utilization rate of the vehicle 10 was (or is expected to be) at what time. For example, operation management information D15 shows the computing capacity utilization rate of the computing device 105 in relation to the time.

[0052] The operating status (utilization rate of computing power) of the vehicle 10's computing unit 105 shown in the operation management information D15 represents the operating status for purposes other than grid computing processing. Examples of such other purposes include the operation of the vehicle 10 and the control of various functions of the vehicle 10.

[0053] The arithmetic unit 105 updates the operation management information D15 as appropriate (for example, periodically). For example, the arithmetic unit 105 monitors its utilization rate (utilization rate of computing power) and updates the past utilization rate of the arithmetic unit 105 shown in the operation management information D15 based on the results of that monitoring.

[0054] Furthermore, when the arithmetic unit 105 acquires information that can be used to estimate its operating status, it updates the operating status of the arithmetic unit 105 as shown in the operating management information D15 based on that information. Examples of information that can be used to estimate the operating status of the arithmetic unit 105 include car navigation information showing the vehicle 10's driving history and driving schedule, and driving management information D14.

[0055] <Communication Management Information> Communication management information D16 shows the communication history (past communication status) and communication schedule (future communication status) of vehicle 10. In other words, communication management information D16 shows what the communication status of vehicle 10 was (or what it is scheduled to be) at what time. Specifically, for each device that vehicle 10 communicates with, communication management information D16 shows the communication status (past and future communication status) between that device and vehicle 10. For example, for each device that vehicle 10 communicates with, communication management information D16 shows the relationship between "the communication status between that device and vehicle 10 (whether communication is possible or not)", "the location of vehicle 10", and "the time".

[0056] In this example, communication management information D16 indicates the communication status between vehicle 10 and management server 50. The communication status between vehicle 10 and management server 50 includes the communication status between "vehicle 10" and "relay device (not shown) that relays communication between vehicle 10 and management server 50," and the communication status between the relay device and management server 50. Examples of relay devices include base stations of the communication network 5, and communication equipment installed in homes and facilities.

[0057] The communication status includes information such as communication quality and communication bandwidth. Information regarding communication quality includes latency, throughput, packet loss, error rate, and the number of communication interruptions. For example, the computing unit 105 obtains this information by sending and receiving test signals with the equipment that is the communication partner of the vehicle 10. Information regarding communication quality may include some of the latency, throughput, packet loss, error rate, and the number of communication interruptions, or all of these, or it may include other information correlated with these.

[0058] Communication bandwidth indicates the amount of data that can be transferred per unit time by vehicle 10. Note that communication bandwidth is affected by communication quality. For example, the lower the communication quality, the lower the communication bandwidth (effective communication bandwidth).

[0059] The arithmetic unit 105 updates the communication management information D16 as appropriate (for example, periodically). For example, the arithmetic unit 105 monitors the communication status of the vehicle 10 on which it is installed, and updates the communication history of the vehicle 10 shown in the communication management information D16 based on the results of that monitoring.

[0060] Furthermore, when the computing unit 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 shown in the communication management information D16 based on that information. Examples of information that can be used to estimate the communication status of the vehicle 10 include car navigation information showing the vehicle 10's driving history and driving schedule, and driving management information D14.

[0061] [Client-Server] The client-server 20 is owned by the client. The client requests the calculation of job data. Examples of clients include companies, research institutions, and educational institutions.

[0062] As shown in Figure 4, the client server 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 receives information and data. Examples of the input unit 201 include an operation unit that inputs information corresponding to the operation performed, a camera that inputs images representing information, and a microphone that inputs audio representing information. Examples of operation units include operation buttons, touch sensors, keyboards, and mice. The information and data input to the input unit 201 are sent to the control unit 205.

[0064] The output unit 202 outputs information or 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 203 are sent to the control unit 205.

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

[0067] The control unit 205 controls each part of the client server 20. The control unit 205 communicates with external devices (for example, components of system 1) via the communication unit 203. Based on the information and data input to the input unit 201 and the information and data received via the communication unit 203, the control unit 205 appropriately updates the information and data stored in the storage unit 204.

[0068] The control unit 205 includes a processor, memory, and other components. The memory stores programs for operating the processor, as well as information and data indicating the processor's processing results. The various functions of the control unit 205 are realized when the processor (computer) executes the programs stored in the memory.

[0069] In this example, the storage unit 204 stores client information D21 and job data D1.

[0070] <Client Information> Client information D21 is information about the client. Client information D21 includes the client ID set for the client, the client server ID set for the client server 20 owned by the client, the name of the person in charge, address, telephone number, etc.

[0071] <Job Data> Job data D1 is data corresponding to a job and is processed for the execution of that job. Job data D1 can be classified into several types.

[0072] For example, job data D1 can be classified by computation type. Examples of computation types include CPU-based computation types and GPU-based computation types. Job data D1 of the CPU-based computation type tends to require complex calculations with many conditional branches, such as simulation calculations. Job data D1 of the GPU-based computation type tends to require a large amount of simple calculations, such as image processing and machine learning.

[0073] Furthermore, job data D1 can be classified according to processing conditions. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. In job data D1 with processing conditions that require constant communication, it is required that vehicle 10 be able to communicate at all times during grid computing processing. In job data D1 with processing conditions that do not require constant communication, it is not required that vehicle 10 be able to communicate at all times during grid computing processing.

[0074] In addition to the data to be processed, job data may also include programs and other information necessary for the calculation process.

[0075] <Job Information> The memory unit 204 may also store job information related to the job. The job information includes job name information indicating the name of the job, job content information describing the content of the job, job data information relating to the job data corresponding to the job, and job delivery date information indicating the delivery date of the job. The job data information indicates the type of job data (for example, the calculation type and processing conditions of the job data), the required computation amount (for example, the amount of data in the job data) which is the amount of computation required to calculate the job data.

[0076] [Management Server] The management server 50 manages the operation of System 1, which constitutes grid computing. The management server 50 is owned by the operator of System 1. The management server 50 is an example of a management device for managing grid computing.

[0077] As shown in Figure 5, the management server 50 comprises an input unit 501, an output unit 502, a communication unit 503, a storage unit 504, and a control unit 505. The configuration of the input unit 501, output unit 502, communication unit 503, storage unit 504, and control unit 505 of the management server 50 is the same as the configuration of the input unit 201, output unit 202, communication unit 203, storage unit 204, and control unit 205 of the client server 20.

[0078] In this example, the storage unit 504 stores the user table D50, the vehicle table D51, the client table D52, the job table D53, the location prediction table D54, the capacity prediction table D55, the communication prediction table D56, the matching table D57, the job data D1, and the calculation result data D2.

[0079] <User Table> User table D50 is a table for managing users. User table D50 registers, for each user, the user ID set for that user, the vehicle ID set for the vehicle 10 owned by that user, the arithmetic unit ID set for the arithmetic unit 105 owned by that user, and so on. The control unit 505 updates user table D50 as needed.

[0080] <Vehicle Table> Vehicle table D51 is a table for managing vehicle 10. In this example, vehicle table D51 contains, for each vehicle 10, basic vehicle information D11, processing unit information D12, vehicle status information D13, driving management information D14, operation management information D15, communication management information D16, etc.

[0081] The control unit 505 updates the vehicle table D51 as appropriate. Specifically, for each vehicle 10, the control unit 505 communicates with that vehicle 10 as appropriate (for example, periodically) to obtain information about the vehicle 10 (in this example, vehicle basic information D11, arithmetic unit information D12, vehicle status information D13, driving management information D14, operation management information D15, and communication management information D16), and updates the vehicle table D51 based on the obtained information.

[0082] <Client Table> Client table D52 is a table for managing clients. For each client, client table D52 registers the client ID set for that client, the client server ID set for the client server 20 owned by that client, the name of the contact person for that client, address, telephone number, etc. The control unit 505 updates client table D52 as needed.

[0083] <Job Table> Job Table D53 is a table used to manage jobs requested by clients. For each job, Job Table D53 registers the reception number assigned to the job, the client ID assigned to the client who requested the job, the name and details of the job. In addition, Job Table D53 also registers the calculation type and processing conditions for the job data corresponding to the job, the required amount of calculation for the job data, and the deadline set for the job.

[0084] <Location Prediction Table> The position prediction table D54 is a table for managing the prediction results of the position of vehicle 10. In this example, position prediction table D54 registers position prediction information D4 for each vehicle 10. The position prediction information D4 shows the prediction results of the temporal change in the position of vehicle 10. For example, the position prediction information D4 shows the predicted value of the position of vehicle 10 in relation to the time. The process for predicting the temporal change in the position of vehicle 10 (position prediction process) will be explained in detail later.

[0085] <Ability Prediction Table> The capacity prediction table D55 is a table for managing the predicted results of the available computing capacity of vehicle 10. In this example, capacity prediction information D5 for each vehicle 10 is registered in capacity prediction table D55. The capacity prediction information D5 shows the predicted results of the temporal change in the available computing capacity of vehicle 10. For example, the capacity prediction information D5 shows the predicted value of the available computing capacity of vehicle 10 in relation to time. The process for predicting the temporal change in the available computing capacity of vehicle 10 (capacity prediction process) will be explained in detail later.

[0086] <Communication Prediction Table> The communication prediction table D56 is a table for managing the prediction results of the communication status of vehicle 10. In this example, for each vehicle 10, communication prediction information D6 related to that vehicle 10 is registered in the communication prediction table D56. The communication prediction information D6 shows the prediction results of the temporal change in the communication status of vehicle 10. For example, the communication prediction table D56 shows the predicted value of the communication status of vehicle 10 in relation to the time. The process for predicting the temporal change in the communication status of vehicle 10 (communication prediction process) will be explained in detail later.

[0087] <Matching Table> Matching table D57 is a table for managing the results of the matching process described later. Matching table D57 registers, for each job, the reception number set for that job, the job data D1 corresponding to that job, and the vehicle ID set for each of the multiple vehicles 10 assigned to the job data D1 by the matching process.

[0088] <Job Data> The job data D1 stored in the memory unit 504 is the job data D1 received through the job acceptance process described later.

[0089] <Calculation result data> The calculation result data D2 stored in the memory unit 504 shows the calculation result of the job data D1 performed by the grid computing process described later.

[0090] [System processing (management method)] System 1 performs job reception processing, location prediction processing, capacity prediction processing, communication prediction processing, matching processing, and grid computing processing. These processes are examples of management methods for managing grid computing.

[0091] [Job acceptance processing] Next, the job acceptance process will be explained with reference to Figure 6. In the job acceptance process, job data D1 requested by the client is received. For example, the control unit 505 of the management server 50 performs the following processing each time a client requests the calculation of job data D1.

[0092] <Step S11> First, the management server 50 receives job requests from clients. Specifically, the client server 20 sends a job request application to the management server 50 in response to an operation by the client's representative. The control unit 505 of the management server 50 performs the following processing in response to the application.

[0093] The control unit 505 requests the client server 20 to send information necessary for accepting a job (specifically, client information about the client requesting the job and job information about the job). For example, the control unit 505 sends input screen-related information (information summarizing the input format of the request information, etc.) to the client server 20, which is information for displaying a job acceptance screen for entering the information necessary for accepting a job. The control unit 205 of the client server 20 generates an image of the job acceptance screen based on the input screen-related information and outputs (displays) that image to the output unit 202 (display unit).

[0094] The client's representative operates the input unit 201 (operation unit) of the client server 20 to input the necessary information on the job acceptance screen. This inputs client information about the client requesting the job and job information about the job. Once this information has been entered, the control unit 205 of the client server 20 transmits the information (client information and job information) entered on the job acceptance screen to the management server 50. The control unit 505 of the management server 50 receives the client information and job information.

[0095] The control unit 505 then stores the job data D1 in the storage unit 504.

[0096] <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 computation amount, etc. of the job data D1. Then, based on the results of the analysis of the job data D1, the control unit 505 corrects the job information received in step S11.

[0097] If the job information received in step S11 is sufficiently reliable, the processing in step S12 may be omitted.

[0098] <Step S13> Next, the control unit 505 of the management server 50 associates the client information received in step S11 with the job information (or the job information received in step S11) that has been modified as necessary in step S12, and registers it in the job table D53.

[0099] [Position prediction processing] Next, the position prediction process will be explained with reference to Figure 7. In the position prediction process, the control unit 505 of the management server 50 predicts the temporal change in the position of the vehicle 10 based on the driving management information D14 of the vehicle 10 registered in the vehicle table D51. For example, when the driving management information D14 of the vehicle 10 registered in the vehicle table D51 is updated, the control unit 505 performs the following processing for that vehicle 10.

[0100] <Step S21> First, the control unit 505 acquires the driving management information D14 of the vehicle 10 registered in the vehicle table D51. Alternatively, similar to the "updating of driving management information," the control unit 505 may update the driving management information D14 of the vehicle 10 registered in the vehicle table D51 based on information available for estimating the position of the vehicle 10, and then acquire the updated driving management information D14.

[0101] <Step S22> Next, the control unit 505 predicts the temporal change in the position of the vehicle 10 based on the "driving management information D14" of the vehicle 10 acquired in step S21.

[0102] Specifically, the control unit 505 predicts the trend (pattern) of changes in the position of vehicle 10 from the vehicle's position shown in the driving management information D14. This prediction of the trend of changes in the position of vehicle 10 may be achieved by machine learning. Then, based on the trend of changes in the position of vehicle 10, the control unit 505 predicts the temporal change in the position of vehicle 10 (where vehicle 10 is at what time).

[0103] <Step S23> Next, the control unit 505 registers (overwrites) the position prediction table D54 with position prediction information D4, which shows the "temporal change in the position of vehicle 10" predicted in step S22. This updates the position prediction table D54. If the future position (estimated value) of vehicle 10 shown in the driving management information D14 is sufficiently reliable, the future position of vehicle 10 may be registered in the position prediction information D4.

[0104] [Capability prediction processing] Next, the capacity prediction process will be explained with reference to Figure 8. In the capacity prediction process, the control unit 505 of the management server 50 predicts the available computing capacity of a vehicle 10 based on the operational management information D15 of the vehicle 10 registered in the vehicle table D51. For example, when the operational management information D15 of a vehicle 10 registered in the vehicle table D51 is updated, the control unit 505 performs the following processing for that vehicle 10.

[0105] <Step S31> First, the control unit 505 acquires the calculation device information D12 and operation management information D15 of the vehicle 10 registered in the vehicle table D51. Alternatively, similar to the "updating operation management information," the control unit 505 may update the operation management information D15 of the vehicle 10 registered in the vehicle table D51 based on information that can be used to estimate the operating status of the calculation device 105 of the vehicle 10, and acquire the updated operation management information D15.

[0106] <Step S32> Next, the control unit 505 predicts the temporal change in the available computing power of the vehicle 10 based on the "arithmetic unit information D12" and "operation management information D15" of the vehicle 10 acquired in step S31.

[0107] Specifically, the control unit 505 predicts the trend (pattern) of changes in the utilization rate of the computing power of the computing device 105 of the vehicle 10, based on the operating status of the computing device 105 of the vehicle 10 as shown in the operation management information D15. This prediction of the trend in changes in the utilization rate of the computing power of the computing device 105 may be achieved by machine learning. Then, based on the trend in changes in the utilization rate of the computing power of the computing device 105 of the vehicle 10, the control unit 505 predicts the period during which there is surplus computing power in the computing device 105 of the vehicle 10 (the period during which the utilization rate of computing power is less than 100%), and defines that period as "the period during which the computing power 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 power of the computing device 105 of the vehicle 10 is "30%" as the period during which "70%" of the computing power of the computing device 105 of the vehicle 10 can be used for grid computing processing.

[0108] <Step S33> Next, the control unit 505 registers (overwrites) the capability prediction information D5, which shows the "temporal change in the available computing capacity of the vehicle 10" predicted in step S32, into the capability prediction table D55. This updates the capability prediction table D55.

[0109] [Communication prediction processing] Next, the communication prediction process will be explained with reference to Figure 9. In the communication prediction process, the control unit 505 of the management server 50 predicts the temporal change in the communication state of a vehicle 10 based on the communication management information D16 of the vehicle 10 registered in the vehicle table D51. For example, when the communication management information D16 of a vehicle 10 registered in the vehicle table D51 is updated, the control unit 505 performs the following processing for that vehicle 10.

[0110] <Step S41> First, the control unit 505 obtains the communication management information D16 of the vehicle 10 registered in the vehicle table D51. Alternatively, similar to the "updating of communication management information," the control unit 505 may update the communication management information D16 of the vehicle 10 registered in the vehicle table D51 based on information available for estimating the communication status of the vehicle 10, and then obtain the updated communication management information D16.

[0111] <Step S42> Next, the control unit 505 predicts the temporal change in the communication state of the vehicle 10 based on the communication management information D16 of the vehicle 10 acquired in step S41.

[0112] Specifically, the control unit 505 predicts the trend (pattern) of changes in the communication state of vehicle 10 from the vehicle's communication state shown in the communication management information D16. This prediction of the trend of changes in the communication state of vehicle 10 may be achieved by machine learning. Then, based on the trend of changes in the communication state of vehicle 10, the control unit 505 predicts the temporal changes in the communication state of vehicle 10 (what state the communication state of vehicle 10 is at what time).

[0113] <Step S43> Next, the control unit 505 registers (overwrites) the communication prediction information D6, which shows the "temporal change in the communication state of the vehicle 10" predicted in step S42, into the communication prediction table D56. This updates the communication prediction table D56. If the future communication state (estimated value) of the vehicle 10 shown in the communication management information D16 is sufficiently reliable, the future communication state of the vehicle 10 may be registered in the communication prediction information D6.

[0114] [Matching process] Next, the matching process will be explained with reference to Figure 10. The matching process is the process of assigning multiple vehicles 10 to process the job data D1 received in the job acceptance process. For example, the control unit 505 of the management server 50 performs the following process after the completion of the job acceptance process.

[0115] <Step S51> First, the control unit 505 selects a job to be matched from among the jobs registered in the job table D53. Then, the control unit 505 selects the job data D1 corresponding to the job to be matched from among the job data D1 stored in the storage unit 504.

[0116] <Step S52> Next, the control unit 505 selects from among the multiple vehicles 10 that are capable of providing computing power for grid computing processing of the job data D1, and assigns the selected multiple vehicles 10 to the job data D1.

[0117] Specifically, the control unit 505 derives the available computing capacity and available period for each of the multiple vehicles 10 based on the location prediction information D4 for each of the multiple vehicles 10 registered in the location prediction table D54, the capacity prediction information D5 for each of the multiple vehicles 10 registered in the capacity prediction table D55, and the communication prediction information D6 for each of the multiple vehicles 10 registered in the communication prediction table D56. In this example, the available period for a vehicle 10 is the period during which the computing capacity of the vehicle 10's arithmetic unit 105 is available, the vehicle 10 is able to communicate, and the vehicle 10 is located within a predetermined range (region).

[0118] Next, the control unit 505 determines the scheduled calculation period, which is the period during which grid computing processing will be performed on the job data D1, and selects from among the multiple vehicles 10 that have a portion or all of their available periods overlap with the scheduled calculation period as "candidate vehicles 10 to be assigned to job data D1". Then, the control unit 505 selects from among the multiple vehicles 10 selected as "candidate vehicles 10 to be assigned to job data D1" to assign to job data D1 such that "the total amount of available computing power for each of the multiple vehicles 10 assigned to job data D1 during the scheduled calculation period (the period during which grid computing processing will be performed)" is equal to or greater than "the required computing power for job data D1 (the amount of computing power required to calculate job data D1 in grid computing processing)".

[0119] The available computing power of vehicle 10 during the scheduled calculation period may be a quantity corresponding to the product of "the length of time (available time) of the period of vehicle 10's available period that overlaps with the scheduled calculation period" and "the available computing power of vehicle 10 during the overlapping period between vehicle 10's available period and the scheduled calculation period." The available computing power of vehicle 10 during the overlapping period may be the average value of the available computing power during the overlapping period, the integral value of the available computing power during the overlapping period, or a representative value selected from the available computing power during the overlapping period.

[0120] <Step S53> Next, the control unit 505 registers matching information in the matching table D57, indicating which vehicle 10 is assigned to which job data D1. This updates the matching table D57. For example, the matching information includes the reception number set for the job corresponding to job data D1 and the vehicle ID set for each of the multiple vehicles 10 assigned to that job data D1.

[0121] [Grid computing processing] Next, the grid computing process will be explained with reference to Figure 11. In the grid computing process, multiple vehicles 10 assigned to job data D1 in the matching process are made to process job data D1. For example, the control unit 505 of the management server 50 performs the following processing after the matching process is completed. The grid computing process is an example of a processing method that makes multiple vehicles 10 process job data sent from the management server 50.

[0122] <Step S61> First, the control unit 505 refers to the matching table D57 and distributes the job data D1, which is the target of grid computing processing, to the multiple vehicles 10 assigned to that job data D1 in the matching process. Specifically, the control unit 505 sends a portion of the job data D1 (partial job data) 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 multiple vehicles 10 assigned to that job data D1.

[0123] <Step S62> Next, when each of the vehicles 10 completes the calculation of the partial job data (part of the job data D1) that it has sent to it, it sends the partial calculation result data (part of the calculation result data D2) obtained from that calculation to the management server 50. The control unit 505 of the management server 50 receives the partial calculation result data sent from the vehicles 10 and stores the partial calculation result data in the storage unit 504.

[0124] <Step S63> The control unit 505 determines in step S61 whether all of the multiple vehicles 10 to which the job data D1 was distributed have completed the calculation. If all of the vehicles 10 have completed the calculation, the process in step S64 is performed; otherwise, the process in step S62 is performed.

[0125] <Step S64> Once all of the vehicles 10 have completed their calculations, the control unit 505 combines the partial calculation result data stored in the storage unit 504 to generate calculation result data D2 (calculation result data D2 showing the result of the calculation of job data D1) corresponding to the job data D1 that is subject to grid computing processing. The control unit 505 then sends the calculation result data D2 corresponding to the job data D1 that is subject to grid computing processing to the client server 20 of the client that requested the calculation of the job data D1.

[0126] <Step S65> Next, users who provide the computing power of the vehicle 10's arithmetic unit 105 for grid computing processing are rewarded by the operator of System 1. Examples of rewards given to users include points usable in System 1, virtual currency, and discounts on products.

[0127] For example, the control unit 505 of the management server 50 performs processing to reward users who have provided the computing power of the vehicle 10's arithmetic unit 105 for grid computing processing. Examples of processing to reward include registering the user's assigned "user ID" and the "points" (or virtual currency) available in system 1 in the user table D50, and sending information indicating product discount benefits to the user's terminal (not shown). Note that information indicating rewards may also be registered for each job in the job table D53.

[0128] Furthermore, users who provide the computing power of the vehicle 10's arithmetic unit 105 for grid computing processing may be rewarded by the client. For example, the control unit 205 of the client server 20 may execute a process to reward users who provide the computing power of the vehicle 10's arithmetic unit 105 for grid computing processing.

[0129] [Characteristics of grid computing processing] Next, we will explain the characteristics of grid computing processing with reference to Figure 12.

[0130] In grid computing processing, if the job data D1 is acceptable data for which a decrease in calculation accuracy is permitted, and the communication bandwidth of one of the vehicles 10 assigned to that job data D1 (the acceptable job data D1) falls below a predetermined threshold, the control unit 505 of the management server 50 processes the job data D1 so that the amount of data in the job data D1 is reduced, and then has that vehicle 10 (the vehicle 10 whose communication bandwidth falls below the threshold) process the processed job data D1.

[0131] In the example shown in Figure 12, job data D1 is divided into three partial job data, and the three divided job data are sent to the three vehicles 10, respectively. Note that job data D1 is acceptable data, meaning a decrease in calculation accuracy is to be tolerated. Of the three vehicles 10 shown in Figure 12, the first vehicle 10 is the "vehicle 10 whose communication bandwidth is below the threshold," while the second and third vehicles 10 are the "vehicles 10 whose communication bandwidth is not below the threshold."

[0132] Then, the first partial job data, labeled "1" of the three partial job data shown in Figure 12, is processed by the control unit 505 of the management server 50 to reduce its data size before being transmitted to the first vehicle 10. The second partial job data, labeled "2" and the third partial job data, labeled "3," are transmitted to the second and third vehicles 10, respectively, without any processing to reduce their data size.

[0133] [Details of grid computing processing] Next, with reference to Figure 13, some details of the grid computing process will be explained. In this example, the process shown in Figure 13 is performed in "step S61 (the step of distributing job data D1 to multiple vehicles 10)" of the grid computing process. The control unit 505 of the management server 50 performs the following processing for each of the multiple vehicles 10 assigned to job data D1 (specifically, partial job data).

[0134] <Step S71> First, the control unit 505 determines whether the job data D1 is acceptable data (job data in which a decrease in calculation accuracy is acceptable). If the job data D1 is acceptable data, the process in step S72 is performed; otherwise, the process in step S75 is performed.

[0135] Examples of acceptable data include job data with relatively low required computational accuracy and job data with a relatively short remaining time until the required deadline. For example, an inference job (image recognition job) for recognizing the surrounding environment of vehicle 10 includes a first inference job that recognizes landmarks that are important for controlling the driving of vehicle 10, such as road signs, and a second inference job that recognizes landmarks that are not important for controlling the driving of vehicle 10, such as store signs. The job data for the first inference job has relatively high required computational accuracy and does not fall under the category of acceptable data. The job data for the second inference job has relatively low required computational accuracy and falls under the category of acceptable data.

[0136] In this example, the control unit 505 determines whether the job data D1 satisfies predetermined tolerance conditions (conditions under which a decrease in calculation accuracy is acceptable). The control unit 505 determines that the job data D1 is acceptable data if it satisfies the tolerance conditions, and that the job data D1 is not acceptable data if it does not satisfy the tolerance conditions.

[0137] The acceptable conditions include at least one of the accuracy conditions and the delivery date conditions. The accuracy condition is that the calculation accuracy required for job data D1 falls below a predetermined standard accuracy. The delivery date condition is that the remaining time until the delivery date required for job data D1 is shorter than a predetermined standard time.

[0138] <Step S72> Next, the control unit 505 refers to the communication bandwidth indicated in the communication prediction information D6 of the vehicle 10 registered in the communication prediction table D56 and determines whether the communication bandwidth of the vehicle 10 falls below a predetermined threshold. If the communication bandwidth of the vehicle 10 falls below the threshold, the process in step S73 is performed; otherwise, the process in step S75 is performed.

[0139] <Step S73> If the job data D1 is acceptable data and the communication bandwidth of the vehicle 10 falls below a threshold, the control unit 505 processes the job data D1 (specifically, partial job data) assigned to the vehicle 10 so as to reduce the amount of data it contains.

[0140] One example of data processing to reduce the amount of data in job data D1 is decimation of job data D1. Examples of decimation of job data D1 include reducing the resolution of image data contained in job data D1, and reducing at least one of the resolution and frame rate of video data contained in job data D1.

[0141] <Step S74> Next, the control unit 505 transmits the job data D1 (specifically, partial job data) processed in step S73 to the vehicle 10 assigned to that job data D1, causing the vehicle 10 to process the job data D1. As a result, the vehicle 10 calculates the job data D1, which has been processed to reduce the amount of data, and obtains the calculation result data (specifically, partial calculation result data) corresponding to that job data D1.

[0142] <Step S75> On the other hand, if the job data D1 is not acceptable data, or if the communication bandwidth of the vehicle 10 does not fall below the threshold, the control unit 505 transmits the job data D1 (specifically, partial job data) assigned to the vehicle 10 to the vehicle 10 without performing any processing to reduce the amount of data. As a result, the vehicle 10 calculates the job data D1 without any processing to reduce the amount of data, and obtains the calculation result data (specifically, partial calculation result data) corresponding to that job data D1.

[0143] [Effects of the Embodiment] As described above, in this embodiment, the control unit 505 of the management server 50 processes the job data so that the amount of data in the job data is reduced when the job data is acceptable data in which a decrease in calculation accuracy is permissible, and the communication bandwidth of the vehicle 10 assigned to the job data falls below a threshold among the multiple vehicles 10, and then causes the vehicle 10 to process the processed job data.

[0144] In the above configuration, the amount of data in job data D1 can be reduced, thereby shortening the time required to process job data D1 (processing time). This suppresses the prolongation of processing time due to a decrease in the communication bandwidth of vehicle 10, and thus improves the computational efficiency (job execution efficiency) of job data D1.

[0145] Furthermore, by reducing the amount of data in job data D1 (acceptable data) where a decrease in calculation accuracy is permitted, it is possible to suppress the negative effects of reducing the amount of data in job data D1 (for example, adverse effects appearing in the calculation result data due to a decrease in calculation accuracy, specifically calculation errors in job data D1).

[0146] In addition, in this embodiment, the control unit 505 of the management server 50 determines that a job data is acceptable data if the job data satisfies an acceptable condition, which is a condition under which a decrease in calculation accuracy is permissible. The acceptable condition includes at least one of the following: an accuracy condition, where the calculation accuracy required for the job data is lower than the standard accuracy; and a delivery date condition, where the remaining time until the delivery date required for the job data is shorter than the standard time.

[0147] In the above configuration, by determining whether job data is acceptable data based on an acceptance condition that includes at least one of the accuracy condition and the delivery date condition, it is possible to appropriately determine the job data based on at least one of the "required calculation accuracy for job data" and the "required delivery date for job data".

[0148] (Modification of Embodiment 1) In the modified embodiment 1, system 1 differs from system 1 in step S62 (the process of receiving calculation result data transmitted from the vehicle 10). The other configurations of system 1 in the modified embodiment 1 are the same as those of system 1 in the embodiment.

[0149] In the first modified embodiment, in step S62 (processing to receive calculation result data transmitted from the vehicle 10), the control unit 505 of the management server 50 associates information (processing information) indicating that the calculation result data was obtained by having the vehicle 10 process the processed job data with the calculation result data obtained by having the vehicle 10 process the processed job data with the calculation result data obtained by having the vehicle 10 process the processed job data.

[0150] The processing information includes the calculation conditions for the processed job data D1. Examples of calculation conditions include the amount of reduction in job data D1 due to processing, the resolution of the processed job data D1, and the frame rate of the processed job data D1.

[0151] For example, in step S74 (the process of sending the processed job data to the vehicle 10), the control unit 505 of the management server 50 associates the transmission data information indicating that the job data D1 sent to the vehicle 10 is "job data that has been processed to reduce the amount of data" with the vehicle 10 and registers it in the matching table D57.

[0152] Then, in step S62 (the process of receiving calculation result data transmitted from vehicle 10), the control unit 505 refers to the transmitted data information registered in the matching table D57 and determines whether the job data D1 transmitted to vehicle 10 that transmitted the calculation result data is "job data that has been processed to reduce the amount of data". If the job data D1 transmitted to vehicle 10 that transmitted the calculation result data is "job data that has been processed to reduce the amount of data", the control unit 505 associates the processing information (information indicating that the calculation result data was obtained by having vehicle 10 process the processed job data D1) with the calculation result data and stores it in the storage unit 504.

[0153] Furthermore, in step S64 (process of providing calculation result data to the client), the control unit 505 associates the calculation result data D2 with the processing information and sends it to the client server 20.

[0154] [Effects of Modified Example 1 of the Embodiment] As described above, in the modified embodiment 1, the control unit 505 of the management server 50 associates processing information (information indicating that the calculation result data was obtained by having the vehicle 10 process the processed job data) with the calculation result data obtained by having the vehicle 10 process the processed job data.

[0155] In the above configuration, by referring to the information (processing information) associated with the calculation result data obtained based on job data that has been processed to reduce the amount of data, it is possible to identify that the calculation result data is "calculation result data obtained based on job data that has been processed to reduce the amount of data".

[0156] (Modified embodiment 2) In the modified embodiment 2, System 1 differs from System 1 in step S73 (processing of job data so that the amount of data is reduced). The other configurations of System 1 in the modified embodiment 2 are the same as those of System 1 in the embodiment.

[0157] In the modified embodiment 2, in step S73 (processing to process job data so that the amount of data is reduced), the control unit 505 of the management server 50 processes the job data such that the amount of data of the job data decreases as the communication bandwidth of the vehicle 10 assigned to the job data, which is the permissible data, falls below a threshold.

[0158] [Effects of Modified Example 2 of the Embodiment] As described above, in the modified embodiment 2, the amount of job data reduction can be increased as the communication bandwidth of the vehicle 10 falls below the threshold. This makes it possible to appropriately set the amount of job data according to the communication bandwidth of the vehicle 10.

[0159] (Modification of Embodiment 3) In the system 1 of the modified embodiment 3, the verification process shown in Figure 14 is performed instead of the process shown in Figure 13 (part of the grid computing process). Also, in the system 1 of the modified embodiment 3, step S61 (part of the grid computing process) differs from that of the system 1 of the embodiment. The other configurations of the system 1 of the modified embodiment 3 are the same as those of the system 1 of the embodiment.

[0160] The verification process is a process that confirms whether each of the multiple vehicles 10 assigned to job data D1 by the matching process is a "vehicle 10 that sends job data D1 that has been processed to reduce the amount of data". The verification process is performed after the matching process is completed and before the grid computing process begins.

[0161] [Confirmation process] Next, the verification process will be explained with reference to Figure 13. The control unit 505 of the management server 50 performs the following processing for each of the multiple vehicles 10 assigned to job data D1 by the matching process.

[0162] <Step S81> First, similar to step S71, the control unit 505 determines whether the job data D1 is acceptable data (job data for which a decrease in calculation accuracy is acceptable). If the job data D1 is acceptable data, the process in step S82 is performed; otherwise, the confirmation process is terminated.

[0163] <Step S82> Next, similar to step S72, the control unit 505 refers to the communication bandwidth (predicted value) indicated in the communication prediction information D6 of the vehicle 10 registered in the communication prediction table D56, and determines whether the communication bandwidth of the vehicle 10 falls below a predetermined threshold. If the communication bandwidth of the vehicle 10 falls below the threshold, the process in step S83 is performed; otherwise, the confirmation process ends.

[0164] <Step S83> Next, if the job data D1 is acceptable data and the communication bandwidth of the vehicle 10 is below the threshold, the control unit 505 associates the vehicle 10 with information (reduction information) indicating that the vehicle 10 is "a vehicle 10 that transmits job data D1 that has been processed to reduce the amount of data" and registers it in the matching table D57.

[0165] [Details of grid computing processing] In the third modified embodiment, in step S61 (the process of distributing job data D1 to multiple vehicles 10), which is part of the grid computing process, the control unit 505 of the management server 50 performs the following processing for each of the multiple vehicles 10 assigned to the job data D1 that is the target of the grid computing process.

[0166] First, the control unit 505 refers to the matching table D57 and determines whether reduction information (information indicating that vehicle 10 is "vehicle 10 that transmits job data D1 that has been processed so that the amount of data is reduced") is associated with vehicle 10.

[0167] If reduction information is associated with vehicle 10, the control unit 505 processes the job data D1 (specifically, partial job data) assigned to vehicle 10 so that the amount of data in that job data D1 is reduced, and transmits the processed job data D1 to vehicle 10.

[0168] On the other hand, if no reduction information is associated with the vehicle 10, the control unit 505 transmits the job data D1 (specifically, partial job data) assigned to the vehicle 10 to the vehicle 10 without performing any processing to reduce the amount of data.

[0169] [Effects of Modified Example 3 of the Embodiment] As described above, in the modified embodiment 3, before the grid computing process, a verification process is performed to confirm whether the vehicle 10 is a "vehicle 10 that transmits job data D1 that has been processed to reduce the amount of data," and in step S61 (the process of distributing job data D1 to multiple vehicles 10), which is part of the grid computing process, processing is performed on the job data D1 to reduce the amount of data according to the result of the verification process.

[0170] The above configuration can achieve the same effects as the embodiment. For example, by reducing the amount of job data D1, the time required to process job data D1 (processing time) can be shortened. This suppresses the prolongation of processing time due to a decrease in the communication bandwidth of the vehicle 10, and thus improves the computational efficiency of job data D1 (job execution efficiency).

[0171] (Modification of Embodiment 4) In the system 1 of the modified embodiment 4, the matching process differs from that of the system 1 of the embodiment. The other configurations of the system 1 of the modified embodiment 4 are the same as those of the system 1 of the embodiment.

[0172] In the matching process of the modified embodiment 4, the control unit 505 of the management server 50 preferentially assigns to the job data D1 a "vehicle 10 whose communication bandwidth is below a threshold" from among the multiple vehicles 10 if the job data D1 is acceptable data. The matching process is performed before the grid computing process and is the process of assigning a vehicle 10 to process the job data D1.

[0173] [Matching process] In the fourth modified embodiment, for example, the control unit 505 performs the following processing (steps S91 to S97) in part of the matching process (specifically step S52). Hereinafter, vehicles whose communication bandwidth falls below a threshold will be referred to as "low communication bandwidth vehicles," and vehicles whose communication bandwidth does not fall below a threshold will be referred to as "high communication bandwidth vehicles."

[0174] <Step S91> The control unit 505 selects from among the multiple vehicles 10 that are capable of providing computing power for grid computing processing of the job data D1 as "candidate vehicles 10 to be assigned to the job data D1".

[0175] <Step S92> Next, the control unit 505 determines whether the job data D1 is acceptable data or not. If the job data D1 is acceptable data, the process in step S93 is performed; otherwise, the process in step S97 is performed.

[0176] <Step S93> Next, the control unit 505 determines whether there are any "low-bandwidth vehicles 10" that can be assigned to job data D1 among the "candidate vehicles 10 to be assigned to job data D1" selected in step S91. If there are any low-bandwidth vehicles 10 remaining, the process in step S94 is performed; otherwise, the process in step S96 is performed.

[0177] <Step S94> The control unit 505 selects a "vehicle 10 with low communication bandwidth" that can be assigned to job data D1 from among the "candidate vehicles 10 to be assigned to job data D1" selected in step S91, and assigns that low communication bandwidth vehicle 10 to job data D1.

[0178] <Step S95> Next, the control unit 505 determines whether the allocation of vehicles 10 to job data D1 has been completed. In this example, the allocation of vehicles 10 to job data D1 is completed when the "total available computing power for each of the multiple vehicles 10 allocated to job data D1 during their respective scheduled calculation periods (the period during which grid computing processing is to be performed)" is equal to or greater than the "required computing power for job data D1 (the computing power required to calculate job data D1 in grid computing processing)".

[0179] If the assignment of vehicle 10 to job data D1 is complete, the process ends. Then, the process in step S53 is performed. On the other hand, if the assignment of vehicle 10 to job data D1 is not complete, the process in step S93 is performed.

[0180] <Step S96> Furthermore, if no low-bandwidth vehicles 10 remain in step S93, the control unit 505 selects a high-bandwidth vehicle 10 from the candidates for "vehicles 10 to be assigned to job data D1" selected in step S91, and assigns that high-bandwidth vehicle 10 to job data D1. Next, the process in step S95 is performed.

[0181] <Step S97> Furthermore, if the job data D1 is not acceptable data in step S92, the control unit 505 selects a number of "high-bandwidth vehicles 10" that can be assigned to the job data D1 from among the candidates for "vehicles 10 to be assigned to the job data D1" selected in step S91, and assigns one of these high-bandwidth vehicles 10 to the job data D1.

[0182] [Effects of Modified Example 4 of the Embodiment] As described above, in the modified embodiment 4, the control unit 505, in the matching process, if the job data D1 is acceptable data, preferentially assigns to the job data D1 a "vehicle 10 whose communication bandwidth is below the threshold" from among the multiple vehicles 10.

[0183] In the above configuration, in grid computing processing, the job data D1, which is the acceptable data, can be processed by the vehicle 10 whose communication bandwidth falls below the threshold among the multiple vehicles 10. This makes it possible to effectively utilize the vehicle 10 whose communication bandwidth falls below the threshold as a computing resource.

[0184] (Modification of Embodiment 5) In System 1 of Embodiment Modification 5, the "threshold related to communication bandwidth" differs from that of System 1 in Embodiment. The other configurations of System 1 in Embodiment Modification 5 are the same as those of System 1 in Embodiment.

[0185] In the modified embodiment 5, the threshold for the communication bandwidth of the vehicle 10 is set to the amount of job data D1 transferred per unit time required by the vehicle 10 to complete the processing of job data D1 by the deadline required for job data D1.

[0186] The threshold settings described above are performed by the control unit 505 of the management server 50. For example, the threshold settings are based on the total amount of job data to be processed in grid computing, the deadline required for the job data, and so on. Specifically, the control unit 505 may set the thresholds as follows.

[0187] First, the control unit 505 derives the "amount of data per unit time" by dividing the "total amount of job data D1 to be processed in grid computing" by the "remaining time until the deadline required for job data D1".

[0188] Next, the control unit 505 derives the amount of data transferred per unit time (data transfer rate) of job data D1 required by the vehicle 10 to complete processing of job data D1 by the deadline requested for job data D1, based on the amount of data per unit time. For example, the larger the amount of data per unit time, the larger the amount of data transferred per unit time (data transfer rate) of job data D1 required by the vehicle 10 to complete processing of job data D1 by the deadline requested for job data D1.

[0189] The control unit 505 then sets a threshold value for the amount of job data D1 transferred per unit time (data transfer rate) required by the vehicle 10 to complete the processing of job data D1 by the deadline requested for job data D1.

[0190] Furthermore, when deriving the above data transfer rate based on the above data volume per unit time, the time required for calculating the job data D1 (specifically, the calculation in the vehicle 10) and the time required for data handling of the job data D1 (e.g., preprocessing) may be taken into consideration. Specifically, the control unit 505 may derive a margin (a value of 1 or more) based on the time required for calculating and handling the job data D1 (delay time), and derive the above data transfer rate by multiplying the above "data volume per unit time" by the "margin". For example, the longer the time required for calculating and handling the job data D1 (delay time), the larger the margin.

[0191] [Effects of Modified Example 5 of the Embodiment] As described above, in the modified embodiment 5, the threshold for the communication bandwidth of the vehicle 10 is set to the amount of job data D1 transferred per unit time required by the vehicle 10 in order to complete the processing of job data D1 by the deadline required for job data D1.

[0192] In the above configuration, it is possible to determine whether the communication bandwidth of vehicle 10 (specifically, the amount of data that can be transferred per unit time) is insufficient, based on the amount of job data D1 that needs to be transferred per unit time in vehicle 10 to complete the processing of job data D1 by the deadline required for job data D1. This makes it possible to appropriately select vehicles 10 with insufficient communication bandwidth (i.e., vehicles 10 that should send job data that has been processed so that the amount of data is reduced in grid computing processing).

[0193] (Other embodiments) In the above explanation, an acceptable list may be prepared in advance to indicate which types of job data D1 are acceptable data (job data for which a decrease in calculation accuracy is acceptable). For example, the acceptable list may be created based on acceptable conditions. In step S71 (the process of determining whether or not job data D1 is acceptable data), the control unit 505 of the management server 50 may refer to the acceptable list stored in the storage unit 504 and determine that job data D1 is acceptable data if it is job data registered in the acceptable list.

[0194] Furthermore, in the above explanation, the determination of whether or not job data D1 is acceptable data may be performed in the job acceptance process. For example, the control unit 505 of the management server 50 may, in step S13 (the process of registering information about job data D1 in the job table D53), determine whether or not job data D1 is acceptable data, and register information indicating the result of that determination (determination result information) associated with job data D1 in the job table D53. Then, in step S71 (the process of determining whether or not job data D1 is acceptable data), the control unit 505 may refer to the determination result information registered in the job table D53 and determine (confirm) whether or not job data D1 is acceptable data.

[0195] Furthermore, in the above description, grid organization processing may be performed. In grid organization processing, the control unit 505 of the management server 50 selects multiple vehicles 10 from among multiple vehicles 10 whose available periods overlap in part or all, and organizes a grid with the selected multiple vehicles 10. The grid consists of multiple vehicles 10 available for grid computing processing (specifically, multiple vehicles 10 whose available periods overlap in part or all). In this case, the control unit 505 may assign a grid to job data D1 in step S52 of the matching process (process of assigning a vehicle 10 to job data D1).

[0196] Furthermore, the above explanation uses the example of the vehicle 10's available period (the period during which the vehicle 10's computing power can be provided for grid computing processing) being "the period during which the vehicle 10's computing power unit 105 is available, the vehicle 10 is able to communicate, and the vehicle 10 is located within a predetermined range (region)," but is not limited to this. For example, the vehicle 10's available period may be "the period during which the vehicle 10's computing power unit 105 is available, and the vehicle 10 is able to communicate." In this case, the control unit 505 of the management server 50 may derive the vehicle 10's available period based on the vehicle 10's capacity prediction information D5, which is equivalent to the capacity prediction table D55, and the vehicle 10's communication prediction information D6, which is registered in the communication prediction table D56.

[0197] Furthermore, although the above explanation uses the example of a case where the control units 505 are consolidated into a single management server 50, it is not limited to this. For example, the control units 505 may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.

[0198] Furthermore, in the above description, the storage unit 504 may be composed of a single storage device or of multiple storage devices. Multiple storage devices may be aggregated in a single management server 50, or they may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.

[0199] Furthermore, in the above description, the control unit 505 may be composed of a single control unit or of multiple control units. Multiple control units may be aggregated into a single management server 50, or they may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.

[0200] Furthermore, in the above description, the arithmetic device 105 may be composed of a single arithmetic unit or of multiple arithmetic units.

[0201] Furthermore, the above explanation uses the example of the computing power of the arithmetic unit 105 being used for the driving control of the vehicle 10, but is not limited to this. The computing power of the arithmetic unit 105 may be used for a function other than the driving control of the vehicle 10. Also, the arithmetic unit 105 may be a different arithmetic unit from the one used for the driving control of the vehicle 10 (a different arithmetic unit used for a different function).

[0202] Furthermore, while the above description uses a vehicle 10 (specifically a four-wheeled vehicle) as an example of a mobile body on which the computing device 105 is mounted, it is not limited to this. The computing device 105 may be mounted on a mobile body other than a vehicle 10. Examples of such mobile bodies include transportation machinery and personal information terminals. Examples of transportation machinery include motorcycles, railway vehicles, ships, aircraft, and drones. A vehicle is an example of transportation machinery. Examples of personal information terminals include notebook computers, tablets, and smartphones.

[0203] Furthermore, in the above description, the grid computing processing may be supplied not only by the computing power of the arithmetic unit 105 mounted on the vehicle 10, but also by the computing power of other arithmetic units (not shown). Such other arithmetic units may be stationary arithmetic units (for example, desktop personal computers).

[0204] Furthermore, 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 technologies, applications, or uses disclosed herein. [Industrial applicability]

[0205] As explained above, the technology disclosed herein is useful as a grid computing technology. [Explanation of Symbols]

[0206] 1 System 10. Vehicles (mobile devices) 105 Arithmetic equipment 50 Management Server (Management Device) 501 Input section 502 Output section 503 Communications Department 504 Storage section 505 Control Unit

Claims

1. A management device for managing grid computing processing that causes multiple mobile bodies, each having a computing device, to process job data, In the grid computing process, if the job data is acceptable data in which a decrease in calculation accuracy is permissible, and the communication bandwidth of the mobile device assigned to the job data among the plurality of mobile devices falls below a predetermined threshold, the system includes a control unit that processes the job data so as to reduce the amount of data in the job data and causes the mobile device to process the processed job data. The control unit determines that the job data is acceptable data when the job data satisfies the acceptable conditions, which are the conditions under which a decrease in calculation accuracy is permissible. The aforementioned tolerance conditions include at least one of the following: a precision condition in which the calculation precision required for the job data is lower than a predetermined standard precision; and a delivery condition in which the remaining time until the delivery date required for the job data is shorter than a predetermined standard time. A control device characterized by the following features.

2. A management device for managing grid computing processing that causes multiple mobile bodies, each having a computing device, to process job data, In the grid computing process, if the job data is acceptable data in which a decrease in calculation accuracy is permissible, and the communication bandwidth of the mobile device assigned to the job data among the plurality of mobile devices falls below a predetermined threshold, the system includes a control unit that processes the job data so as to reduce the amount of data in the job data and causes the mobile device to process the processed job data. The control unit, in a matching process performed before the grid computing process which assigns mobile units to process the job data, preferentially assigns to the job data a mobile unit whose communication bandwidth is below the threshold from among the multiple mobile units when the job data is acceptable data. A control device characterized by the following features.

3. A management device for managing grid computing processing that causes multiple mobile bodies, each having a computing device, to process job data, In the grid computing process, if the job data is acceptable data in which a decrease in calculation accuracy is permissible, and the communication bandwidth of the mobile device assigned to the job data among the plurality of mobile devices falls below a predetermined threshold, the system includes a control unit that processes the job data so as to reduce the amount of data in the job data and causes the mobile device to process the processed job data. The threshold is set to the amount of job data transferred per unit time required by the mobile device to complete the processing of the job data by the deadline required for the job data. A control device characterized by the following features.

4. A processing method for causing multiple mobile units, each having a computing unit, to process job data transmitted from a management device, The management device, when it determines that the job data is acceptable data with a reduced calculation accuracy, and that the communication bandwidth of one of the multiple mobile bodies assigned to the job data falls below a predetermined threshold, processes the job data so that the amount of data in the job data is reduced, and transmits the processed job data to the mobile body. The moving body processes the processed job data, The management device determines that the job data is acceptable data when the job data satisfies the acceptable conditions, which are the conditions under which a decrease in calculation accuracy is permissible. The aforementioned tolerance conditions include at least one of the following: a precision condition in which the calculation precision required for the job data is lower than a predetermined standard precision; and a delivery condition in which the remaining time until the delivery date required for the job data is shorter than a predetermined standard time. A processing method characterized by the following.

5. A processing method for causing a plurality of mobile bodies, each having a computing device, to process job data transmitted from a management device, The management device, when it determines that the job data is acceptable data with a reduced calculation accuracy, and that the communication bandwidth of one of the multiple mobile bodies assigned to the job data falls below a predetermined threshold, processes the job data so that the amount of data in the job data is reduced, and transmits the processed job data to the mobile body. The moving body processes the processed job data, The aforementioned management device performs a matching process before the grid computing process in which it causes the multiple mobile entities to process the job data, and in this process, when the job data is acceptable data, it preferentially assigns to the job data a mobile entity whose communication bandwidth is below the threshold among the multiple mobile entities. A processing method characterized by the following.

6. A processing method for causing a plurality of mobile bodies, each having a computing device, to process job data transmitted from a management device, The management device, when it determines that the job data is acceptable data with a reduced calculation accuracy, and that the communication bandwidth of one of the multiple mobile bodies assigned to the job data falls below a predetermined threshold, processes the job data so that the amount of data in the job data is reduced, and transmits the processed job data to the mobile body. The moving body processes the processed job data, The threshold is set to the amount of job data transferred per unit time required by the mobile device to complete the processing of the job data by the deadline required for the job data. A processing method characterized by the following.

Citation Information

Patent Citations

  • Stream distributing server, mobile terminal, stream distribution system, and stream distribution method

    JP2006041819A

  • Distributed processing system and onboard terminal

    JP2007087273A

  • Management server and program

    JP2020160661A