Management system, management method, and arithmetic unit for vehicle
The management system stabilizes vehicle-based grid computing by estimating user arrival times and job completion times to manage vehicle usage, preventing computation abortion and ensuring continuous processing through user delays or data transfer.
Patent Information
- Application Number
- JP2021129031
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-08-05
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2041-08-05
AI Technical Summary
Existing grid computing systems using vehicle computing devices face instability in job computation processing due to unpredictable vehicle usage patterns, leading to potential abortion of computations when vehicles are unexpectedly used by users.
A management system that estimates user arrival times and job completion times to determine stable or unstable modes for vehicle computing nodes, requesting users to delay vehicle use or transfer computations to maintain stable processing.
Stabilizes job computation processing by ensuring vehicles remain available for grid computing tasks, reducing computation abortion and enhancing overall system reliability.
Smart Images

Figure 0007707733000001 
Figure 0007707733000002 
Figure 0007707733000003
Abstract
Description
Technical Field
[0001] The technology disclosed herein belongs to the technical field of management systems, management methods, and computing devices of vehicles.
Background Art
[0002] In recent years, vehicles are equipped with computing devices having relatively high computing capabilities for performing electronic control. Such computing devices have been in a state where they are not effectively utilized when the vehicle is not in use, such as when the vehicle is parked. In response to such a situation, it has been considered to effectively utilize the computing devices mounted on vehicles by performing grid computing using the computing devices respectively mounted on a plurality of vehicles.
[0003] For example, Patent Document 1 discloses a management server for grid computing using a communication device mounted on a vehicle. This management server includes a signal reception unit that receives a signal indicating that it is possible to participate in grid computing from the communication device, a state determination unit that determines a shortage state of the processing capacity of the processing device, and a response transmission unit that transmits an instruction to participate in grid computing to the communication device when the processing capacity of the processing device is insufficient.
[0004] Further, Patent Document 2 discloses a method for providing computing resources in which a vehicle group formed by a plurality of vehicles generates vehicle group resource information that is information regarding a time when the vehicle group can communicate with a user terminal and computing resources that can be provided within the time, and receives a request for execution of a task that matches the vehicle group resource information from the user terminal.
[0005] In Patent Document 2, during the running of the vehicle, based on the position information of the user terminal, the distance between the user terminal and the last vehicle that can directly communicate with the user terminal in the vehicle group is calculated, and it is calculated whether the vehicle group can complete the execution of a task during the period when it can communicate with the user terminal according to the distance. When the time required to complete the execution of the task becomes less than or equal to the time when the user terminal and the vehicle group can communicate, the execution of the task is interrupted, and the intermediate result is transmitted to the user terminal.
Prior Art Document
Patent Document
[0006]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0007] By the way, when performing grid computing by an arithmetic device mounted on a vehicle, from the viewpoint of improving the stability of communication between the vehicle and the server and communication between vehicles, it is desirable to perform job arithmetic processing during a period when the vehicle is not in use, especially when the vehicle is parked. In Patent Document 1, based on the usage history of the vehicle, a period when the vehicle is not in use is specified, and schedule information is generated in which the specified period is set as a period during which the arithmetic device can participate in grid computing. In Patent Document 1, based on this schedule information, a relatively stable computing power can be provided.
[0008] However, the period during which the vehicle is not used is not always constant. Even if it is presumed to be a period during which the vehicle is not used based on the vehicle's usage history or the user's behavior history, the user may use the vehicle, such as when going shopping. If the vehicle is executing job computation processing, the computation processing will be aborted. As disclosed in Patent Document 2, it is conceivable to interrupt the execution of the computation processing and transmit the intermediate result to the user terminal. However, in the case of a job that requires a huge amount of computation processing, the utilization value as a computation result will be small with only the intermediate result.
[0009] The technology disclosed herein has been made in view of such a point, and its object is to stabilize the computation processing of a job in grid computing using a vehicle's computing device.
Means for Solving the Problem
[0010] In order to solve the above problems, in the technology disclosed herein, for a management system of grid computing that performs computation processing of a job with each of a plurality of vehicles as a computing node when the plurality of vehicles are parked, it includes a communication unit and a control unit. The control unit compares a user arrival time, which is the time until a user of a specific vehicle among the plurality of vehicles reaches the parking position of the specific vehicle, with a job completion time, which is the time until the specific vehicle completes the computation of the job. When the job completion time is equal to or less than the user arrival time, it is presumed that the specific vehicle is in a stable mode in which the computation processing of the job can be stably executed. On the other hand, when the job completion time is longer than the user arrival time, it is presumed that the specific vehicle is in an unstable mode in which the computation processing of the job may be aborted. When it is presumed that the specific vehicle is in the unstable mode, a delay request process is executed to request the user of the specific vehicle via the communication unit to delay the timing for using the specific vehicle for traveling.
[0011] That is, when the user approaches a specific vehicle, it is highly likely that the user will operate the specific vehicle and use it for driving. Therefore, if the user arrival time is estimated, the time available for the computing device to perform job computations can be estimated. Then, by comparing the estimated user arrival time with the job completion time, it is possible to estimate whether the job can be completed before the user uses the specific vehicle.
[0012] And when it is difficult to complete the job before the user operates the specific vehicle, assuming it is an unstable mode, the user is requested to delay the timing of operating the specific vehicle until the completion of the job computation processing. As a result, it is possible to prompt the user not to operate the specific vehicle until the job computation processing is completed, and the job computation processing can be stably continued. Therefore, the job computation processing can be stabilized.
[0013] Note that "operating the vehicle" means putting the specific vehicle in a drivable state. For example, it means turning on the ignition or power.
[0014] In the management system, the information notified to the user in the delay request process may be configured to include information on the time from the current time to the job completion time.
[0015] According to this configuration, the user can understand the time until the job computation processing is completed and can understand how much to delay before operating the specific vehicle. As a result, the user can easily respond to the delay request. Consequently, the job computation processing can be stabilized.
[0016] In the management system, the information notified to the user in the delay request process may be configured to include information regarding the reward given to the user when the timing of operating the specific vehicle is delayed.
[0017] According to this configuration, by presenting the user with a positive reason to respond to the calculation continuation request, it becomes easier for the user to respond to the delay request, so that the calculation processing of the job can be stabilized.
[0018] In the management system, the information notified to the user in the delay request processing may be configured to include the information of the facility where the user stays, which is acquired by the control unit via the communication unit.
[0019] According to this configuration, it becomes easier for the user to consider how to spend the time until the job is completed. As a result, it becomes easier for the user to respond to the delay request. As a result, the calculation processing of the job can be stabilized.
[0020] In the management system, when the excess time, which is the time exceeding the user arrival time among the job completion times, is less than a predetermined time, the delay request processing is executed. On the other hand, when the excess time is equal to or more than the predetermined time, instead of executing the delay request processing, a transfer process is executed to transfer the job data related to the job being calculated in the specific vehicle to other vehicles that are parked around the specific vehicle and participating in the grid computing.
[0021] That is, when the excess time is short, since the user's waiting time is short, the user is highly likely to respond to the delay request. On the other hand, when the excess time is too long, the user is highly likely to feel bothered and not respond to the delay request. Therefore, when the excess time, that is, the user's waiting time is less than a predetermined time, a delay request is made, and when the user's waiting time is equal to or more than the predetermined time, the job data is transferred to other vehicles. As a result, when the excess time is short, the calculation processing of the job can be continued on the specific vehicle, and when the excess time is long, the calculation processing of the job can be taken over by other vehicles. Thereby, the calculation processing of the job can be stabilized.
[0022] Other aspects of the technology disclosed herein are directed to a method for managing grid computing that performs arithmetic processing of jobs using each of a plurality of vehicles as a computing node when the plurality of vehicles are parked. Specifically, the management method includes a step of estimating a job completion time, which is the time until a specific vehicle among the plurality of vehicles completes the arithmetic operation of the job, a step of calculating a user arrival time, which is the time until a user of the specific vehicle reaches the parking position of the specific vehicle, a mode estimation step of comparing the job completion time and the user arrival time and 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, and a delay request step of requesting the user of the specific vehicle to delay the timing of operating the specific vehicle when it is estimated that the specific vehicle is in the unstable mode.
[0023] Even with this configuration, when it is difficult for a user to complete a job before operating a specific vehicle, the user is requested to delay operating the specific vehicle until the arithmetic processing of the job is completed. Thereby, the arithmetic processing of the job can be stably continued until the arithmetic processing of the job is completed. Therefore, the arithmetic processing of the job can be stabilized.
[0024] Yet another aspect of the technology disclosed herein targets a computing device of a vehicle that serves as a computing resource for grid computing to perform arithmetic processing of a job with each of the plurality of vehicles as a computing node when the plurality of vehicles are parked. Specifically, the computing device of this vehicle includes a control unit that performs arithmetic processing of the job. The control unit compares a user arrival time, which is the time until a user of the host vehicle reaches the parking position of the host vehicle, with a job completion time, which is the time until the host vehicle completes the arithmetic operation of the job. When the job completion time is equal to or less than the user arrival time, it is estimated that the host vehicle is in a stable mode in which the arithmetic processing of the job can be stably executed. On the other hand, when the job completion time is longer than the user arrival time, it is estimated that the host vehicle is in an unstable mode in which the arithmetic processing of the job may be aborted. When it is estimated that the host vehicle is in the unstable mode, a delay request process is executed to request the user of the host vehicle to delay the timing of operating the host vehicle.
[0025] Even with this configuration, when it is difficult for the user to complete the job before operating the host vehicle, the user is requested to delay operating the host vehicle until the arithmetic processing of the job is completed. Thereby, it is possible to prompt the user not to operate the host vehicle until the arithmetic processing of the job is completed, and it is possible to stably continue the arithmetic processing of the job. Therefore, the arithmetic processing of the job can be stabilized.
Advantages of the Invention
[0026] As described above, according to the technology disclosed herein, in grid computing using a computing device of a vehicle, the arithmetic processing of a job can be stabilized.
Brief Description of the Drawings
[0027]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
DETAILED DESCRIPTION OF THE INVENTION
[0028] Hereinafter, exemplary embodiments will be described in detail with reference to the drawings.
[0029] 〔Embodiment 1〕 (Configuration of the System) FIG. 1 illustrates the configuration of a system 1 including a vehicle 10 having an arithmetic unit 105 according to Embodiment 1. This 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. An arithmetic unit 105 is installed in each of the plurality of vehicles 10.
[0030] (Grid Computing) As shown in FIG. 2, in the system 1 of Embodiment 1, grid computing is configured by the arithmetic units 105 installed in the respective vehicles 10. In grid computing, grid computing processing is performed to cause an available arithmetic unit 105 among the plurality of arithmetic units 105 to process job data. That is, the arithmetic unit 105 corresponds to the computing resources of grid computing that perform arithmetic processing of jobs with each of the plurality of vehicles 10 as a computing node.
[0031] When the computing power of the arithmetic unit 105 is required in the vehicle 10, the arithmetic unit 105 is in an operating state, and the computing power of the arithmetic unit 105 is utilized. For example, when the vehicle 10 is running, the computing power of the arithmetic unit 105 is required for running control of the vehicle 10, and the arithmetic unit 105 is in an operating state.
[0032] On the other hand, when the computing power of the arithmetic unit 105 is not required in the vehicle 10, the arithmetic unit 105 is in a stopped state, and the computing power of the arithmetic unit 105 is not utilized. For example, when the vehicle 10 stops and is in an ignition-off or power-off state, the computing power of the arithmetic unit 105 is not required, and the arithmetic unit 105 is in a stopped state.
[0033] Here, when the computing power of the computing device 105 is not required in the vehicle 10, by providing the computing power of the computing device 105 for grid computing processing, it becomes possible to effectively utilize the computing power of the computing device 105. Basically, the computing device 105 is used as computing resources for grid computing when the vehicle 10 is stopped, that is, when the computing power of the computing device 105 is not used for driving control.
[0034] (Configuration of Vehicle) The vehicle 10 is a vehicle owned by a user. The user drives the vehicle 10. In this example, the vehicle 10 is an automobile. Further, the vehicle 10 is equipped with a battery (not shown). The power of the battery is supplied to in-vehicle devices such as the computing device 105. Examples of such a vehicle 10 include an electric vehicle and a plug-in hybrid vehicle.
[0035] 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.
[0036] The actuator 11 includes actuators for the drive system, actuators for the steering system, actuators for the braking system, etc. Examples of actuators for the drive system include an engine, a transmission, and a motor. An example of an actuator for the braking system is a brake. An example of an actuator for the steering system is a steering.
[0037] The sensor 12 acquires various types of information used for controlling the vehicle 10. Examples of the sensor 12 include an external camera 121 (see FIG. 8) that images the outside of the vehicle, an in-vehicle camera that images the inside of the vehicle, a radar that detects an object 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), an ignition sensor 123 (see FIG. 8. Hereinafter referred to as the IG sensor 123), etc.
[0038] The input unit 101 inputs information and data. Examples of the input unit 101 include a navigation system that inputs information corresponding to an operation when operated, a camera that inputs an image indicating information, a microphone that inputs a voice indicating information, and the like. The information and data input to the input unit 101 are sent to the arithmetic unit 105.
[0039] The output unit 102 outputs information and data. Examples of the output unit 102 include a display unit that outputs an image indicating information, a speaker that outputs a voice indicating information, and the like.
[0040] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 are sent to the arithmetic unit 105. The communication unit 103 is composed of, for example, a wireless communication device.
[0041] The storage unit 104 stores information and data.
[0042] The arithmetic unit 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 according to various information obtained by the sensor 12.
[0043] The control unit 106 includes a processor, a memory, and the like. Examples of the processor include a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. The memory stores a program for operating the processor, information and data indicating the processing result of the processor, and the like.
[0044] Note that the number of processors constituting the control unit 106 may be one or a plurality. Also, the processor constituting the control unit 106 may be only one of the CPU and the GPU, or both the CPU and the 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 a plurality of ECUs (Electronic Control Unit).
[0045] In this example, the storage unit 104 stores vehicle information D11, vehicle state information D12, driving history information D13, arithmetic unit information D14, and driving schedule information D15.
[0046] 〈Vehicle Information〉 The vehicle information D11 is information regarding 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, and the like. The vehicle ID is an example of vehicle identification information for identifying the vehicle 10. The user ID is an example of user identification information for identifying the user.
[0047] 〈Vehicle State Information〉 The vehicle state information D12 indicates the state of the vehicle 10. For example, the vehicle state information D12 includes vehicle position information, vehicle communication information, vehicle power supply information, vehicle battery remaining amount information, vehicle charging information, and the like. The vehicle position information indicates the position (latitude and longitude) of the vehicle 10. The vehicle position information can be acquired, for example, by GPS (Global Positioning System). The vehicle communication information indicates the communication state of the vehicle 10. The vehicle power supply information indicates the state of the power supply of the vehicle 10. For example, the vehicle power supply information indicates the on / off state of the ignition power supply, the on / off state of the accessory power supply, and the like. The vehicle battery remaining amount information indicates the remaining amount of the battery (not shown) mounted on the vehicle 10. The vehicle charging information indicates whether the vehicle 10 is being charged at a charging facility (not shown).
[0048] 〈Driving History Information〉 The driving history information D13 is information indicating the driving history of the vehicle 10. For example, the driving history information D13 shows the position and date / time of the vehicle 10 in association with each other.
[0049] 〈Arithmetic Unit Information〉 The computing device information D14 is information regarding the computing device 105. For example, the computing device information D14 includes a computing device ID set for the computing device 105, a vehicle ID set for the vehicle 10 on which the computing device 105 is mounted, computing device performance information indicating the performance of the computing device 105, and the like. The computing device ID is an example of computing device identification information for identifying the computing device 105. The performance of the computing device 105 indicated by the computing device performance information includes a computing power (specifically, a maximum computing power) indicating the computing ability of the computing device 105, a ratio between the CPU and the GPU in the computing device 105, and the like. Note that the computing power of the computing device 105 is the amount of data that the computing device 105 can compute per unit time.
[0050] 〈Driving Schedule Information〉 The driving schedule information D15 is information indicating the usage schedule of the computing device 105. For example, the schedule information indicates the date and time when the computing device 105 is used for driving control. The schedule information may indicate the date and time when the computing 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. Further, the schedule information may indicate a driving schedule estimated based on the driving history information D13.
[0051] (Configuration of User Terminal) The user terminal 20 is a terminal device owned by the user. The user operates the user terminal 20 to use various functions. Further, the user can carry the user terminal 20. Examples of such a user terminal 20 include a smartphone, a tablet, a laptop personal computer, and the like.
[0052] 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.
[0053] The input unit 201 inputs information and data. Examples of the input unit 201 include an operation unit that inputs information corresponding to an operation when operated, a camera that inputs an image indicating information, a microphone that inputs a voice indicating information, and the like. For example, the user can make a reservation registration for a destination by operating the operation unit to access the navigation system of the vehicle 10. The information input to the input unit 101 is sent to the arithmetic unit 105.
[0054] The output unit 202 outputs information and data. Examples of the output unit 202 include a display unit that outputs an image indicating information, a speaker that outputs a voice indicating information, and the like.
[0055] 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.
[0056] The storage unit 204 stores information and data.
[0057] The control unit 205 controls each part of the user terminal 20. The control unit 205 includes a processor, a memory, and the like. The memory stores a program for operating the processor, information and data indicating the processing result of the processor, and the like.
[0058] In this example, the storage unit 204 stores terminal information D21, terminal state information D22, and schedule information D23.
[0059] 〈Terminal Information〉 The terminal information D21 is information regarding 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, and the like. The user terminal ID is an example of user terminal identification information for identifying the user terminal 20.
[0060] 〈Terminal State Information〉 The terminal state information D22 is information indicating the state of the user terminal 20. The terminal state information D22 includes user terminal position information indicating the position of the user terminal 20, user terminal communication state information indicating the communication state of the user terminal 20, and the like.
[0061] 〈Schedule Information〉 The schedule information D23 indicates the action history and action plan of the user who owns the user terminal 20. For example, the schedule information D23 indicates the user's position and stay period (or scheduled stay period) in association with each other. Note that the schedule information D23 can be acquired by the schedule function mounted on the user terminal 20. Specifically, by the user using the schedule function to input his / her action history and action plan into the user terminal 20, the schedule information D23 indicating the action history and action plan of that user can be obtained. The schedule information D23 includes a schedule for driving the vehicle 10.
[0062] (Configuration of Client Server) The client server 30 is owned by a client. The client requests the calculation of job data. Examples of such clients include companies, research institutions, educational institutions, and the like.
[0063] 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.
[0064] The input unit 301 inputs information and data. Examples of the input unit 301 include an operation unit that inputs information corresponding to an operation when operated, a camera that inputs an image indicating information, a microphone that inputs a voice indicating information, and the like. The information and data input to the input unit 301 are sent to the control unit 305.
[0065] The output unit 302 outputs information and data. Examples of the output unit 302 include a display unit that outputs an image indicating information, a speaker that outputs a voice indicating information, and the like.
[0066] 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.
[0067] The storage unit 304 stores information and data.
[0068] The control unit 305 controls each part of the client server 30. The control unit 305 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc.
[0069] In this example, the storage unit 304 stores client information D31 and job data D1.
[0070] 〈Client Information〉 Client information D31 is information about the client. 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, the name of the person in charge, the address, the phone number, etc. The client ID is an example of client identification information for identifying the client. The client server ID is an example of client server identification information for identifying the client server 30.
[0071] 〈Job Data〉 Job data D1 is data corresponding to the job and is data to be processed for the execution of the job.
[0072] Note that the job data D1 can be classified according to the calculation type. Examples of the calculation type include a CPU-based calculation type, a GPU-based calculation type, etc. In the job data D1 of the CPU-based calculation type, complex calculations with many conditional branches, such as simulation calculations, tend to be required. In the job data D1 of the GPU-based calculation type, a huge amount of simple calculations, such as image processing and machine learning, tend to be required.
[0073] In addition, 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. In the job data D1 with processing conditions that require constant communication, it is required that the computing resources (i.e., the computing device 105) can always communicate in grid computing processing. In the job data D1 with processing conditions that do not require constant communication, it is not required that the computing resources can always communicate in grid computing processing.
[0074] Note that the storage unit 304 may store job information related to the job. 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 related to the job data corresponding to the job, job due date information indicating the due date of the job, and the like. The job data information indicates the calculation type, processing conditions, required computing power, etc. of the job data.
[0075] (Configuration of the facility server) The facility server 40 is owned by the facility. Examples of facilities include the user's workplace, stadium, theater, cinema, supermarket, restaurant, accommodation facility, ticket sales facility, etc. For facilities that require a visit reservation, the user can make a visit reservation to the facility via the user terminal 20.
[0076] As shown in FIG. 6, the facility server 40 includes an input unit 401, an output unit 402, a communication unit 403, a storage unit 404, and a control unit 405. The configurations of the input unit 401, output unit 402, communication unit 403, storage unit 404, and control unit 405 of the facility server 40 are the same as those of the input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of the client server 30.
[0077] In this example, the storage unit 404 stores facility information D41 and facility usage information D42.
[0078] 〈Facility information〉 The facility information D41 is information about the facility. The facility information D41 includes a facility ID set for the facility, a facility server ID set for a facility server 40 owned by the facility, facility location information indicating the location (latitude and longitude) of the facility, the name of the person in charge, the address, the phone number, and the like. The facility ID is an example of facility identification information for identifying the facility. The facility server ID is an example of facility server identification information for identifying the facility server 40.
[0079] 〈Facility usage information〉 The facility usage information D42 indicates the usage status (usage history and usage plan) of the facility. Specifically, the facility usage information D42 shows the user who uses the facility in association with the stay period (or the scheduled stay period).
[0080] (Configuration of the management server) The management server 50 manages the operation of the system 1 configured with grid computing. The management server 50 is owned by the operator who operates the system 1.
[0081] As shown in FIG. 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 those of the input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of the client server 30. The processing of the control unit 505 described later is executed by a processor constituting the control unit 505 using programs and data stored in the memory of the control unit 505.
[0082] In this example, the storage unit 504 stores a user table D51, an arithmetic unit 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.
[0083] 〈User table〉 The user table D51 is a table for managing users. In the user table D51, for each user, the user ID set for that user, the vehicle ID set for the vehicle 10 owned by that user, the computing device ID set for the computing device 105 owned by that user, the user terminal ID set for the user terminal 20 owned by that user, etc. are registered.
[0084] 〈Computing Device Table〉 The computing device table D52 is a table for managing the computing device 105. In the computing device table D52, for each computing device 105, the computing device ID set for that computing device 105, the user ID set for the user who owns that computing device 105, the vehicle ID set for the vehicle 10 on which that computing device 105 is mounted, etc. are registered.
[0085] Also, in the computing device table D52, for each computing device 105, the performance of that computing device 105 (such as computing power and the ratio of CPU to GPU), the operating status of that computing device 105 (operation history and operation schedule), etc. are registered. In other words, the computing device table D52 includes the operation status information D5 indicating the operation status of each of the plurality of computing devices 105 and the performance information D6 indicating the performance of each of the plurality of computing devices 105. The performance information D6 includes the computing power information D7 indicating the computing power of each of the plurality of computing devices 105.
[0086] 〈Client Table〉 The client table D53 is a table for managing clients. In the client table D53, for each client, the client ID set for that client, the client server ID set for the client server 30 owned by the client, the name of the person in charge of that client, address, phone number, etc. are registered. In the client table D53, the usage history of grid computing is recorded for each client.
[0087] 〈Job Table〉 The job table D54 is a table for managing jobs requested from clients. In the job table D54, for each job, the reception number set for that job, the client ID set for the client who requested that job, the name and content of that job, etc. are registered. Also, in the job table D54, for each job, the calculation type and processing conditions of the job data corresponding to that job, the required computing power which is the computing power required for the calculation of that job data, the due date set for that job, etc. are registered.
[0088] <Resource Table> The resource table D55 is a table for managing computing power in grid computing processing. Specifically, the resource table D55 is a table for managing computing power information regarding the estimated computing power of computing resources. In the resource table D55, for each computing device 105, the computing device ID set for that computing device 105 is registered.
[0089] <Matching Table> The matching table D56 is a table for managing the results of a matching process that matches jobs with grid computing. In the matching table D56, for each job, the reception number set for that job, the job data corresponding to that job, the computing device IDs respectively set for each computing device 105 that constitutes the computing resources assigned to that job data by the matching process, etc. are registered.
[0090] <Job Data> The job data D1 stored in the storage unit 504 is the received job data D1.
[0091] <Calculation Result Data> The calculation result data D2 stored in the storage unit 504 is the calculation result information calculated by grid computing processing, and indicates the result of that calculation.
[0092] (Grid Computing Processing) Next, with reference to FIG. 8, grid computing processing will be described. In grid computing processing, job data D1 is processed by available computing devices 105 among a plurality of computing devices 105. After completion of the matching process, the control unit 505 performs the following process.
[0093] First, in step S11, the control unit 505 refers to the matching table D56 and distributes the job data D1 to be subjected to grid computing processing to the computing device 105 assigned to that job data D1 in the matching process. Specifically, the control unit 505 transmits a part of the job data D1 to each of the computing devices 105 assigned to the job data D1. As a result, the job data D1 is processed in parallel by the computing device 105 assigned to that job data D1.
[0094] Next, in step S12, when the calculation of the data (a part of the job data D1) transmitted to each computing device 105 is completed, each computing device 105 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 computing device 105 and stores the partial calculation result data in the storage unit 504.
[0095] Next, in step S13, the control unit 505 determines whether or not all of the computing devices 105 to which the job data D1 was distributed in step S11 have completed the calculation. When all of the computing devices 105 have completed the calculation, the control unit 505 proceeds to step S14, and when the calculation of at least a part of the computing devices 105 has not been completed, the process of step S12 is performed.
[0096] In step S14, the control unit 505 generates calculation result data D2 (calculation result data D2 indicating the result of the 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 the 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.
[0097] Then, in step S15, a reward is given to the user who provided the computing power of the computing device 105 for grid computing processing by the operator who operates the system 1. Examples of the reward given to the user include points available in the system 1, virtual currency, discount privileges for products, etc. For example, the control unit 505 of the management server 50 performs a process for giving a reward to the user who provided the computing power of the computing device 105 for grid computing processing. Examples of the process for giving a reward include a process of registering in the user table D51 by associating the "user ID" set for the user with the "points" (or virtual currency) available in the system 1, and a process of transmitting information indicating a product discount privilege to the user terminal 20 owned by the user.
[0098] Also, a reward may be given to the user who provided the computing power of the computing device 105 for grid computing processing from the client. For example, the control unit 305 of the client server 30 may execute a process for giving a reward to the user who provided the computing power of the computing device 105 for grid computing processing.
[0099] (Processing of Vehicles in Grid Computing) In order to successfully complete the grid computing process as described above, it is necessary for the computing device 105 of the vehicle 10 to be stably supplied with computing resources, that is, for each vehicle 10 to be able to stably execute job computing processes. The computing device 105 can estimate the time period during which the vehicle 10 will be parked based on the driving schedule information D15 stored in the storage unit 104 and the schedule information D23 obtained from the user terminal 20. That is, the computing device 105 can schedule in advance the time period (the time period during which it can participate in grid computing) during which it can be supplied as a computing resource for grid computing.
[0100] However, even during the time period estimated by the computing device 105 as the time period during which it can participate in grid computing, the user may suddenly drive the vehicle 10, such as when going shopping or moving to work. For this reason, the computing device 105 may have to be used for driving control during the execution of the computing process of the job given in grid computing. At this time, since the computing device 105 has to abort the job, there is a possibility that the grid computing process may not be successfully completed.
[0101] Therefore, in the first embodiment, the management server 50 of the system 1 performs an estimation process for each vehicle 10 participating in grid computing to estimate whether each vehicle 10 is in a stable mode in which it can stably execute the computing process of the job or an unstable mode in which there is a possibility of aborting the computing process of the job. Then, when the management server 50 estimates that a specific vehicle 10a among the vehicles 10 is in the unstable mode, it performs a delay request process to request the user to delay the timing of operating the specific vehicle 10a. Note that the specific vehicle 10a is one of the plurality of vehicles 10 constituting the grid computing, and all the vehicles 10 constituting the grid computing can be the specific vehicle 10a.
[0102] Here, "operating the vehicle" means putting a specific vehicle in a drivable state, for example, turning on the ignition or power supply. That is, "delaying the timing of operation" means delaying the timing of turning on the ignition or power supply, and does not include the case of "operating the vehicle" when the user simply unlocks the door to board the vehicle.
[0103] FIG. 9 shows functional blocks that configure functions for the management server 50 to execute estimation processing.
[0104] The management server 50 has a user arrival time estimation module 551 that estimates the user arrival time t, which is the time it takes for the user of the specific vehicle 10a to reach the parking position of the specific vehicle 10a. Information from the outside vehicle camera 121, key detection sensor 122, and position detection module 162 of the specific vehicle 10a is input to the user arrival time estimation module 551. Travel history information D13 is input to the user arrival time estimation module 551 from the storage unit 14. a A plurality of outside vehicle cameras 121 are arranged on the specific vehicle 10a so as to be able to photograph 360 degrees around the specific vehicle 10a.
[0105] The key detection sensor 122 communicates with the keyless key or smart key (registered trademark) owned by the user of the specific vehicle 10a to detect the position of the keyless key or the like.
[0106]
[0107] The position detection module 162 is a module that communicates with the user terminal 20 owned by the user of the specific vehicle 10a to detect the position of the user terminal 20. The position detection module 162 detects the position of the user terminal 20 using, for example, a GPS sensor mounted on the user terminal 20.
[0108] The user arrival time estimation module 551 estimates the distance between the specific vehicle 10a and the user based on the detection results from the external camera 121, key detection sensor 122, and position detection module 162 of the specific vehicle 10a. The user arrival time estimation module 551 estimates the time change of the estimated distance (i.e., the moving speed of the user) from the estimated distance. Then, from the estimated distance and the moving speed of the user, the user arrival time t a is estimated. When it is difficult to obtain information from the external camera 121, key detection sensor 122, and position detection module 162, the user arrival time estimation module 551 estimates the user arrival time t a from the parking position and driving history information D13 of the specific vehicle 10a.
[0109] The management server 50 has a job completion time estimation module 552 that estimates the job completion time t j which is the time until the specific vehicle 10a (strictly speaking, the calculator of the specific vehicle) completes the calculation of the job. The job completion time estimation module 552 estimates the job completion time t j which is the time until the own vehicle (strictly speaking, the calculator of the own vehicle) completes the calculation of the job, from the information from the calculation resource management module 166 of the specific vehicle 10a and the job data allocated to the specific vehicle 10a (hereinafter referred to as partial job data D1a).
[0110] The calculation resource management module 166 is a module that manages the current calculation resources in the calculator of the own vehicle, in other words, the current calculation ability. Information regarding the current calculation ability of the calculator is input from the calculation resource management module 166 to the stability estimation module 163.
[0111] The job completion time estimation module 552 estimates the job completion time t j when performing the calculation process of the partial job data Da1 with the current calculation ability of the calculator obtained from the calculation resource management module 166.
[0112] The management server 50 obtains the user arrival time t acquired from the user arrival time estimation module 161 a and the job completion time t acquired from the job completion time estimation module 552 j and has a mode estimation module 553 that estimates whether the specific vehicle 10a is in a stable mode or an unstable mode by comparing them.
[0113] The mode estimation module 553 compares the user arrival time t a with the job completion time t j and, when the job completion time t j is equal to or less than the user arrival time t a , estimates that the specific vehicle 10a is in a stable mode. On the other hand, when the job completion time t j is longer than the user arrival time t a , the mode estimation module 553 estimates that the specific vehicle 10a is in an unstable mode.
[0114] Information regarding the mode estimated by the mode estimation module 553 is sent to the processing execution management module 554.
[0115] When the processing execution management module 554 acquires information that the specific vehicle 10a is estimated to be in a stable mode, it continues the arithmetic processing of the job for the specific vehicle 10a according to the schedule. On the other hand, when the processing execution management module 554 acquires information that the specific vehicle 10a is estimated to be in an unstable mode, it performs processing according to the excess time, which is the time exceeding the user arrival time t j in the job completion time t a . The excess time corresponds to the difference between the job completion time t j and the user arrival time t a .
[0116] If the overtime is less than a predetermined time, the processing execution management module 554 executes a delay request process to request a delay from the user of the specific vehicle 10a. On the other hand, when the overtime is equal to or more than the predetermined time, the processing execution management module 554 does not execute the delay request process, but transfers the partial job data 1a being processed in the specific vehicle 10a to other vehicles parked around the specific vehicle 10a and participating in the same grid computing without executing the delay request process. The predetermined time is a time that does not bother the user and is set to, for example, 10 to 20 minutes.
[0117] When the processing execution management module 551 executes the delay request process, it sends a delay request notification to the user terminal 20 via the communication unit 503. On the other hand, when the processing execution management module 551 executes the transfer process, it sends a control signal via the communication unit 503 to control the specific vehicle 10a to transfer the partial job data D1a to the other vehicle.
[0118] Note that the user arrival time estimation module 551, the job completion time estimation module 552, the mode estimation module 553, the position detection module 162, the stability estimation module 163, the communication state management module 164, and the processing execution management module 554 are examples of the modules that constitute the control unit 505 of the management server 50. Also, the position detection module 162 and the calculation resource management module 166 are examples of the modules that constitute the control unit 106 of the specific vehicle 10a.
[0119] <Flowchart of Estimation Process> FIG. 10 is a flowchart illustrating the estimation process executed by the management server 50. Here, the case where the user position can be specified by the key detection sensor 122 or the like will be described.
[0120] First, in step S21, the management server 50 acquires various information from the specific vehicle 10a.
[0121] Next, in step S22, the management server 50 detects the current location of the user of the specific vehicle 10a. Here, not only the two-dimensional position of the user but also the position in the height direction, that is, the three-dimensional position, is detected.
[0122] Next, in step S23, the management server 50 estimates the distance between the user and the specific vehicle 10a. Here, the straight-line distance between the user and the specific vehicle 10a is estimated.
[0123] Subsequently, in step S24, the management server 50 estimates the moving speed of the user. The management server 50 estimates the moving speed of the user from the change in the distance between the user and the specific vehicle 10a over time.
[0124] Next, in step S25, the management server 50 uses the estimated distance estimated in step S23 and the moving speed of the user estimated in step S24 to calculate the user arrival time t a to estimate.
[0125] Next, in step S26, the management server 50 uses the partial job data D1a and the current computing power of the arithmetic unit 150 to estimate the job completion time t j to estimate.
[0126] Subsequently, in step S27, the management server 50 determines whether the user arrival time t a is greater than or equal to the job completion time t j or not. The management server 50 proceeds to step S28 when the user arrival time t a is greater than or equal to the job completion time t j and it is YES. On the other hand, the control unit 106 proceeds to step S29 when the user arrival time t a is less than the job completion time t j and it is YES.
[0127] In step S28, the management server 50 estimates that the specific vehicle 10a is in the stable mode. On the other hand, in step S29, the management server 50 estimates that the specific vehicle 10a is in the unstable mode. After step S28 or S29, the management server 50 returns.
[0128] In this way, by estimating the user arrival time t from the estimated distance and the time change of the estimated distance, a the user arrival time t a can be accurately estimated. That is, even when the user is located nearby, if the user's moving speed is slow, the user arrival time t a will be long. In this way, by accurately estimating the user arrival time t a it is possible to accurately estimate whether the specific vehicle 10a is in the unstable mode.
[0129] <Processing in Unstable Mode> Next, the process executed by the management server 50 when it is estimated that the specific vehicle 10a is in the unstable mode will be described with reference to FIGS. 11 and 12. Here, as shown in FIG. 12, the case where there are other vehicles participating in the same grid computing around the specific vehicle 10a will be described. Note that in the flowchart, the description starts from the estimation process by the management server 50.
[0130] First, in step S31, the management server 50 estimates the mode of the specific vehicle 10a. In particular, based on the flowchart of FIG. 10, the management server 50 estimates whether the specific vehicle 10a is in the stable mode or the unstable mode.
[0131] Next, in step S32, the management server 50 determines whether the specific vehicle 10a is in the unstable mode. When the user is approaching as shown in FIG. 12 and it is estimated that the specific vehicle 10a is in the unstable mode (YES), the management server 50 proceeds to step S33. When it is estimated that the specific vehicle 10a remains in the stable mode (NO), the process ends.
[0132] In step S33, the management server 50 determines whether the overtime of the job completion time t a with respect to the user arrival time t j is less than a predetermined time. When the overtime is less than the predetermined time (YES), the management server 50 proceeds to step S34. On the other hand, when the overtime is equal to or more than the predetermined time (NO), the management server 50 proceeds to step S37.
[0133] In step S34, the management server 50 requests the user of the specific vehicle 10a for a delay. The management server 50 sends a delay request notification to the user terminal 20. At this time, the management server 50 also notifies information to increase the possibility that the user responds to the delay request. For example, the information notified to the user in the delay request process includes the job completion time t j , the time from the current time to the job completion time t j , the overtime, and information regarding the reward given to the user when delaying the timing of operating the specific vehicle 10a. Also, when the facility where the user is staying is a commercial facility (including a complex commercial facility) or a theme park, as shown in FIG. 12, the management server 50 acquires facility information from the facility server and notifies the user of the facility information. The facility information mentioned here is, for example, advertisements of products, information on special sales of products, information on places in the commercial facility or theme park that the user has not visited, and the like. In this way, by actively giving the user reasons to respond to the delay request, the possibility that the user responds to the delay request is improved.
[0134] Next, in step S35, the management server 50 determines whether permission for the delay request has been obtained from the user of the specific vehicle 10a. When the user responds to the delay request (YES), the management server 50 proceeds to step S36. On the other hand, when the user does not respond to the delay request (NO), the management server 50 proceeds to step S37.
[0135] In step S36, the management server 50 continues the job calculation for the specific vehicle 10a. After step S36, the process ends.
[0136] In step S37, the management server 50 calculates the stability of other vehicles 10 that exist around the specific vehicle 10a and are participating in the same grid computing. This stability is an index indicating the degree to which other vehicles can complete the job calculation process stably. It is information indicating the stability calculated by the control unit 106 of the computing device 105. As shown in FIG. 12, the management server 50 acquires various information from other vehicles 10 and calculates the stability. The stability of each vehicle 10 is calculated, for example, in a point system. The stability of the host vehicle is calculated, for example, based on the following criteria. · The longer the estimated distance, the higher the stability compared to the case where the estimated distance is short. · The wider the communication bandwidth, the higher the stability compared to the case where the communication bandwidth is narrow. · When charging is on, the stability is higher compared to the case where charging is off. · The more computing resources, the higher the stability compared to the case where the computing resources are few. · The longer the period during which the job calculation process can be executed, the higher the stability compared to the case where the period is short. · The more other vehicles participating in the same grid computing around, the higher the stability compared to the case where there are few other vehicles.
[0137] Next, in step S38, the management server 50 transmits a control signal to the specific vehicle 10a so as to package and transfer the partial job data D1a to the vehicle with the highest stability among other vehicles. The specific vehicle 10a that has received the control signal stops the arithmetic processing of the partial job data D1a and saves the partial job data D1a. Then, the specific vehicle 10a packages the partial job data D1a. At this time, if there is partial calculation result data, the partial calculation result data is also packaged together. After the packaging of the partial job data D1a by the specific vehicle 10a is completed, the specific vehicle 10a starts transferring the partial job data D1a to the selected other vehicle. The specific vehicle 10a transfers the partial job data D1a by vehicle-to-vehicle communication via the communication unit 103. After the transfer is completed in step S38, the management server 50 ends the process.
[0138] As described above, the management server 50 performs delay request processing or transfer processing. When the user responds to a delay request, the management server 50 is rewarded by the operator who operates the system 1. This reward is a separate reward from the reward given to the user when the job arithmetic processing is completed in grid computing as described above. Examples of rewards include points available in the system 1, virtual currency, discount privileges for goods, etc. In addition, when the overtime is longer than a predetermined time or when the user does not respond to a delay request, and when there is no other vehicle 10 around the specific vehicle 10a that can transfer the partial job data D1a, the management server 50 sends a control signal to the specific vehicle 10a to return the partial job data D1a to the management server 50.
[0139] Therefore, in the first embodiment, the management server 50 of the system 1 includes a communication unit 503 and a control unit 505, and the control unit 505 calculates the user arrival time t, which is the time until the user of the specific vehicle 10a among the plurality of vehicles 10 reaches the parking position of the specific vehicle 10a a and the job completion time t, which is the time until the specific vehicle 10a completes the arithmetic operation of the job j and compares them. The job completion time t jis the user arrival time t a When the following conditions are met, it is estimated that the specific vehicle 10a is in a stable mode in which the job arithmetic processing can be executed stably. On the other hand, when the job completion time t j is the user arrival time t a is longer than, it is estimated that the specific vehicle 10a is in an unstable mode in which the job arithmetic processing may be aborted. When it is estimated that the specific vehicle 10a is in the unstable mode, a delay request process is executed to request the user of the specific vehicle 10a via the communication unit 503 to delay the timing of operating the specific vehicle 10a so as to delay the operation timing of the specific vehicle 10a when it is estimated that the specific vehicle 10a is in the unstable mode. Thereby, when the user suddenly operates the specific vehicle, when it is difficult for the user to complete the job before using the specific vehicle, it is regarded as the unstable mode, and the user is requested to delay the operation of the specific vehicle until the job is completed. Thereby, it is possible to prompt the user not to operate the specific vehicle until the job is completed, and it is possible to stably continue the arithmetic processing of the job. Therefore, the arithmetic processing of the job can be stabilized.
[0140] In particular, in the first embodiment, the delay request notification to the user includes information on the time from the current time to the job completion time t j until, information on the reward given to the user when the timing of operating the specific vehicle 10a is delayed, and facility information of the facility where the user is staying. Thereby, the user can understand how much the use of the vehicle should be delayed, and is provided with a positive reason for delaying the use of the vehicle. As a result, the user is more likely to respond to the delay request, and the arithmetic processing of the job can be made more stable.
[0141] Also, in the first embodiment, among the job completion times t j the user arrival time t aWhen the overtime, which is a time exceeding a certain time, is less than the predetermined time, delay request processing is executed. On the other hand, when the overtime is equal to or more than the predetermined time, instead of executing the delay request processing, transfer processing is executed to transfer partial job data D1a regarding the job being processed in the specific vehicle 10a to other vehicles 10 that are parked around the specific vehicle 10a and participating in grid computing. Thereby, when the waiting time of the user is short and the possibility that the user responds to the delay request is high, a delay request is made. On the other hand, when the waiting time of the user is long and the possibility that the user feels bothered and does not respond to the delay request is high, the partial job data D1a is transferred to other vehicles. As a result, when the waiting time of the user is short, the arithmetic processing of the job can be continued in the specific vehicle 10a, and when the waiting time of the user is long, the arithmetic processing of the job can be taken over by other vehicles 10. Thereby, the arithmetic processing of the job can be made more stable. 〔Embodiment 2〕 Hereinafter, Embodiment 2 will be described in detail with reference to the drawings. In the following description, parts common to the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
[0142] In the present Embodiment 2, it is different from the aforementioned Embodiment 1 in that the estimation processing, the delay request processing, and the transfer processing are performed not by the management server 50 but by the control unit 106 of the vehicle 10. The processing of the control unit 106 described later is executed by the processor of the control unit 106 using programs and data stored in the memory of the control unit 106.
[0143] Specifically, as shown in FIG. 13, in the second embodiment, each vehicle 10 is provided with a stability estimation module 163 that estimates the stability of the arithmetic processing of the job, including the mode of the vehicle 10. Information from the external camera 121, the key detection sensor 122, the position detection module 162, the communication state management module 164, the charge state monitoring module 165, and the calculation resource management module 166 is input to the stability estimation module 163. In addition, the running history information D14 is input to the stability estimation module 163 from the storage unit 104, and the map information is input via the communication unit 103. Further, information regarding the partial job data D1a being processed by the host vehicle is input to the stability estimation module 163.
[0144] Since the external camera 121, the key detection sensor 122, the position detection module 162, and the calculation resource management module 166 are the same as those in the first embodiment, detailed descriptions thereof are omitted.
[0145] The communication state management module 164 is a module that manages the communication band of the host vehicle. Information regarding the communication band of the host vehicle is input from the communication state management module 164 to the stability estimation module 163.
[0146] The charge state monitoring module 165 is a module that monitors the charge state of the host vehicle. Whether the host vehicle is in a charged state or not is input from the charge state monitoring module 165 to the stability estimation module 163 in the form of an on / off signal.
[0147] Based on the input information, the stability estimation module 163 estimates the user arrival time t a and the job completion time t j to estimate whether the host vehicle is in a stable mode or an unstable mode. This estimation process is basically the same as that in the first embodiment, except that the main body is the stability estimation module 163, and the flowchart is only different in the main body from the flowchart shown in FIG. 10, so detailed descriptions are omitted.
[0148] The stability estimation module 163 estimates the stability of the host vehicle based on the input information. The stability is calculated in a point formula as described in the first embodiment. Since the method for calculating the stability is basically the same as that in the first embodiment, a detailed description thereof is omitted.
[0149] The estimation result of the stability estimation module 163 is input to the processing execution management module 167.
[0150] When the processing execution management module 167 acquires information that the host vehicle is estimated to be in a stable mode, it continues the arithmetic processing of the job for the host vehicle according to the schedule. On the other hand, when the processing execution management module 167 acquires information that the host vehicle is estimated to be in an unstable mode, it performs processing according to the excess time, which is the time exceeding the user arrival time t j among the job completion times t a The excess time corresponds to the difference between the job completion time t j and the user arrival time t a
[0151] When the excess time is less than a predetermined time, the processing execution management module 167 executes a delay request process for making a delay request to the user of the host vehicle. On the other hand, when the excess time is equal to or more than the predetermined time, the processing execution management module 167 does not execute the delay request process, but executes a transfer process of transferring the partial job data D1a being processed in the host vehicle to other vehicles that are parked around the host vehicle and participating in the same grid computing. The predetermined time is a time that does not cause annoyance to the user and is set to, for example, 10 to 20 minutes.
[0152] When the processing execution management module 167 executes the delay request process, it sends a delay request notification to the user terminal 20 via the communication unit 103. On the other hand, when the processing execution management module 166 executes the transfer process, it transmits a control signal via the communication unit 103 to control the host vehicle to transfer the partial job data D1a to other vehicles.
[0153] Still, the position detection module 162, the stability estimation module 163, the communication state management module 164, the charge state monitoring module 165, the computing resource management module 166, and the processing execution management module 167 are an example of the modules that make up the control unit 106 of the vehicle 10.
[0154] Next, the process executed by the control unit 106 when it is estimated that the host vehicle is in the unstable mode will be described with reference to FIG. 14. In the flowchart of FIG. 14, the description starts from the estimation process by the control unit 106. Also, basically, since it is similar to the process described with reference to FIG. 11 in the first embodiment, the detailed description is omitted.
[0155] First, in step S41, the control unit 106 estimates the mode of the host vehicle.
[0156] Next, in step S42, the control unit 106 determines whether the host vehicle is in the unstable mode. When the control unit 106 estimates that the host vehicle is in the unstable mode (YES), it proceeds to step S43. When the control unit 106 estimates that the host vehicle remains in the stable mode (NO), the process ends.
[0157] In step S43, the control unit 106 determines whether the overtime of the job completion time t a with respect to the user arrival time t j is less than a predetermined time. When the control unit 106 determines that the overtime is less than the predetermined time (YES), it proceeds to step S44. On the other hand, when the control unit 106 determines that the overtime is equal to or more than the predetermined time (NO), it proceeds to step S47.
[0158] In step S44, the control unit 106 makes a delay request to the user of the host vehicle.
[0159] Next, in step S45, the control unit 106 determines whether the user of the host vehicle has permitted the delay request. When the user responds to the delay request with YES, the control unit 106 proceeds to step S46. On the other hand, when the user responds to the delay request with NO, the control unit 106 proceeds to step S47.
[0160] In step S46, the control unit 106 continues the job calculation for the host vehicle. After step S46, the process ends.
[0161] In step S47, the control unit 106 acquires the stability information of other vehicles that exist around the host vehicle and are participating in the same grid computing.
[0162] Next, in step S48, the control unit 106 packages and transfers the partial job data D1a to the vehicle with the highest stability among other vehicles. The control unit 106 stops the calculation process of the partial job data D1a and saves the partial job data D1a. Then, the specific vehicle 10a packages the partial job data D1a. At this time, if there is partial calculation result data, the partial calculation result data is also packaged together. After the packaging of the partial job data D1a by the specific vehicle 10a is completed, the specific vehicle 10a starts transferring the partial job data D1a to the selected other vehicle. The specific vehicle 10a transfers the partial job data D1a through vehicle-to-vehicle communication via the communication unit 103.
[0163] Then, in step S49, as soon as the transfer of the partial job data D1a to other vehicles is completed, the control unit 106 deletes the partial job data D1a of the host vehicle. After step S49, the control unit 106 ends the process.
[0164] As described above, the arithmetic unit 105 of the vehicle 10 performs delay request processing or transfer processing. In addition, when the excess time is equal to or longer than a predetermined time or when the user does not respond to the delay request, if there is no other vehicle around the host vehicle that can transfer the partial job data D1a, the arithmetic unit 105 transfers the partial job data D1a to the management server 50.
[0165] Therefore, even in the configuration where the arithmetic unit 105 of the vehicle 10 performs estimation processing and delay request processing as in the second embodiment, the user can be prompted not to operate the host vehicle until the arithmetic processing of the job is completed, and the arithmetic processing of the job can be stably continued. Therefore, the arithmetic processing of the job can be stabilized.
[0166] (Other Embodiments) The technology disclosed herein is not limited to the foregoing embodiments, and substitutions are possible without departing from the gist of the claims.
[0167] For example, in the first and second embodiments described above, when the excess time is equal to or longer than a predetermined time, the partial job data D1a is transferred to another vehicle. However, this is not the only case. When the excess time is equal to or longer than a predetermined time, the reward given when responding to a delay request may be increased as compared with when the excess time is less than the predetermined time.
[0168] The foregoing embodiments are merely examples, and the scope of the present disclosure should not be construed in a limited manner. The scope of the present disclosure is defined by the claims, and all modifications and changes belonging to the equivalent scope of the claims are within the scope of the present disclosure.
Industrial Applicability
[0169] The technology disclosed herein is useful when performing arithmetic processing of a job by grid computing in which each of a plurality of vehicles is used as a computing node when the plurality of vehicles are stopped.
Description of Reference Numerals
[0170] 1 System 10 Vehicle 10a Specific Vehicle 105 Arithmetic Unit 103 Communication Unit 106 Control Unit 503 Communication Unit 505 Control Unit D1a Partial Job Data
Claims
1. A management system for grid computing that performs arithmetic processing of jobs using each of a plurality of vehicles as a computing node when the plurality of vehicles are parked, comprising: a communication unit; a control unit, and the control unit compares a user arrival time, which is the time until a user of a specific vehicle among the plurality of vehicles reaches the parking position of the specific vehicle, with a job completion time, which is the time until the specific vehicle completes the arithmetic operation of the job, and when the job completion time is less than or equal to the user arrival time, estimates that the specific vehicle is in a stable mode in which the arithmetic processing of the job can be stably executed, while when the job completion time is longer than the user arrival time, estimates that the specific vehicle is in an unstable mode in which the arithmetic processing of the job may be aborted (estimation processing); when it is estimated that the specific vehicle is in the unstable mode, a delay request process for requesting the user of the specific vehicle via the communication unit to delay the timing for using the specific vehicle for driving; A management system characterized by executing the above.
2. In the management system according to Claim 1, the information notified to the user in the delay request process includes information on the time from the current time to the job completion time. A management system characterized by this.
3. In the management system according to Claim 1 or 2, the information notified to the user in the delay request process includes information on the reward given to the user when the timing for operating the specific vehicle is delayed. A management system characterized by this.
4. In the management system according to any one of Claims 1 to 3, the information notified to the user in the delay request process includes information on the facility where the user stays, which is acquired by the control unit via the communication unit. A management system characterized by this.
5. In the management system according to any one of Claims 1 to 4, When the excess time, which is the time exceeding the user arrival time among the job completion times, is less than a predetermined time, the control unit executes the delay request process. On the other hand, when the excess time is equal to or more than the predetermined time, without executing the delay request process, the control unit executes a transfer process of transferring job data related to the job being processed by the specific vehicle to other vehicles that are parked around the specific vehicle and participating in the grid computing. A management system characterized by this.
6. A management method for grid computing that performs arithmetic processing of a job using each of a plurality of vehicles as a computing node when the vehicles are parked, comprising: estimating a job completion time, which is the time until a specific vehicle among the plurality of vehicles completes the arithmetic operation of the job; calculating a user arrival time, which is the time until a user of the specific vehicle arrives at the parking position of the specific vehicle; comparing the job completion time and the user arrival time, and when the job completion time is less than or equal to the user arrival time, estimating that the specific vehicle is in the stable mode. On the other hand, when the job completion time is longer than the user arrival time, a mode estimation step of estimating that the specific vehicle is in the unstable mode; a delay request step of requesting the user of the specific vehicle to delay the timing of operating the specific vehicle when it is estimated that the specific vehicle is in the unstable mode. A management method characterized by including this.
7. A vehicle arithmetic unit that becomes arithmetic resources for grid computing that performs arithmetic processing of a job using each of a plurality of vehicles as a computing node when the vehicles are parked, comprising: a control unit that performs arithmetic processing of the job; The control unit: compares a user arrival time, which is the time until a user of the own vehicle arrives at the parking position of the own vehicle, and a job completion time, which is the time until the own vehicle completes the arithmetic operation of the job. When the job completion time is less than or equal to the user arrival time, it is estimated that the own vehicle is in a stable mode in which the arithmetic processing of the job can be stably executed. On the other hand, when the job completion time is longer than the user arrival time, an estimation process of estimating that the own vehicle is in an unstable mode in which the arithmetic processing of the job may be aborted. When it is estimated that the host vehicle is in the unstable mode, a delay request process for requesting the user of the host vehicle to delay the timing of operating the host vehicle; A vehicle arithmetic device characterized by executing the above.
Citation Information
Patent Citations
Calculation resource provision method and calculation resource provision system
JP2017111727A
Controller, method for control, and computer program
JP2019036017A
Management server and program
JP2020160661A
Vehicle and method for utilizing idle resources thereof
KR1020210033312A
Distributed compute method, apparatus, and system
US20190041853A1