Vehicle computing device and information processing method
By estimating user arrival and vehicle stability, job data is transferred to nearby vehicles, stabilizing job computation in grid computing systems by ensuring continuous processing even when vehicles are unexpectedly used.
Patent Information
- Application Number
- JP2021129025
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-08-05
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-08-05
AI Technical Summary
Existing grid computing systems using vehicle computing devices face instability due to variable availability of vehicles, leading to interrupted job calculations when vehicles are unexpectedly used by users.
A control unit in each vehicle estimates user arrival time and vehicle stability, transferring job data to nearby parked vehicles if the host vehicle is likely to be used, ensuring stable job completion by utilizing other vehicles in the grid computing network.
This approach stabilizes job computation processing by accurately predicting user arrival and vehicle availability, allowing job data to be transferred to more stable vehicles, thus completing calculations efficiently without user inconvenience.
Smart Images

Figure 0007786069000001 
Figure 0007786069000002 
Figure 0007786069000003
Abstract
Description
[Technical Field]
[0001] The technology disclosed herein belongs to the technical field of a vehicle computing device and an information processing method. [Background technology]
[0002] Recently, vehicles are equipped with a computing device having a relatively high computing power for electronic control. (ignition off or power off) In order to address this situation, it has been studied to utilize the computing devices installed in multiple vehicles in a grid computing manner.
[0003] For example, Patent Document 1 discloses a grid computing management server that uses a communication device mounted on a vehicle. This management server includes a signal receiving unit that receives a signal indicating that the vehicle is able to participate in grid computing from the communication device, a status determining unit that determines whether the processing capacity of the processing device is insufficient, and a response transmitting unit that transmits an instruction to the communication device to participate in grid computing when the processing capacity of the processing device is insufficient.
[0004] Patent document 2 also discloses a computational resource provision method that generates vehicle group resource information, which is information regarding the time when a vehicle group formed by multiple vehicles can communicate with a user terminal and the computational resources that can be provided within that time, and accepts a request from the user terminal to execute a task that matches the vehicle group resource information.
[0005] In Patent Document 2, while a vehicle is traveling, the distance to the last vehicle in a group of vehicles that can directly communicate with the user terminal is calculated based on the location information of the user terminal, and whether the group of vehicles can complete the execution of a task within the period in which they can communicate with the user terminal is calculated based on this distance.If the time required to complete the execution of the task is less than the time in which the user terminal and the group of vehicles can communicate, the execution of the task is interrupted and the intermediate results are sent to the user terminal. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Japanese Patent Application Publication No. 2020-160661 [Patent Document 2] Japanese Patent Application Publication No. 2017-111727 Summary of the Invention [Problem to be solved by the invention]
[0007] When grid computing is performed using a computing device mounted on a vehicle, it is desirable to perform job computation processing during periods when the vehicle is not in use, particularly while the vehicle is stopped, in order to improve the stability of communications between the vehicle and a server and between vehicles. In Patent Document 1, periods when the vehicle is not in use are identified based on the vehicle's usage history, and schedule information is generated that specifies the identified periods as periods during which the computing device can participate in grid computing. In Patent Document 1, a relatively stable computing capacity can be provided based on this schedule information.
[0008] However, the period during which the vehicle is not in use is not always constant. Even if a period during which the vehicle is not in use is estimated based on the vehicle's usage history and the user's behavior history, the user may still use the vehicle, for example, to go shopping. If the vehicle is currently executing a job calculation process, the calculation process will be stopped. As in Patent Document 2, it is possible to interrupt the execution of the calculation process and send intermediate results to the user terminal, but in the case of a job that requires a large amount of calculation processing, the intermediate results alone have little useful value as calculation results.
[0009] The technology disclosed herein has been made in consideration of the above points, and its purpose is to stabilize job calculation processing in grid computing using a vehicle's calculation device. [Means for solving the problem]
[0010] In order to solve the above problems, the technology disclosed herein provides: Multiple vehicles with ignition or power off and a control unit that performs calculation processing of a job for a vehicle's calculation device, which serves as a calculation resource for grid computing that performs calculation processing of a job using each of the plurality of vehicles as a calculation node. The control unit executes an estimation process to estimate whether the host vehicle is in a stable mode in which the calculation processing of the job can be stably executed, or an unstable mode in which the calculation processing of the job may be aborted, and a transfer process to transfer job data related to the job being calculated to other vehicles parked around the host vehicle and participating in the grid computing via a communication unit of the host vehicle when it is estimated that the host vehicle is in the unstable mode. Furthermore, in the estimation process, the control unit compares a user arrival time, which is the time it takes for a user of the host vehicle to reach a parked position of the host vehicle, with a job completion time, which is the time it takes for the host vehicle to complete the calculation of the job, and if the job completion time is equal to or less than the user arrival time, it estimates that the host vehicle is in the stable mode, and if the job completion time is longer than the user arrival time, it estimates that the host vehicle is in the unstable mode.
[0011] In other words, when a user approaches a vehicle, there is a high possibility that the user will be using the vehicle for driving. Therefore, by estimating the user arrival time, it is possible to estimate the time that the computing device will be available for job computation processing. Then, by comparing the estimated user arrival time with the job completion time, it is possible to estimate whether the user will be able to complete the job before using the vehicle.
[0012] If it is difficult to complete the job before the user uses the vehicle for driving, the system determines that the vehicle is in an unstable mode and transfers the job data to another vehicle participating in grid computing. This allows the other vehicle to continue processing the job. Therefore, even if a huge amount of calculation is required to complete the job, the job processing can be completed. This makes it possible to stabilize the job processing.
[0013] In the vehicle's computing device, the communication unit may communicate with a portable device owned by the user, and the control unit may estimate the distance between the vehicle and the user from the position of the portable device, and estimate the user arrival time based on the estimated distance and the change in the estimated distance over time.
[0014] This configuration allows for accurate estimation of the user arrival time. Specifically, even if the user is located nearby, if the user's estimated movement speed (time change in estimated distance) is slow, the user arrival time will be long. In this way, by accurately estimating the user arrival time from the estimated distance and the time change in the estimated distance, it is possible to accurately estimate whether the vehicle is in an unstable mode. As a result, job calculation processing can be made more stable.
[0015] In the vehicle's calculation device, the communication unit may acquire stability information indicating the stability of the calculation processing when the other vehicle performs the calculation processing of the job, and the control unit may be configured to transfer the job data to the other vehicle when there is only one other vehicle, and to transfer the job data to the other vehicle with the highest stability based on the stability information when there are multiple other vehicles.
[0016] According to this configuration, when the host vehicle is in an unstable mode, the job can be transferred to another vehicle that is as stable as possible, thereby making the job processing more stable.
[0017] In a vehicle's calculation device that sets the destination of job data based on stability information of other vehicles, the stability information may include information regarding whether the other vehicles are in the stable mode or the unstable mode, and the control unit may be configured such that, when the other vehicle to which the job data is to be transferred transitions to the unstable mode during the transfer of the job data, the control unit continues transferring the job data and searches for another vehicle to be a new destination of the job data, excluding the other vehicle.
[0018] With this configuration, even if the other vehicle to which the job data was to be transferred is used as a moving body before the transfer is complete, the job data can be quickly transferred to another other vehicle, thereby making the job processing more stable.
[0019] In the vehicle's calculation device, the control unit may be configured to continue transferring the job data to the other vehicle when it is estimated that the vehicle will transition from the unstable mode to the stable mode while transmitting the job data to the other vehicle.
[0020] In other words, if job data is currently being transferred, transferring the job data to another vehicle and having the other vehicle perform the job calculation processing is more efficient and likely to result in higher stability than restarting the job calculation processing in the own vehicle. Therefore, this configuration makes it possible to make job calculation processing more stable.
[0021] In the vehicle's calculation device, when it is estimated that the vehicle will transition to a driving mode in which the user drives the vehicle while the job data is being transferred to the other vehicle, the control unit may be configured to notify the user of the vehicle that the calculation processing of the control unit in the driving mode will be restricted while the job data is being transferred.
[0022] According to this configuration, the transfer of job data can be continued after notifying the user that the calculation processing of the control unit in the running mode will be restricted. If only job data is to be transferred, the restriction on the calculation processing of the control unit can be relatively small, and the time limit can also be relatively short. Therefore, the transfer of job data can be completed with as little inconvenience as possible for the user. Furthermore, because the transfer of job data can be completed, the calculation processing of the job can be made more stable.
[0023] Another aspect of the technology disclosed herein is Multiple vehicles with ignition or power off When performing calculation processing of a job by grid computing using each of the plurality of vehicles as a calculation node, The computer runsThe information processing method includes: a step of calculating a job completion time, which is a time required for a specific vehicle among the plurality of vehicles to complete calculation of the job; a step of calculating a user arrival time, which is a time required for a user of the specific vehicle to arrive at a position where the specific vehicle is parked; a mode estimation step of comparing the job completion time with the user arrival time to estimate whether the specific vehicle is in a stable mode in which calculation processing of the job can be stably executed, or in an unstable mode in which calculation processing of the job may be suspended; and a job transfer step of transferring job data related to the job being calculated to other vehicles parked around the specific vehicle and participating in the grid computing when it is estimated that the specific vehicle is in the unstable mode, wherein the mode estimation step estimates that the specific vehicle is in the stable mode when the job completion time is equal to or shorter than the user arrival time. and if the job completion time is longer than the user arrival time, it is determined that the specific vehicle is in the unstable mode.
[0024] With this configuration, if it is difficult to complete a job before the user uses a specific vehicle, the system determines that the vehicle is in an unstable mode and transfers the job data to another vehicle participating in grid computing. This allows the job calculation to continue to be performed by the other vehicle. This stabilizes the job calculation process. [Effects of the Invention]
[0025] As described above, the technology disclosed herein makes it possible to stabilize job computation processing in grid computing using a computing device in a vehicle. [Brief explanation of the drawings]
[0026] [Figure 1] FIG. 1 is a schematic diagram illustrating the configuration of a system including a vehicle having a computing device according to an exemplary embodiment. [Figure 2]FIG. 2 is a conceptual diagram for explaining grid computing. [Figure 3] FIG. 3 is a block diagram illustrating the configuration of a vehicle. [Figure 4] FIG. 4 is a block diagram illustrating the configuration of a user terminal. [Figure 5] FIG. 5 is a block diagram showing the configuration of a client server. [Figure 6] FIG. 6 is a block diagram illustrating the configuration of the facility server. [Figure 7] FIG. 7 is a block diagram showing the configuration of the management server. [Figure 8] FIG. 8 is a flowchart illustrating a grid computing process performed by the system. [Figure 9] FIG. 9 is a block diagram showing functional blocks for the control unit of the vehicle to perform estimation processing. [Figure 10] FIG. 10 is a flowchart illustrating the estimation process of the control unit. [Figure 11] FIG. 11 is a flowchart showing a job data transfer process performed by the control unit. [Figure 12] FIG. 12 is a schematic diagram showing the selection of a transfer destination when the host vehicle transitions to the unstable mode. [Figure 13] FIG. 13 is a flowchart showing the job data transfer process when the host vehicle transitions to the driving mode. DETAILED DESCRIPTION OF THE INVENTION
[0027] Exemplary embodiments will now be described in detail with reference to the drawings.
[0028] (System configuration) 1 illustrates the configuration of a system 1 including a vehicle 10 having a computing device 105 according to an embodiment. The system 1 includes a plurality of vehicles 10, a plurality of user terminals 20, a client server 30, a facility server 40, and a management server 50. These components can communicate with each other via a communication network 5. Each of the plurality of vehicles 10 is equipped with a computing device 105.
[0029] (Grid Computing) 2, in the system 1 of the embodiment, grid computing is configured by the arithmetic device 105 mounted on each vehicle 10. In grid computing, grid computing processing is performed in which job data is processed by an available arithmetic device 105 among the multiple arithmetic devices 105. In other words, the arithmetic device 105 corresponds to a computing resource of grid computing that performs job calculation processing using each of the multiple vehicles 10 as a calculation node.
[0030] When the vehicle 10 needs the computing power of the arithmetic device 105, the arithmetic device 105 enters an operating state and uses the computing power of the arithmetic device 105. For example, when the vehicle 10 is traveling, the computing power of the arithmetic device 105 is required for traveling control of the vehicle 10, and the arithmetic device 105 enters an operating state.
[0031] On the other hand, when the computing power of the arithmetic device 105 becomes unnecessary in the vehicle 10, the arithmetic device 105 enters a stopped state, and the computing power of the arithmetic device 105 is not used. For example, when the vehicle 10 is stopped and the ignition is turned off or the power is turned off, the computing power of the arithmetic device 105 becomes unnecessary, and the arithmetic device 105 enters a stopped state.
[0032] Here, when the computing power of the computing device 105 is not needed in the vehicle 10, the computing power of the computing device 105 can be provided for grid computing processing, thereby making it possible to effectively utilize the computing power of the computing device 105. Basically, the computing device 105 is used as a computing resource for grid computing when the vehicle 10 is stopped, that is, when the computing power of the computing device 105 is not being used for driving control.
[0033] (Vehicle configuration) The vehicle 10 is a vehicle owned by a user. The user drives the vehicle 10. In this example, the vehicle 10 is a four-wheeled automobile. The vehicle 10 is also equipped with a battery (not shown). Power from the battery is supplied to on-board devices such as the computing device 105. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles.
[0034] As shown in FIG. 3, the vehicle 10 includes an actuator 11, a sensor 12, an input unit 101, an output unit 102, a communication unit 103, a storage unit 104, and a computing device 105.
[0035] The actuators 11 include drive system actuators, steering system actuators, braking system actuators, etc. Examples of drive system actuators include an engine, a transmission, and a motor. Examples of braking system actuators include a brake. Examples of steering system actuators include a steering wheel.
[0036] The sensor 12 acquires various types of information used for controlling the vehicle 10. Examples of the sensor 12 include an exterior camera 121 (see FIG. 8) that takes images outside the vehicle, an interior camera that takes images inside the vehicle, a radar that detects objects outside the vehicle, a vehicle speed sensor, an acceleration sensor, a yaw rate sensor, an accelerator opening sensor, a steering sensor, a key detection sensor 122 (see FIG. 8), and an ignition sensor 123 (see FIG. 8; hereinafter referred to as the IG sensor 123).
[0037] The input unit 101 inputs information and data. Examples of the input unit 101 include a navigation system that inputs information according to an operation when operated, a camera that inputs an image showing information, and a microphone that inputs audio showing information. The information and data input to the input unit 101 are sent to the calculation device 105.
[0038] The output unit 102 outputs information and data. Examples of the output unit 102 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0039] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 is sent to the arithmetic unit 105. The communication unit 103 is configured by, for example, a wireless communication device.
[0040] The storage unit 104 stores information and data.
[0041] The arithmetic device 105 has a control unit 106 that controls each part of the vehicle 10. In this example, the control unit 106 controls the actuator 11 in accordance with various information obtained by the sensor 12.
[0042] The control unit 106 includes a processor, a memory, etc. Examples of the processor include a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The memory stores programs for operating the processor, information and data indicating the processing results of the processor, etc. The processing of the control unit 106, which will be described later, is executed by the processor using the programs and data stored in the memory.
[0043] The number of processors constituting the control unit 106 may be one or more. The processor constituting the control unit 106 may be either a CPU or a GPU, or both a CPU and a GPU. In this example, the control unit 106 has both a CPU and a GPU. For example, the control unit 106 is composed of one or more ECUs (Electronic Control Units).
[0044] In this example, the storage unit 104 stores vehicle information D11, vehicle state information D12, driving history information D13, calculation device information D14, and driving schedule information D15.
[0045] <Vehicle Information> The vehicle information D11 is information related to the vehicle 10. For example, the vehicle information D11 includes a vehicle ID set for the vehicle 10, a user ID set for the user who owns the vehicle 10, vehicle performance information indicating the performance of the vehicle, etc. The vehicle ID is an example of vehicle identification information that identifies the vehicle 10. The user ID is an example of user identification information that identifies the user.
[0046] <Vehicle status information> Vehicle status information D12 indicates the status of vehicle 10. For example, vehicle status information D12 includes vehicle location information, vehicle communication information, vehicle power source information, vehicle battery remaining capacity information, vehicle charging information, etc. Vehicle location information indicates the location (latitude and longitude) of vehicle 10. Vehicle location information can be acquired, for example, by GPS (Global Positioning System). Vehicle communication information indicates the communication status of vehicle 10. Vehicle power source information indicates the power source status of vehicle 10. For example, vehicle power source information indicates whether the ignition power is on or off, whether the accessory power is on or off, etc. Vehicle battery remaining capacity information indicates the remaining capacity of a battery (not shown) installed in vehicle 10. Vehicle charging information indicates whether vehicle 10 is being charged at a charging facility (not shown).
[0047] <Driving history information> The driving history information D13 is information that indicates the driving history of the vehicle 10. For example, the driving history information D13 indicates the position of the vehicle 10 in association with the date and time.
[0048] <Calculation device information> The arithmetic device information D14 is information related to the arithmetic device 105. For example, the arithmetic device information D14 includes an arithmetic device ID set in the arithmetic device 105, a vehicle ID set in the vehicle 10 on which the arithmetic device 105 is mounted, arithmetic device performance information indicating the performance of the arithmetic device 105, etc. The arithmetic device ID is an example of arithmetic device identification information for identifying the arithmetic device 105. The performance of the arithmetic device 105 indicated in the arithmetic device performance information includes a calculation capacity indicating the calculation capacity (specifically, the maximum calculation capacity) of the arithmetic device 105, a ratio of the CPU to the GPU in the arithmetic device 105, etc. The calculation capacity of the arithmetic device 105 is the amount of data that the arithmetic device 105 can calculate per unit time.
[0049] <Schedule Information> The driving schedule information D15 is information indicating a usage schedule of the arithmetic device 105. For example, the schedule information indicates the date and time when the arithmetic device 105 is used for driving control. The schedule information may also indicate the date and time when the arithmetic device 105 is not used for driving control. The schedule information may be input from the input unit 101 or may be input from the user terminal 20. In addition, the schedule information may indicate a driving schedule estimated based on the driving history information D13.
[0050] (User terminal configuration) The user terminal 20 is a terminal device owned by a user. The user operates the user terminal 20 to use various functions. The user can also carry the user terminal 20. Examples of such user terminals 20 include smartphones, tablets, and laptop-type personal computers.
[0051] As shown in FIG. 4, the user terminal 20 includes an input unit 201, an output unit 202, a communication unit 203, a storage unit 204, and a control unit 205.
[0052] The input unit 201 inputs information and data. Examples of the input unit 201 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs audio showing information. For example, a user can operate the operation unit to access the navigation system of the vehicle 10 and thereby register a reservation for a destination. The information input to the input unit 101 is sent to the calculation device 105.
[0053] The output unit 202 outputs information and data. Examples of the output unit 202 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0054] The communication unit 203 transmits and receives information and data. The information and data received by the communication unit 303 are sent to the control unit 205.
[0055] The storage unit 204 stores information and data.
[0056] The control unit 205 controls each unit of the user terminal 20. The control unit 205 has a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc.
[0057] In this example, the storage unit 204 stores terminal information D21, terminal state information D22, and schedule information D23.
[0058] <Device Information> The terminal information D21 is information related to the user terminal 20. For example, the terminal information D21 includes a user terminal ID set in the user terminal 20, user terminal performance information indicating the performance of the user terminal 20, etc. The user terminal ID is an example of user terminal identification information that identifies the user terminal 20.
[0059] <Device status information> The terminal status information D22 is information indicating the status of the user terminal 20. The terminal status information D22 includes user terminal position information indicating the position of the user terminal 20, user terminal communication status information indicating the communication status of the user terminal 20, and the like.
[0060] <Schedule Information> The schedule information D23 indicates the behavior history and behavior schedule of the user who owns the user terminal 20. For example, the schedule information D23 indicates the user's location and the length of stay (or the planned length of stay) in association with each other. The schedule information D23 can be acquired by a schedule function installed in the user terminal 20. Specifically, the user inputs his or her own behavior history and behavior schedule into the user terminal 20 using the schedule function, thereby obtaining the schedule information D23 indicating the user's behavior history and behavior schedule. The schedule information D23 includes a schedule for driving the vehicle 10.
[0061] (Client-server configuration) The client server 30 is owned by a client, who requests the calculation of job data. Examples of such clients include companies, research institutes, and educational institutions.
[0062] As shown in FIG. 5, the client server 30 includes an input unit 301, an output unit 302, a communication unit 303, a storage unit 304, and a control unit 305.
[0063] The input unit 301 inputs information and data. Examples of the input unit 301 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image representing information, and a microphone that inputs audio representing information. The information and data input to the input unit 301 is sent to the control unit 305.
[0064] The output unit 302 outputs information and data. Examples of the output unit 302 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0065] The communication unit 303 transmits and receives information and data. The information and data received by the communication unit 303 are sent to the control unit 305.
[0066] The storage unit 304 stores information and data.
[0067] The control unit 305 controls each unit of the client server 30. The control unit 305 has a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc.
[0068] In this example, the storage unit 304 stores client information D31 and job data D1.
[0069] <Client Information> The client information D31 is information about the client. The client information D31 includes a client ID set for the client, a client-server ID set for the client server 30 owned by the client, a person in charge's name, address, telephone number, etc. The client ID is an example of client identification information that identifies the client. The client-server ID is an example of client-server identification information that identifies the client server 30.
[0070] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job.
[0071] The job data D1 can be classified by calculation type. Examples of calculation types include CPU-based calculation types and GPU-based calculation types. Job data D1 of the CPU-based calculation type tend to require complex calculations with many conditional branches, such as simulation calculations. Job data D1 of the GPU-based calculation type tend to require a huge amount of simple calculations, such as image processing and machine learning.
[0072] Furthermore, the job data D1 can be classified according to the processing conditions of the job. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. Job data D1 with processing conditions that require constant communication requires that the computing resources (i.e., the computing device 105) be able to communicate at all times in the grid computing process. Job data D1 with processing conditions that do not require constant communication does not require that the computing resources be able to communicate at all times in the grid computing process.
[0073] Note that job information related to a job may be stored in the storage unit 304. The job information includes job name information indicating the name of the job, job content information explaining the content of the job, job data information regarding job data corresponding to the job, job deadline information indicating the deadline for the job, etc. The job data information indicates the calculation type, processing conditions, required calculation capacity, etc. of the job data.
[0074] (Facility server configuration) The facility server 40 is owned by a facility. Examples of facilities include a user's workplace, a stadium, a theater, a movie theater, a supermarket, a restaurant, an accommodation facility, a ticket sales facility, etc. For facilities that require a reservation for a visit, the user can make a reservation for a visit to the facility via the user terminal 20.
[0075] 6, facility server 40 includes input unit 401, output unit 402, communication unit 403, storage unit 404, and control unit 405. The configurations of input unit 401, output unit 402, communication unit 403, storage unit 404, and control unit 405 of facility server 40 are the same as the configurations of input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of client server 30.
[0076] In this example, the storage unit 404 stores facility information D41 and facility usage information D42.
[0077] Facility Information The facility information D41 is information related to a facility. The facility information D41 includes a facility ID set for the facility, a facility server ID set for the facility server 40 owned by the facility, facility location information indicating the location (latitude and longitude) of the facility, the name of a person in charge, an address, a telephone number, etc. The facility ID is an example of facility identification information that identifies a facility. The facility server ID is an example of facility server identification information that identifies the facility server 40.
[0078] <Facility Usage Information> The facility usage information D42 indicates the usage status (usage history and planned usage) of the facility. Specifically, the facility usage information D42 indicates users who use the facility and their stay period (or planned stay period) in association with each other.
[0079] (Administration Server Configuration) The management server 50 manages the operation of the system 1, which is configured as a grid computing system. The management server 50 is owned by the operator that operates the system 1.
[0080] 7, the management server 50 includes an input unit 501, an output unit 502, a communication unit 503, a storage unit 504, and a control unit 505. The configurations of the input unit 501, output unit 502, communication unit 503, storage unit 504, and control unit 505 of the management server 50 are the same as the configurations of the input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of the client server 30.
[0081] In this example, the storage unit 504 stores a user table D51, a computing device table D52, a client table D53, a job table D54, a resource table D55, a matching table D56, job data D1, and calculation result data D2.
[0082] <User table> The user table D51 is a table for managing users. For each user, the user table D51 registers a user ID set for the user, a vehicle ID set for the vehicle 10 owned by the user, a calculation device ID set for the calculation device 105 owned by the user, a user terminal ID set for the user terminal 20 owned by the user, and the like.
[0083] <Calculation Unit Table> The arithmetic device table D52 is a table for managing the arithmetic devices 105. In the arithmetic device table D52, for each arithmetic device 105, a arithmetic device ID set in the arithmetic device 105, a user ID set for the user who owns the arithmetic device 105, a vehicle ID set for the vehicle 10 in which the arithmetic device 105 is installed, etc. are registered.
[0084] Furthermore, the arithmetic device table D52 registers, for each arithmetic device 105, the performance of that arithmetic device 105 (such as computing capacity and the ratio of CPU to GPU), the operating status of that arithmetic device 105 (operating history and operation schedule), etc. In other words, the arithmetic device table D52 includes operating status information D5 indicating the operating status of each of the multiple arithmetic devices 105, and performance information D6 indicating the performance of each of the multiple arithmetic devices 105. The performance information D6 includes computing capacity information D7 indicating the computing capacity of each of the multiple arithmetic devices 105.
[0085] <Client Table> The client table D53 is a table for managing clients. For each client, the client table D53 registers a client ID set for that client, a client server ID set for the client server 30 owned by the client, the name, address, and telephone number of the person in charge of that client. The client table D53 records the usage history of grid computing for each client.
[0086] <Job Table> The job table D54 is a table for managing jobs requested by clients. For each job, the job table D54 registers the reception number set for that job, the client ID set for the client that requested the job, the name and content of the job, etc. The job table D54 also registers for each job the calculation type and processing conditions of the job data corresponding to that job, the required calculation capacity that is the calculation capacity required to calculate the job data, the delivery date set for that job, etc.
[0087] <Resource Table> The resource table D55 is a table for managing computational capabilities in grid computing processing. Specifically, the resource table D55 is a table for managing computational capability information relating to the estimated computational capabilities of computational resources. The resource table D55 registers, for each computation device 105, the computation device ID set for that computation device 105.
[0088] Matching Table The matching table D56 is a table for managing the results of a matching process that matches jobs with grid computing. For each job, the matching table D56 registers the reception number set for the job, the job data corresponding to the job, the computing device ID set for each computing device 105 that constitutes the computing resource allocated to the job data by the matching process, and the like.
[0089] <Job Data> The job data D1 stored in the storage unit 504 is the accepted job data D1.
[0090] <Calculation result data> The calculation result data D2 stored in the storage unit 504 is calculation result information calculated by grid computing processing, and indicates the results of the calculation.
[0091] (Grid computing processing) Next, the grid computing process will be described with reference to Fig. 8. In the grid computing process, the job data D1 is processed by an available arithmetic device 105 among the plurality of arithmetic devices 105. After the matching process is completed, the control unit 505 performs the following process.
[0092] First, in step S11, the control unit 505 refers to the matching table D56 and distributes job data D1 to be subjected to grid computing processing to the arithmetic devices 105 assigned to the job data D1 in the matching processing. Specifically, the control unit 505 transmits a portion of the job data D1 to each of the arithmetic devices 105 assigned to the job data D1. As a result, the job data D1 is processed in parallel by the arithmetic devices 105 assigned to the job data D1.
[0093] Next, in step S12, when each arithmetic device 105 completes the calculation of the data (part of the job data D1) transmitted to that arithmetic device 105, it transmits the partial calculation result data obtained by the calculation to the management server 50. The control unit 505 of the management server 50 receives the partial calculation result data transmitted from the arithmetic device 105 and stores the partial calculation result data in the memory unit 504.
[0094] Next, in step S13, the control unit 505 determines whether or not all of the arithmetic devices 105 to which the job data D1 was distributed in step S11 have completed calculations. If all of the arithmetic devices 105 have completed calculations, the control unit 505 proceeds to step S14, and if at least some of the arithmetic devices 105 have not completed calculations, the control unit 505 performs the processing of step S12.
[0095] In step S14, the control unit 505 generates calculation result data D2 (calculation result data D2 indicating the result of calculation of job data D1) corresponding to job data D1 that is the target of grid computing processing by combining the partial calculation result data stored in the storage unit 504. Then, the control unit 505 transmits the calculation result data D2 corresponding to job data D1 that is the target of grid computing processing to the client server 30 of the client that requested the calculation of the job data D1.
[0096] Then, in step S15, a reward is granted by the operator of the system 1 to the user who provided the computing power of the computing device 105 for the grid computing process. Examples of rewards granted to users include points that can be used in the system 1, virtual currency, and product discount benefits. For example, the control unit 505 of the management server 50 performs processing to grant a reward to the user who provided the computing power of the computing device 105 for the grid computing process. Examples of the processing to grant a reward include processing to associate a "user ID" set for the user with "points" (or virtual currency) that can be used in the system 1 and register them in the user table D51, and processing to send information indicating a product discount benefit to the user terminal 20 owned by the user.
[0097] Furthermore, a reward may be given by the client to a user who has provided the computing power of the computing device 105 for grid computing processing. For example, the control unit 305 of the client server 30 may execute processing for giving a reward to a user who has provided the computing power of the computing device 105 for grid computing processing.
[0098] (Vehicle Processing on Grid Computing) To successfully complete the grid computing process described above, it is necessary that the arithmetic device 105 of the vehicle 10 is stably supplied as a computational resource, that is, that each vehicle 10 is able to stably execute the computational process of the job. The arithmetic device 105 can estimate the time period during which the vehicle 10 will be stopped based on the travel schedule information D15 stored in the storage unit 104 and the schedule information D23 acquired from the user terminal 20. In other words, the arithmetic device 105 can schedule in advance the time period during which it can supply itself as a computational resource for grid computing (the time period during which it can participate in grid computing).
[0099] However, even during a time period that the computing device 105 estimates as a time period during which it can participate in grid computing, the user may suddenly start driving the vehicle 10, such as to go shopping or to work. As a result, the computing device 105 must use itself for driving control while executing the computational processing of a job given to it in grid computing. In this case, the computing device 105 is forced to cancel the job, which may result in the grid computing processing not being completed normally.
[0100] Therefore, in this embodiment, the control unit 106 of the computing device 105 performs an estimation process to estimate whether the host vehicle is in a stable mode in which the job's computation processing can be stably executed, or in an unstable mode in which the job's computation processing may be suspended. When the control unit 106 estimates that the host vehicle is in the unstable mode, it packages job data related to the job being processed and executes a transfer process to transfer the packaged job data to other vehicles parked around the host vehicle and participating in the grid computing processing. Note that the "job data" referred to here refers to a portion of the job data D1 distributed to the host vehicle by the management server 50. In the following description, the portion of the job data D1 distributed to each vehicle 10 is referred to as "partial job data D1a."
[0101] 9 shows functional blocks constituting a function for the vehicle 10 to execute the estimation process. This function is installed in each vehicle 10.
[0102] The vehicle 10 calculates a user arrival time t a The user arrival time estimation module 161 receives input of information from the vehicle exterior camera 121, the key detection sensor 122, and the position detection module 162. The user arrival time estimation module 161 receives input of driving history information D13 from the storage unit 14. The user arrival time estimation module 161 receives input of map information D16 via the communication unit 103.
[0103] A plurality of outside cameras 121 are arranged on the vehicle 10 so as to be able to capture images of the 360-degree area around the vehicle 10.
[0104] The key detection sensor 122 communicates with a keyless key or a smart key (registered trademark) owned by the user of the vehicle, and detects the location of the keyless key or the like.
[0105] The position detection module 162 is a module that communicates with the user terminal 20 owned by the user of the vehicle and detects the position of the user terminal 20. The position detection module 162 detects the position of the user terminal 20, for example, by using a GPS sensor mounted on the user terminal 20.
[0106] The user arrival time estimation module 161 estimates the distance between the vehicle and the user based on the detection results from the exterior camera 121, the key detection sensor 122, and the position detection module 162. The user arrival time estimation module 161 estimates the time change of the estimated distance (i.e., the user's moving speed) from the estimated distance. Then, the user arrival time t aWhen it is difficult to obtain information from the vehicle exterior camera 121, the key detection sensor 122, and the position detection module 162, the user arrival time estimation module 161 estimates the user arrival time t a Estimate.
[0107] The user arrival time t estimated by the user arrival time estimation module 161 a is input to the stability estimation module 163. Information on the estimated distance estimated by the user arrival time estimation module 161 is also input to the stability estimation module 163.
[0108] The stability estimation module 163 estimates how stably the host vehicle can perform the calculation processing of the partial job data D1a. The stability estimation module 163 estimates whether the host vehicle is in a stable mode, an unstable mode, or a driving mode in which the user drives the host vehicle.
[0109] The stability estimation module 163 receives input of information from the user arrival time estimation module 161, the communication state management module 164, the charge state monitoring module 165, and the IG sensor 123. The stability estimation module 163 receives input of information on the partial job data D1a and information from the computational resource management module 166. The stability estimation module 163 also receives input of information from the process execution management module 167.
[0110] The communication state management module 164 is a module that manages the communication band of the vehicle. Information about the communication band of the vehicle is input from the communication state management module 164 to the stability estimation module 163.
[0111] The charging state monitoring module 165 is a module that monitors the charging state of the host vehicle. Whether the host vehicle is in a charging state or not is input from the charging state monitoring module 165 to the stability estimation module 163 in the form of an on / off signal.
[0112] The IG sensor 123 detects whether the ignition of the host vehicle is on or off. If the host vehicle is an engine key type, the IG sensor 123 detects that the ignition is on when the engine key is turned to the start position, and if the host vehicle is a push-start type, the IG sensor 123 detects that the ignition is on when a switch is pressed while a predetermined condition is met.
[0113] The computational resource management module 166 is a module that manages the current computational resources, in other words, the current computational capacity, of the computing unit of the host vehicle. Information about the current computational capacity of the computing unit is input from the computational resource management module 166 to the stability estimation module 163.
[0114] The process execution management module 167 is a module that manages various processes in the arithmetic device 105. For example, the process execution management module 167 manages the period during which the arithmetic process of a job can be executed based on the driving schedule information D15 stored in the storage unit 14. The process execution management module 167 also manages, for example, the time required for transferring partial job data D1a to another vehicle.
[0115] The stability estimation module 163 calculates a job completion time t , which is the time it takes for the host vehicle (strictly speaking, the computing unit of the host vehicle) to complete the job calculation, from the information from the computation resource management module 166 and the partial job data D1a. j The stability estimation module 163 estimates the job completion time t when the partial job data Da1 is processed using the current computing capacity of the computing unit obtained from the computing resource management module 166. j The job completion time t j may be estimated by the management server 50 rather than by the own vehicle.
[0116] The stability estimation module 163 estimates the user arrival time t a and job completion time t j Compared with the job completion time tj is the user arrival time t a If the vehicle is in the stable mode, the job completion time t j is the user arrival time t a When the time lag is longer than the predetermined time lag, the stability estimation module 163 estimates that the host vehicle is in an unstable mode. Furthermore, when the IG sensor 123 detects that the ignition is on, the stability estimation module 163 estimates that the host vehicle is in a driving mode in which the user drives the host vehicle.
[0117] The stability estimation module 163 calculates the stability of the vehicle using, for example, a points system. The stability of the vehicle is calculated using, for example, the following criteria. Longer estimated distances are more stable than shorter estimated distances. A wider communication bandwidth provides greater stability than a narrower communication bandwidth. - Charging is more stable when it is on than when it is off. · A system with more computing resources is more stable than one with fewer computing resources. A longer period during which job processing can be performed is more stable than a shorter period. · When there are many other vehicles participating in the same grid computing in the vicinity, stability is higher than when there are few such other vehicles.
[0118] In calculating the stability, the above items may have different priorities. For example, the determination regarding the estimated distance may have the highest priority.
[0119] As will be described in detail later, the stability calculated here is used when selecting a transfer destination to which the partial job data D1a is to be transferred.
[0120] Information about the mode estimated by the stability estimation module 163 is sent to the process execution management module 167 .
[0121] When the process execution management module 167 acquires information that the host vehicle is estimated to be in stable mode, it continues the job calculation processing according to the schedule. When the process execution management module 167 acquires information that the host vehicle is estimated to be in unstable mode, it stops the job calculation processing and prepares to transfer partial job data D1a to other surrounding vehicles. When the process execution management module 167 acquires information that the host vehicle has transitioned from unstable mode to driving mode, it performs a predetermined process described below.
[0122] The process execution management module 167 transmits control signals to the computing unit 150 and the communication control module 168, respectively.
[0123] The computing unit 150 performs arithmetic processing of the job based on the partial job data D1a. Based on a control signal from the processing execution management module 167, the computing unit 150 executes or stops the arithmetic processing of the job, or packages the partial job data D1a.
[0124] The communication control module 168 controls the operation of the communication unit 103. As will be described in detail later, the communication control module 168 controls the communication unit 103 to transfer the partial job data D1a to other vehicles.
[0125] The calculator 150, the user arrival time estimation module 161, the position detection module 162, the stability estimation module 163, the communication state management module 164, the charging state monitoring module 165, the computational resource management module 166, the processing execution management module 167, and the communication control module 168 are examples of modules that make up the control unit 106. The user terminal 20, and a keyless key or a smart key (registered trademark) are examples of portable devices owned by a user.
[0126] <Flowchart of Estimation Processing> 10 is a flowchart illustrating an example of the estimation process executed by the control unit 106. Note that the following describes a case where the user position can be identified by the key detection sensor 122 or the like.
[0127] First, in step S21, the control unit 106 acquires various pieces of information including information from the sensor 12.
[0128] Next, in step S22, the control unit 106 detects the current location of the user. Here, not only the two-dimensional position of the user but also the height position, that is, the three-dimensional position, is detected.
[0129] Next, in step S23, the control unit 106 estimates the distance between the user and the vehicle. Here, the straight-line distance between the user and the vehicle is estimated.
[0130] Subsequently, in step S24, the control unit 106 estimates the user's moving speed from the change over time in the distance between the user and the vehicle.
[0131] Next, in step S25, the control unit 106 calculates the user arrival time t a Estimate.
[0132] Next, in step S26, the control unit 106 calculates the job completion time t j Estimate.
[0133] Subsequently, in step S27, the control unit 106 calculates the user arrival time t a is the job completion time t j The control unit 106 determines whether the user arrival time t a is the job completion time t j If the answer is YES, the process proceeds to step S28. On the other hand, the control unit 106 determines whether the user arrival time ta is the job completion time t j If the answer is YES, that is, if the answer is less than the predetermined value, the process proceeds to step S29.
[0134] In step S28, the control unit 106 estimates that the host vehicle is in the stable mode. On the other hand, in step S29, the control unit 106 estimates that the host vehicle is in the unstable mode. The control unit 106 returns after step S28 or S29.
[0135] In this way, the estimated distance and the time change of the estimated distance are used to calculate the user arrival time t a By estimating the user arrival time t a In other words, even if the user is located nearby, if the user's moving speed is slow, the user arrival time t a In this way, the user arrival time t a By accurately estimating the above, it is possible to accurately estimate whether the host vehicle is in the unstable mode.
[0136] <Flowchart showing transfer process> The transfer process executed by the control unit 106 to transfer partial job data from the host vehicle MV to the other vehicle OV will be described with reference to Fig. 11 and Fig. 12. Here, a case will be described in which a first other vehicle OV1 and a second other vehicle OV2 participating in the same grid computing are present around the host vehicle MV, as shown in Fig. 12. When there is no need to distinguish between the first other vehicle OV1 and the second other vehicle OV2, they will simply be referred to as the other vehicles OV.
[0137] First, in step S301, the control unit 106 estimates the mode of the host vehicle MV. The control unit 106 estimates whether the host vehicle MV is in the stable mode or the unstable mode, particularly based on the flowchart of FIG.
[0138] Next, in step S302, the control unit 106 determines whether the host vehicle MV is in the unstable mode. If the result of the determination is YES, that is, the host vehicle MV is in the unstable mode, the control unit 106 proceeds to step S303. If the result of the determination is NO, that is, the host vehicle MV is still in the stable mode, the control unit 106 ends the transfer process.
[0139] In step S303, the control unit 106 acquires stability information of other vehicles OV that are present in the vicinity and participating in the same grid computing. This stability information is information indicating the stability calculated by the control unit 106 of the calculation device 105 of the other vehicle OV. As shown in FIG. 12, this stability information includes the distance between the other vehicle OV and the user of the other vehicle OV, the communication status of the other vehicle OV, and the like. It also includes information on whether the other vehicle OV is in a stable mode, an unstable mode, or a traveling mode. As shown in FIG. 12, the control unit 106 of the host vehicle MV acquires stability information from each of the first other vehicle OV1 and the second other vehicle OV2 via the communication unit 103.
[0140] Next, in step S304, the control unit 106 starts transferring the partial job data D1a that the host vehicle MV has been processing to the other vehicle OV with the highest stability among the other vehicles OV present in the vicinity. Here, as shown in FIG. 12, it is assumed that the first other vehicle OV1 is selected and the partial job data D1a is transferred. The control unit 106 stops the processing of the partial job data D1a and saves the partial job data D1a. Then, the control unit 106 packages the partial job data D1a. At this time, if partial calculation result data exists, the partial calculation result data is also packaged. After completing the packaging of the partial job data D1a, the control unit 106 starts transferring the partial job data D1a to the first other vehicle OV1. The control unit 106 transfers the partial job data D1a by vehicle-to-vehicle communication via the communication unit 103.
[0141] Next, in step S305, the control unit 106 determines whether the first other vehicle OV1 of the transfer destination is in the unstable mode. The control unit 106 determines whether the first other vehicle OV1 is in the unstable mode based on the stability information acquired from the first other vehicle OV1. If the determination is YES, that is, the control unit 106 has estimated that the first other vehicle OV1 of the transfer destination is in the unstable mode, the control unit 106 proceeds to step S306. On the other hand, if the determination is NO, that is, the control unit 106 has estimated that the first other vehicle OV1 of the transfer destination remains in the stable mode, the control unit 106 proceeds to step S310.
[0142] In step S306, the control unit 106 searches for another destination while continuing to transfer the partial job data D1a to the first other vehicle OV1. In the example shown in Fig. 12, the second other vehicle OV2 is selected.
[0143] Next, in step S307, the control unit 106 determines whether the first other vehicle OV1 of the transfer destination has transitioned to the running mode. The control unit 106 determines whether the first other vehicle OV1 of the transfer destination has transitioned to the running mode based on the stability information acquired from the first other vehicle OV1. If the determination is YES, meaning that the first other vehicle OV1 of the transfer destination has transitioned to the running mode, the control unit 106 proceeds to step S308. On the other hand, if the determination is NO, meaning that the first other vehicle OV1 of the transfer destination has not transitioned to the running mode, the control unit 106 proceeds to step S310.
[0144] In step S308, the control unit 106 stops transferring the partial job data D1a to the first other vehicle OV1 and searches for another transfer destination. In the example shown in Figure 12, the second other vehicle OV2 is selected.
[0145] Next, in step S309, the control unit 106 starts transferring the partial job data D1a to the other transfer destination (the second other vehicle OV2 in FIG. 12) found in step S308.
[0146] In step S310, which is performed after step S309 or when the determination in step S305 is NO, or when the determination in step S307 is NO, the control unit 106 determines whether the transfer is complete. The control unit 106 determines that the transfer is complete when it receives a transfer completion notification from the transfer destination (here, the first other vehicle OV1 or the second other vehicle OV2). If the determination in step S305 is YES, meaning that the transfer is complete, the control unit 106 proceeds to step S311. On the other hand, if the determination in step S305 is NO, meaning that the transfer is not complete, the control unit 106 returns to step S305.
[0147] Then, in step S311, the control unit 106 deletes the partial job data D1a stored in the host vehicle MV. After step S311, the control unit 106 ends the transfer process.
[0148] In this manner, the control unit 106 of the host vehicle MV performs the transfer process. When there is no other vehicle OV in the vicinity to which the host vehicle MV can transfer the partial job data D1a, the control unit 106 calculates the transmission time for returning the partial job data D1a to the management server 50. Then, the control unit 106 calculates whether the transmission time is longer than the user arrival time t a If the transmission time is shorter than the user arrival time t a If the partial job data D1a is longer than the specified time, the partial job data D1a is held and the management server 50 is notified of this fact.
[0149] Next, the transfer process when the host vehicle MV transitions to the driving mode will be described with reference to Fig. 13. Note that steps S401 to S404 described below are the same as steps S301 to S304 described above, and therefore detailed description thereof will be omitted.
[0150] First, in step S401, the control unit 106 estimates the mode of the host vehicle MV.
[0151] Next, in step S402, the control unit 106 determines whether the host vehicle MV is in the unstable mode. If the result of the determination is YES, that is, the host vehicle MV is in the unstable mode, the control unit 106 proceeds to step S403. If the result of the determination is NO, that is, the host vehicle MV is still in the stable mode, the control unit 106 ends the transfer process.
[0152] In step S403, the control unit 106 acquires stability information of other vehicles OV that exist in the vicinity and are participating in the same grid computing.
[0153] Next, in step S404, the control unit 106 starts transferring the partial job data D1a that has been processed by the host vehicle MV to the other vehicle OV with the highest stability among the other vehicles OV present in the vicinity.
[0154] Next, in step S405, the control unit 106 determines whether the host vehicle MV has transitioned to the driving mode. The control unit 106 determines whether the host vehicle has transitioned to the driving mode based on the detection result of the IG sensor 123. If the result is YES, that is, the host vehicle MV has transitioned to the driving mode, the control unit 106 proceeds to step S406. On the other hand, if the result is NO, that is, the host vehicle MV has not transitioned to the driving mode, the control unit 106 proceeds to step S409.
[0155] In step S406, the control unit 106 continues the transfer to the other vehicle OV while notifying the user of the host vehicle MV that some of the functions in the driving mode will be restricted. The restricted functions here are functions that are not directly related to the driving operation of the host vehicle MV, such as watching TV on the display unit of the navigation system and updating map information. At this time, the user may be notified of the time required to transfer the partial job data D1a.
[0156] Next, in step S407, control unit 106 determines whether or not the user has given permission to restrict the function. If the result is YES, that is, the user has given permission, control unit 106 proceeds to step S409. On the other hand, if the result is NO, that is, the user has not given permission, control unit 106 proceeds to step S408.
[0157] In step S408, the control unit 106 holds the partial job data D1a and notifies the management server 50. After step S408, the transfer process ends.
[0158] In step S409, which is reached when the determination in step S405 is NO or the determination in step S407 is YES, the control unit 106 determines whether the transfer is complete. The control unit 106 determines that the transfer is complete when it receives a transfer completion notification from the other vehicle OV that is the transfer destination. If the determination is YES, meaning that the transfer is complete, the control unit 106 proceeds to step S410. On the other hand, if the determination is NO, meaning that the transfer is not complete, the control unit 106 returns to step S405.
[0159] Then, in step S410, the control unit 106 deletes the partial job data D1a stored in the host vehicle MV. After step S410, the control unit 106 ends the transfer process.
[0160] In this way, the control unit 106 of the host vehicle MV also responds when the host vehicle MV transitions to a driving mode. When it is estimated that the host vehicle MV will return to a stable mode from an unstable mode, the control unit 106 of the host vehicle MV continues transmitting the partial job data D1a to the other vehicle OV if the transfer of the partial job data D1a has already begun. This eliminates the need to execute the transfer process from the beginning even if the host vehicle MV returns to an unstable mode, thereby improving efficiency. On the other hand, if the state is before the transfer of the partial job data D1a is started, for example, if the job calculation process has been stopped, the job calculation process in the host vehicle MV is resumed without starting the transfer process to the other vehicle OV.
[0161] Furthermore, when the control unit 106 of the host vehicle MV estimates that the host vehicle MV has transitioned to the driving mode before starting to transfer the partial job data D1a to the other vehicle OV, the control unit 106 returns the partial job data D1a to the management server 50. At this time, the control unit 106 also notifies the user of the host vehicle MV that some of the functions in the driving mode will be restricted. Then, if the user gives permission, the control unit 106 returns the partial job data D1a to the management server 50. On the other hand, if the user does not give permission, the control unit 106 retains the partial job data D1a and notifies the management server 50 of this fact.
[0162] Therefore, in this embodiment, the calculation device 105 of the vehicle 10 includes a control unit that performs calculation processing of a job. The control unit 106 performs an estimation process to estimate whether the host vehicle is in a stable mode in which the calculation processing of the job can be stably executed, or in an unstable mode in which the calculation processing of the job may be stopped, and a transfer process to package job data related to the job being calculated when the host vehicle is estimated to be in the unstable mode, and transfer the packaged job data to other vehicles parked around the host vehicle and participating in grid computing via the communication unit 103 of the host vehicle. In the estimation process, the control unit 106 calculates a user arrival time t a and calculate the job completion time t j and estimate the user arrival time t a and job completion time t j Compared with the job completion time t j is the user arrival time t a If the vehicle is in the stable mode, the job completion time t j is the user arrival time t aIf the time lag is longer than , the host vehicle is estimated to be in an unstable mode. As a result, when a user suddenly uses the vehicle and it is difficult to complete the job calculation processing before the user starts using the host vehicle, the host vehicle is determined to be in an unstable mode, and the partial job data D1a is transferred to another vehicle participating in the same grid computing. As a result, the job calculation is continued by the other vehicle. Therefore, even if a huge amount of calculation is required to complete the job, the job calculation can be completed. Therefore, the job calculation processing can be stabilized.
[0163] In particular, in this embodiment, the communication unit 103 communicates with a mobile device owned by the user, and the control unit 106 estimates the distance between the vehicle and the user from the position of the mobile device, and calculates the user arrival time t a This estimates the user arrival time t a By accurately estimating the above, it is possible to accurately estimate whether the host vehicle is in the unstable mode. As a result, the job calculation processing can be made more stable.
[0164] Furthermore, in this embodiment, the communication unit 103 acquires stability information indicating the stability of the calculation processing when the other vehicle performs the job calculation processing, and when there are multiple other vehicles, the control unit 106 transfers the partial job data D1a to the other vehicle with the highest stability based on the stability information. This makes it possible to transfer the job to the other vehicle that is as stable as possible when the host vehicle is in an unstable mode. This makes it possible to further stabilize the job calculation processing.
[0165] In particular, in this embodiment, the stability information includes information on whether the other vehicle is in stable mode or unstable mode. When the other vehicle to which the partial job data D1a is to be transferred transitions to unstable mode during the transfer of the partial job data D1a, the control unit 106 continues transferring the partial job data D1a and searches for a new other vehicle to which the partial job data D1a can be transferred, excluding the other vehicle. This allows the partial job data D1a to be quickly transferred to another other vehicle, even if the other vehicle to which the partial job data D1a was to be transferred is used as a mobile body before the transfer is complete. This makes it possible to further stabilize the job calculation processing.
[0166] Furthermore, in this embodiment, when the control unit 106 estimates that the host vehicle will transition from unstable mode to stable mode while transmitting the partial job data D1a to another vehicle, the control unit 106 continues transferring the partial job data D1a to the other vehicle. This eliminates the need to execute the transfer process from the beginning even if the host vehicle enters unstable mode again, thereby improving efficiency. Furthermore, if the partial job data D1a is being transferred, transferring the partial job data D1a to the other vehicle and having the other vehicle perform the job calculation processing is likely to result in higher stability of the calculation processing than resuming the job calculation processing in the host vehicle. As a result, the job calculation processing can be made more stable.
[0167] Furthermore, in this embodiment, when it is estimated that the host vehicle will transition to the driving mode while the control unit 106 is transferring the partial job data D1a to another vehicle, the control unit 106 notifies the user of the host vehicle that the arithmetic processing of the control unit 106 in the driving mode will be restricted during the transfer of the partial job data D1a. This allows the transfer of the partial job data D1a to be continued after notifying the user that the arithmetic processing of the control unit 106 in the driving mode will be restricted. Therefore, the transfer of the partial job data D1a can be completed with as little inconvenience as possible for the user. As a result, the transfer of the partial job data D1a can be completed, thereby making the job arithmetic processing more stable.
[0168] (Other embodiments) The technology disclosed herein is not limited to the above-described embodiments, and can be substituted within the scope of the claims.
[0169] For example, in the above embodiment, the control unit 106 of the vehicle 10 determines the job completion time t j and user arrival time t a This is not the only way to calculate the job completion time t j and user arrival time t a Furthermore, the management server 50 may estimate the stability and mode of each vehicle 10, and the partial job data D1a may be transferred from the vehicle 10 in the unstable mode to other vehicles in response to a control signal from the management server 50.
[0170] The above-described embodiments are merely examples and should not be construed as limiting the scope of the present disclosure. The scope of the present disclosure is defined by the claims, and all modifications and variations that fall within the scope of the claims equivalents are within the scope of the present disclosure. [Industrial Applicability]
[0171] The technology disclosed herein is useful when a plurality of vehicles are stopped and a job is processed using grid computing in which each of the vehicles serves as a computing node. [Explanation of symbols]
[0172] 10 vehicles 103 Communications Department 106 Control Unit D1a Partial job data MV Vehicle OV Other vehicles
Claims
1. A computing device of a plurality of vehicles that, when the ignition or power of the plurality of vehicles is off, serves as a computing resource for grid computing, performing job computation processing using each of the plurality of vehicles as a computing node, comprising: a control unit that performs calculation processing for the job, The control unit an estimation process for estimating whether the host vehicle is in a stable mode in which the arithmetic processing of the job can be stably executed, or in an unstable mode in which the arithmetic processing of the job may be stopped; a transfer process of transferring job data related to the job being processed to other vehicles that are parked around the host vehicle and participating in the grid computing via a communication unit of the host vehicle when it is estimated that the host vehicle is in the unstable mode; Run Furthermore, in the estimation process, the control unit compares a user arrival time, which is the time it takes for the user of the vehicle to reach the vehicle's stopping position, with a job completion time, which is the time it takes for the vehicle to complete the job calculation, and if the job completion time is less than or equal to the user arrival time, estimates that the vehicle is in the stable mode, and if the job completion time is longer than the user arrival time, estimates that the vehicle is in the unstable mode.
2. 2. The vehicle computing device according to claim 1, the communication unit communicates with a mobile device owned by the user; The control unit estimates the distance between the vehicle and the user from the position of the mobile device, and estimates the user arrival time based on the estimated distance and the change in the estimated distance over time.
3. 3. The vehicle computing device according to claim 1, the communication unit acquires stability information indicating the stability of the arithmetic processing when the other vehicle performs the arithmetic processing of the job; The control unit transfers the job data to the other vehicle when there is one other vehicle, and transfers the job data to the other vehicle with the highest stability based on the stability information when there are multiple other vehicles.
4. 4. The vehicle computing device according to claim 3, the stability information includes information regarding whether the other vehicle is in the stable mode or the unstable mode, The control unit, when it is estimated that another vehicle to which the job data is to be transferred is in the unstable mode during the transfer of the job data, continues the transfer of the job data and searches for another vehicle to be a new transfer destination other than the other vehicle.
5. The vehicle computing device according to any one of claims 1 to 4, The control unit of the vehicle calculation device is characterized in that, when it is estimated that the vehicle will transition from the unstable mode to the stable mode while transferring the job data to the other vehicle, the control unit continues transferring the job data to the other vehicle.
6. The vehicle computing device according to any one of claims 1 to 5, When it is estimated that the vehicle has transitioned to a driving mode in which the user drives the vehicle while the job data is being transferred to the other vehicle, the control unit notifies the user of the vehicle that the control unit should not perform calculation processing in the driving mode while the job data is being transferred. A computing device for a vehicle that notifies the driver of a restriction.
7. An information processing method executed by a computer when performing calculation processing of a job using grid computing in which each of a plurality of vehicles serves as a calculation node while the ignition or power of the plurality of vehicles is off, comprising: a step of estimating a job completion time, which is a time required for a specific vehicle among the plurality of vehicles to complete the calculation of the job; a step of estimating a user arrival time, which is a time required for a user of the specific vehicle to arrive at a stopping position of the specific vehicle; a mode estimation step of estimating whether the specific vehicle is in a stable mode in which the job processing can be stably executed or an unstable mode in which the job processing may be stopped by comparing the job completion time with the user arrival time; a job transfer step of transferring job data relating to the job being processed when it is estimated that the specific vehicle is in the unstable mode to other vehicles that are parked around the specific vehicle and participating in the grid computing, The information processing method is characterized in that the mode estimation process is a process of estimating that the specific vehicle is in the stable mode when the job completion time is less than or equal to the user arrival time, and estimating that the specific vehicle is in the unstable mode when the job completion time is longer than the user arrival time.
Citation Information
Patent Citations
Calculation resource provision method and calculation resource provision system
JP2017111727A
Management server and program
JP2020160661A
Vehicle parking / stopping hours prediction device, vehicle parking / stopping hours prediction method, and program
JP2020160736A
Vehicle software update system
JP2021043734A
Vehicle arithmetic processing unit, sever computer, and program
JP2021060651A