Management device and processing method
The management device optimally allocates job data processing to in-vehicle terminals based on specific conditions, ensuring efficient and reliable processing by mobile objects.
Patent Information
- Application Number
- JP2021158389
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-28
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-09-28
AI Technical Summary
Existing technologies do not effectively allocate job data processing to in-vehicle terminals, which are mobile objects, making it difficult to utilize their computational resources efficiently.
A management device that manages grid computing processes by selecting suitable mobile objects based on conditions such as responsiveness, reliability, and execution frequency, utilizing their communication performance, stability, and calculation capabilities.
Job data is processed by mobile objects that are suited to the required conditions, enhancing responsiveness, reliability, and computational efficiency.
Smart Images

Figure 0007786101000001 
Figure 0007786101000002 
Figure 0007786101000003
Abstract
Description
[Technical Field]
[0001] The technology disclosed herein relates to grid computing. [Background technology]
[0002] Patent Document 1 discloses a distributed processing system consisting of a base station and an on-board terminal that can connect to each other via wireless communication. The base station has a resource information storage means and a processing allocation means. The resource information storage means stores resource information, which is information about the computational resources of the on-board terminal that functions as a computation node. The processing allocation means identifies the on-board terminal that will execute the requested processing based on the resource information, and causes the identified on-board terminal to execute the processing. The on-board terminal has a resource information registration means and a computation means. The resource information registration means transmits resource information of the own terminal to the base station and registers the own terminal as a computation node in the distributed processing system. The computation means executes the processing assigned by the base station. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-87273 Summary of the Invention [Problem to be solved by the invention]
[0004] Patent Document 1 does not discuss how to allocate requested processing (job data) to an in-vehicle terminal (an example of a mobile object).
[0005] The technology disclosed herein has been made in consideration of the above points, and its purpose is to have job data processed by a mobile object that is suitable for processing the job data. [Means for solving the problem]
[0006] The technology disclosed herein relates to a management device that manages a grid computing process in which job data is processed by a plurality of available mobile objects among a plurality of mobile objects, each having a computing device. The management device includes a control unit that, in the grid computing process, causes a mobile object among the available mobile objects that has specifications according to conditions required for processing the job data to process the job data. The conditions required for processing the job data include at least one of responsiveness, reliability, and execution frequency. The specifications of the mobile objects include at least one of communication performance, communication stability, and calculation completion probability, which indicates the likelihood that the calculation of the job data can be completed.
[0007] In the above configuration, the job data can be processed by a mobile object suitable for processing the job data.
[0008] In the management device, the higher the responsiveness required in processing the job data, the higher at least one of the communication performance, the communication stability, and the calculation completion probability of the mobile body that processes the job data may become.
[0009] In the above-described configuration, the job data can be processed by a mobile unit that is suited to the response required for processing the job data.
[0010] In the management device, the higher the reliability required in processing the job data, the higher the probability of completion of calculation of the mobile body that processes the job data.
[0011] In the above-described configuration, the job data can be processed by a mobile object suited to the reliability required for processing the job data.
[0012] In the management device, at least one of the communication performance and the communication stability of the mobile body that processes the job data may be increased as the execution frequency required for the processing of the job data increases.
[0013] In the above-described configuration, job data can be processed by a mobile body that is suited to the execution frequency required for processing the job data.
[0014] In the management device, the specifications of the mobile object may include computing performance, which is the performance of the computing device.
[0015] In the above configuration, job data can be processed by a mobile object having a computing capability suitable for processing the job data.
[0016] In the management device, the conditions required for processing the job data may include a processing scale, which is the scale of processing of the job data, and the larger the processing scale required for processing the job data, the higher the computing performance of the mobile body that processes the job data.
[0017] In the above configuration, job data can be processed by a mobile entity having a computing performance suited to the processing scale required for processing the job data.
[0018] In the management device, the conditions required for processing the job data may include a processing time, which is the time required to process the job data, and the shorter the processing time required for processing the job data, the higher the computing performance of the mobile body that processes the job data.
[0019] In the above configuration, job data can be processed by a mobile object having a computing performance suited to the processing time required for processing the job data.
[0020] The technology disclosed herein relates to a processing method for causing a plurality of available mobile bodies among a plurality of mobile bodies each having a computing device to process job data transmitted from a management device. In this processing method, the management device transmits the job data to a mobile body among the plurality of available mobile bodies having specifications according to conditions required for processing the job data, and the job data is processed by the mobile body. The conditions required for processing the job data include at least one of responsiveness, reliability, and execution frequency, and the specifications of the mobile body include at least one of communication performance, communication stability, and calculation completion probability indicating the likelihood that calculation of the job data can be completed.
[0021] In the above method, job data can be processed by a mobile object suitable for processing the job data. [Effects of the Invention]
[0022] According to the technology disclosed herein, job data can be processed by a mobile object that is suitable for processing the job data. [Brief explanation of the drawings]
[0023] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a system according to an embodiment. [Figure 2] FIG. 1 is a conceptual diagram illustrating grid computing. [Figure 3] FIG. 1 is a block diagram illustrating a configuration of a vehicle. [Figure 4] FIG. 2 is a block diagram illustrating the configuration of a user terminal. [Figure 5] FIG. 2 is a block diagram illustrating an example of a client server configuration. [Figure 6] FIG. 2 is a block diagram illustrating a configuration of a management server. [Figure 7] 10 is a flowchart illustrating a job reception process. [Figure 8] FIG. 10 is a schematic diagram illustrating an example of an image of a job reception screen. [Figure 9]10 is a flowchart illustrating a position prediction process. [Figure 10] 10 is a flowchart illustrating an example of a capability prediction process. [Figure 11] 10 is a flowchart illustrating a communication prediction process. [Figure 12] 10 is a flowchart illustrating an example of a probability prediction process. [Figure 13] 10 is a flowchart illustrating a matching process. [Figure 14] 1 is a flowchart illustrating a grid computing process. [Figure 15] FIG. 10 is a diagram illustrating a correspondence table showing the correspondence between the processing level of a vehicle and the processing load of job data. [Figure 16] 10 is a flowchart illustrating a modified example of the matching process. DETAILED DESCRIPTION OF THE INVENTION
[0024] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are designated by the same reference numerals and their description will not be repeated.
[0025] (Embodiment) FIG. 1 illustrates the configuration of a system 1 according to an embodiment. The system 1 includes a plurality of vehicles 10, a plurality of user terminals 20, a client server 30, and a management server 50. These components can communicate with each other via a communication network 5 (communication line). These components also communicate with each other to transmit and receive various information and data as necessary. Each of the plurality of vehicles 10 is equipped with a computing device 105. The system 1 may also include a plurality of client servers 30.
[0026] [Grid Computing] As shown in Figure 2, in the embodiment of the system 1, a grid computing (distributed processing system) is formed by vehicles 10 selected from a plurality of vehicles 10, and a grid computing process is performed in which job data is processed by an available vehicle 10 (more specifically, a computing device 105 installed in the vehicle 10) among the plurality of vehicles 10.
[0027] When the vehicle 10 needs the computing power of the arithmetic device 105, the arithmetic device 105 enters an operating state and uses the computing power of the arithmetic device 105. For example, when the vehicle 10 is traveling, the computing power of the arithmetic device 105 is required for traveling control of the vehicle 10, and the arithmetic device 105 enters an operating state.
[0028] On the other hand, when the computing power of the arithmetic device 105 becomes unnecessary in the vehicle 10, the arithmetic device 105 enters a stopped state, and the computing power of the arithmetic device 105 is not used. For example, when the vehicle 10 stops and the power supply of the vehicle 10 is turned off, the computing power of the arithmetic device 105 becomes unnecessary, and the arithmetic device 105 enters a stopped state.
[0029] Here, when the computing power of the computing device 105 is not needed in the vehicle 10, the computing power of the computing device 105 can be provided for grid computing processing, thereby making effective use of the computing power of the computing device 105. For example, it is desirable to provide the computing power of the computing device 105 for grid computing processing while the vehicle 10 is stopped.
[0030] 〔vehicle〕 The vehicle 10 is owned by a user. The user drives the vehicle 10. In this example, the vehicle 10 is a four-wheeled automobile. The vehicle 10 is equipped with a battery (not shown). Power from the battery is supplied to on-board devices such as the computing device 105. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles. The vehicle 10 is capable of communication using vehicle-to-network (V2N) communication and vehicle-to-vehicle (V2V) communication.
[0031] As shown in FIG. 3, the vehicle 10 includes an actuator 11, a sensor 12, an input unit 101, an output unit 102, a communication unit 103, a storage unit 104, and a computing device 105.
[0032] The actuators 11 include drive system actuators, steering system actuators, braking system actuators, etc. Examples of drive system actuators include an engine, a transmission, and a motor. Examples of braking system actuators include a brake. Examples of steering system actuators include a steering wheel.
[0033] The sensor 12 acquires various types of information used to control the vehicle 10. Examples of the sensor 12 include an exterior camera that captures images outside the vehicle, an interior camera that captures images inside the vehicle, radar that detects objects outside the vehicle, a vehicle speed sensor, an acceleration sensor, a yaw rate sensor, an accelerator opening sensor, a steering sensor, and a brake oil pressure sensor.
[0034] The input unit 101 inputs information and data. Examples of the input unit 101 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs audio showing information. Examples of the operation unit include operation buttons and touch sensors of a car navigation device. The information and data input to the input unit 101 are sent to the calculation device 105.
[0035] The output unit 102 outputs information and data. Examples of the output unit 102 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information. An example of a display unit is the display of a car navigation device. An example of a speaker is the speaker of a car navigation device.
[0036] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 are sent to the calculation device 105.
[0037] The storage unit 104 stores information and data.
[0038] The arithmetic device 105 controls each part of the vehicle 10. In this example, the arithmetic device 105 controls the actuator 11 in accordance with various information obtained by the sensor 12. The arithmetic device 105 communicates with external devices (such as components of the system 1) via the communication unit 103. The arithmetic device 105 appropriately updates the information and data stored in the memory unit 104 based on the information and data input to the input unit 101 and the information and data received via the communication unit 103.
[0039] The arithmetic device 105 includes a processor, a memory, etc. Examples of the processor include a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The memory stores programs for operating the processor, information and data indicating the processing results of the processor, etc. The processor (computer) executes the programs stored in the memory to realize various functions of the arithmetic device 105.
[0040] The number of processors installed in the arithmetic device 105 may be one or more. The processor installed in the arithmetic device 105 may be either a CPU or a GPU, or both a CPU and a GPU. In this example, the arithmetic device 105 has both a CPU and a GPU. For example, the arithmetic device 105 is configured by one or more ECUs (Electronic Control Units).
[0041] In this example, the memory unit 104 stores vehicle basic information D11, calculation device information D12, vehicle status information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, communication management information D18, and performance management information D19.
[0042] <Vehicle basic information> The vehicle basic information D11 is basic information related to the vehicle 10. For example, the vehicle basic information D11 includes a vehicle ID set for the vehicle 10, a user ID set for the user who owns the vehicle, vehicle performance information indicating the performance of the vehicle, etc. The vehicle ID is an example of vehicle identification information that identifies the vehicle 10. The user ID is an example of user identification information that identifies the user.
[0043] <Calculation device information> The arithmetic device information D12 is information related to the arithmetic device 105. For example, the arithmetic device information D12 includes a arithmetic device ID set in the arithmetic device 105, arithmetic device performance information indicating the performance of the arithmetic device 105, and the like. The arithmetic device ID is an example of arithmetic device identification information for identifying the arithmetic device 105. The performance of the arithmetic device 105 indicated in the arithmetic device performance information includes the computational capacity (specifically, maximum computational capacity) of the arithmetic device 105, the ratio of CPU to GPU in the arithmetic device 105, the communication performance of the arithmetic device 105, the distributed processing performance of the arithmetic device 105, and the like. The computational capacity of the arithmetic device 105 is the amount of data that the arithmetic device 105 can calculate per unit time.
[0044] <Vehicle status information> The vehicle state information D13 indicates the state of the vehicle 10. For example, the vehicle state information D13 includes vehicle position information, vehicle communication information, vehicle power source information, vehicle battery remaining amount information, vehicle charging information, and the like.
[0045] The vehicle position information indicates the position (latitude and longitude) of the vehicle 10. For example, the vehicle position information can be obtained by a GPS (Global Positioning System). The vehicle communication information indicates the communication status of the vehicle 10. The vehicle power supply information indicates the power supply status of the vehicle 10. For example, the vehicle power supply information indicates whether the ignition power is on or off, whether the accessory power is on or off, etc.
[0046] The vehicle battery remaining amount information indicates the remaining amount of a battery (not shown) installed in the vehicle 10. The vehicle charging information indicates whether the vehicle 10 is being charged in a charging facility (not shown) that can charge the battery of the vehicle 10.
[0047] The computing device 105 monitors the state of the vehicle 10 and updates the vehicle state information D13 appropriately (for example, periodically) based on the results of the monitoring.
[0048] <Function usage information> The function usage information D14 indicates the usage history (past usage) and planned usage (future usage) of various functions of the vehicle 10. In other words, the function usage information D14 indicates, for each function of the vehicle 10, the time at which the function was used (or is planned to be used). For example, the function usage information D14 indicates, for each function of the vehicle 10, whether or not the function was used and the time in association with each other. Note that an example of a function of the vehicle 10 is OTA (Over The Air).
[0049] The arithmetic device 105 appropriately updates the function usage information D14. For example, when information regarding the usage history or usage schedule of various functions of the vehicle 10 is input, the arithmetic device 105 updates the function usage information D14 based on the information.
[0050] <Vehicle Usage Information> The vehicle usage information D15 indicates the usage history (past usage) and planned usage (future usage) of the vehicle 10. In other words, the vehicle usage information D15 indicates the time when the vehicle 10 was used (or is planned to be used). For example, the vehicle usage information D15 indicates whether the vehicle 10 was used and the time in association with each other.
[0051] The usage status of the vehicle 10 indicated in the vehicle usage information D15 is the usage status for purposes other than use for grid computing processing. An example of such other purposes of use is driving the vehicle 10. For example, whether the vehicle 10 is being used for driving can be determined based on the history and schedule of turning on and off the power supply (specifically, the ignition power supply) of the vehicle 10.
[0052] The arithmetic device 105 appropriately updates the vehicle use information D15. For example, when information on the vehicle use history or planned use is input, the arithmetic device 105 updates the vehicle use information D15 based on the input information.
[0053] <Location management information> The location management information D16 indicates the past and future locations of the vehicle 10. In other words, the location management information D16 indicates where the vehicle 10 was (or where the vehicle 10 is scheduled to be) at what time. For example, the location management information D16 indicates the location of the vehicle 10 in association with the time.
[0054] The location management information D16 may include scene information indicating a scene of the vehicle 10. Examples of scenes of the vehicle 10 include a scene in which the vehicle 10 is traveling in an urban area, a scene in which the vehicle 10 is traveling on a highway, and a scene in which the vehicle 10 is stopped. For example, the computing device 105 recognizes the external environment of the vehicle 10 based on the output of the sensor 12, estimates the scene of the vehicle 10 based on the results of the recognition, and registers the estimated scene of the vehicle 10 in the location management information D16. The location management information D16 may indicate the "location of the vehicle 10," the "scene of the vehicle 10," and the "time" in association with each other.
[0055] The arithmetic device 105 updates the location management information D16 as appropriate (for example, periodically). Updating the location management information D16 will be described in detail later.
[0056] <Operation management information> The operation management information D17 indicates the operation history (past utilization rate of computing capacity) and operation schedule (future utilization rate of computing capacity) of the arithmetic device 105 mounted on the vehicle 10. In other words, the operation management information D17 indicates what the utilization rate of the computing capacity of the vehicle 10 was (or what the utilization rate is expected to be) at what time. For example, the operation management information D17 indicates the utilization rate of the computing capacity of the arithmetic device 105 in association with time.
[0057] The operation status (computing capacity utilization rate) of the arithmetic device 105 of the vehicle 10 indicated in the operation management information D17 is the operation status for purposes other than use for grid computing processing.
[0058] The computing device 105 updates the operation management information D17 as appropriate (for example, periodically). Updating the operation management information D17 will be described in detail later.
[0059] <Communication Management Information> The communication management information D18 indicates the communication history (past communication state) and communication schedule (future communication state) of the vehicle 10. In other words, the communication management information D18 indicates what the communication state of the vehicle 10 was at what time (or what state it is expected to be). Specifically, the communication management information D18 indicates, for each device with which the vehicle 10 communicates, the communication state (past communication state and future communication state) between the device and the vehicle 10. For example, for each device with which the vehicle 10 communicates, the communication management information D18 indicates the "communication state between the device and the vehicle 10," the "location of the vehicle 10," and the "time," in association with each other.
[0060] In this example, the communication management information D18 includes the communication status between the "vehicle 10" and the "management server 50 that communicates with the vehicle 10 using vehicle-to-network communication (V2N)," and the communication status between the "vehicle 10 (own vehicle)" and the "other vehicle 10 (other vehicle) that communicates with the vehicle 10 (own vehicle) using vehicle-to-vehicle communication (V2V)." The communication status between the vehicle 10 and the management server 50 includes the communication status between the "vehicle 10" and the "repeater (not shown) that relays communication between the vehicle 10 and the management server 50," and the communication status between the repeater and the management server 50. Examples of repeaters include a base station of the communication network 5, and communication equipment installed in a home or facility.
[0061] The communication state includes information such as communication quality, communication bandwidth, and available communication time. Information related to communication quality includes latency, throughput, packet loss, error rate, and the number of communication interruptions. For example, the computing device 105 acquires this information by transmitting and receiving a test signal between the vehicle 10 and a device with which the vehicle 10 communicates. Information related to communication quality may include some or all of the latency, throughput, packet loss, error rate, and the number of communication interruptions, or may include other information correlated with these.
[0062] The communication state also includes a communication stability indicating the degree of communication stability between the "vehicle 10" and the "device with which the vehicle 10 communicates." Specifically, the calculation device 105 derives the communication stability based on at least one of the communication quality, the communication bandwidth, and the available communication time. In other words, the communication stability changes when at least one of the communication quality, the communication bandwidth, and the available communication time changes.
[0063] In this example, the calculation device 105 derives the communication stability based on the communication quality, the communication band, and the available communication time. The higher the communication quality, the higher the communication stability. The wider the communication band, the higher the communication stability. The longer the available communication time, the higher the communication stability.
[0064] The arithmetic device 105 updates the communication management information D18 as appropriate (for example, periodically). Updating the communication management information D18 will be described in detail later.
[0065] <Performance management information> The performance management information D19 indicates the performance of the calculation completion in the grid computing process of the vehicle 10. For example, the performance management information D19 indicates the ratio of "the number of grid computing processes in which the vehicle 10 was able to complete the calculation of job data" to "the number of grid computing processes in which the vehicle 10 was used."
[0066] When the grid computing process using the vehicle 10 is completed, the computing device 105 updates the performance management information D19 based on the calculation completion performance of the vehicle 10 in that grid computing process (whether or not the calculation was completed).
[0067] [User terminal] The user terminal 20 is owned by a user. The user operates the user terminal 20 to use various functions. The user can also carry the user terminal 20. Examples of such user terminals 20 include smartphones, tablets, and notebook personal computers.
[0068] 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.
[0069] 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. Examples of the operation unit include an operation button and a touch sensor. The information input to the input unit 101 is sent to the arithmetic device 105.
[0070] 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.
[0071] 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.
[0072] The storage unit 204 stores information and data.
[0073] The control unit 205 controls each unit of the user terminal 20. The control unit 205 communicates with external devices (such as components of the system 1) via the communication unit 203. The control unit 205 updates the information and data stored in the storage unit 204 as appropriate, based on the information and data input to the input unit 201 and the information and data received via the communication unit 203.
[0074] The control unit 205 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc. The various functions of the control unit 205 are realized by the processor (computer) executing the program stored in the memory.
[0075] In this example, the storage unit 204 stores terminal information D21, terminal state information D22, and schedule information D23.
[0076] <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.
[0077] <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.
[0078] The control unit 205 monitors the state of the user terminal 20 and updates the terminal state information D22 appropriately (for example, periodically) based on the results of this monitoring.
[0079] <Schedule Information> The schedule information D23 indicates the behavior history (past behavior) and behavior schedule (future behavior) of the user who owns the user terminal 20. In other words, the schedule information D23 indicates the location of the user at what time. For example, the schedule information D23 indicates the user's location in association with the time. The schedule information D23 can be acquired by a schedule function installed in the user terminal 20. Specifically, the user uses the schedule function to input their own behavior history and behavior schedule into the user terminal 20, thereby obtaining the schedule information D23 indicating the user's behavior history and behavior schedule.
[0080] The schedule information D23 may also include information indicating that the user's action is "action involving the use of the vehicle 10." For example, the schedule information D23 may indicate "the user's location," "whether the vehicle 10 is used," and "time" in association with each other.
[0081] The control unit 205 appropriately updates the schedule information D23 stored in the storage unit 204. For example, when information on the user's behavior is input to the input unit 101, the control unit 205 updates the schedule information D23 based on the information.
[0082] [Client Server] The client server 30 is owned by a client. The client requests the calculation of job data. Examples of such clients include companies, research institutes, and educational institutions.
[0083] 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.
[0084] The input unit 301 inputs information and data. Examples of the input unit 301 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image representing information, and a microphone that inputs audio representing information. Examples of the operation unit include an operation button, a touch sensor, a keyboard, and a mouse. The information and data input to the input unit 301 are sent to the control unit 305.
[0085] 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.
[0086] 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.
[0087] The storage unit 304 stores information and data.
[0088] The control unit 305 controls each unit of the client server 30. The control unit 305 communicates with external devices (such as components of the system 1) via the communication unit 303. The control unit 305 updates the information and data stored in the storage unit 304 as appropriate, based on the information and data input to the input unit 301 and the information and data received via the communication unit 303.
[0089] The control unit 305 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc. The various functions of the control unit 305 are realized by the processor (computer) executing the program stored in the memory.
[0090] In this example, the storage unit 304 stores client information D31 and job data D1.
[0091] <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.
[0092] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job.
[0093] 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.
[0094] Furthermore, the job data D1 can be classified by processing conditions. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. Job data D1 with processing conditions that require constant communication requires that the vehicle 10 be able to communicate at all times in the grid computing process. Job data D1 with processing conditions that do not require constant communication does not require that the vehicle 10 be able to communicate at all times in the grid computing process.
[0095] <Job Information> Note that job information related to a job may be stored in the storage unit 304. The job information includes job name information indicating the name of the job, job content information explaining the content of the job, job data information regarding job data corresponding to the job, job deadline information indicating the deadline for the job, etc. The job data information indicates the calculation type, processing conditions, required calculation capacity, etc. of the job data.
[0096] [Management Server] The management server 50 manages the operation of the system 1 in which grid computing is configured. The management server 50 is owned by the business operator that operates the system 1. The management server 50 is an example of a management device that manages grid computing processing.
[0097] 6, the management server 50 includes an input unit 501, an output unit 502, a communication unit 503, a storage unit 504, and a control unit 505. The configurations of the input unit 501, output unit 502, communication unit 503, storage unit 504, and control unit 505 of the management server 50 are the same as the configurations of the input unit 301, output unit 302, communication unit 303, storage unit 304, and control unit 305 of the client server 30.
[0098] In this example, the memory unit 504 stores a user table D51, a vehicle table D52, a client table D53, a job table D54, a position prediction table D55, a capability prediction table D56, a communication prediction table D57, a probability table D60, a matching table D58, job data D1, and calculation result data D2.
[0099] <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.
[0100] The control unit 505 updates the user table D51 as appropriate.
[0101] For example, when a new user joins the system 1, the control unit 505 updates the user table D51 by registering information related to the new user in the user table D51. Specifically, the control unit 505 sets a new user ID for the new user, associates the "user ID" set for the new user with the "vehicle ID" set for the vehicle 10 owned by the user, the "computing device ID" set for the computing device 105 mounted on the vehicle 10, and the "user terminal ID" set for the user terminal 20 owned by the new user, and registers them in the user table D51.
[0102] It is possible to obtain a "vehicle ID" and a "computing device ID" related to the new user through communication between the vehicle 10 owned by the new user and the management server 50. It is also possible to obtain a "user terminal ID" related to the new user through communication between the user terminal 20 owned by the new user and the management server 50.
[0103] <Vehicle Table> The vehicle table D52 is a table for managing the vehicles 10. In this example, the vehicle table D52 registers, for each vehicle 10, basic vehicle information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, communication management information D18, and performance management information D19 related to the vehicle 10.
[0104] The control unit 505 updates the vehicle table D52 as needed.
[0105] For example, when a new vehicle 10 joins the system 1, the control unit 505 updates the vehicle table D52 by registering information related to the new vehicle 10 in the vehicle table D52. Specifically, the control unit 505 associates basic vehicle information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, and communication management information D18 related to the new vehicle 10 and registers them in the vehicle table D52.
[0106] It is possible to obtain information related to the new vehicle 10 (in this example, vehicle basic information D11, computing device information D12, vehicle state information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, communication management information D18, and performance management information D19) through communication between the new vehicle 10 and the management server 50. It is also possible to obtain a "user ID" related to the new vehicle 10 by referring to the user table D51.
[0107] In addition, the control unit 505 communicates with each vehicle 10 as appropriate (for example, periodically) to acquire information about the vehicle 10 (specifically, vehicle status information D13, function usage information D14, vehicle usage information D15, location management information D16, operation management information D17, communication management information D18, and performance management information D19), and updates the vehicle table D52 based on the acquired information.
[0108] <Client Table> The client table D53 is a table for managing clients. For each client, the client table D53 registers the client ID set for that client, the client server ID set for the client server 30 owned by the client, the name, address, telephone number, etc. of the person in charge of that client.
[0109] The control unit 505 updates the client table D53 as appropriate.
[0110] For example, when a new client joins the system 1, the control unit 505 updates the client table D53 by registering information related to the new client in the client table D53. Specifically, the control unit 505 sets a new client ID for the new client, associates the "client ID" set for the new client with the "client server ID" set for the client server 30 owned by the new client, and the "person in charge," "address," and "telephone number" of the new client, and registers them in the client table D53.
[0111] By communication between the client server 30 and the management server 50, it is possible to obtain the "client server ID", "person in charge", "address" and "telephone number" of the new client.
[0112] <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.
[0113] <Position Prediction Table> The position prediction table D55 is a table for managing the predicted results of the position of the vehicle 10. In this example, the position prediction table D55 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, position prediction information D5 related to that vehicle 10, and the like. The position prediction information D5 indicates the predicted results of the change in the position of the vehicle 10 over time. For example, the position prediction information D5 indicates the predicted value of the position of the vehicle 10 in association with the time. The process for predicting the change in the position of the vehicle 10 over time (position prediction process) will be described in detail later.
[0114] Ability Prediction Table The capacity prediction table D56 is a table for managing the predicted results of the computational capacity (computing capacity available for grid computing processing) of the arithmetic device 105 of the vehicle 10. In this example, the capacity prediction table D56 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, capacity prediction information D6 related to that vehicle 10, and the like. The capacity prediction information D6 indicates the predicted results of a change over time in the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10. For example, the capacity prediction information D6 indicates the predicted value of the computational capacity available for the arithmetic device 105 of the vehicle 10 in association with the time. The process for predicting a change over time in the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10 (capacity prediction process) will be described in detail later.
[0115] <Communication Prediction Table> The communication prediction table D57 is a table for managing the predicted results of the communication state of the vehicle 10. In this example, the communication prediction table D57 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, communication prediction information D7 related to that vehicle 10, and the like. The communication prediction information D7 indicates the predicted results of the change over time in the communication state of the vehicle 10. For example, the communication prediction table D57 indicates the predicted value of the communication state of the vehicle 10 in association with the time. The process for predicting the change over time in the communication state of the vehicle 10 (communication prediction process) will be described in detail later.
[0116] Accuracy table The accuracy table D60 is a table for managing the calculation completion accuracy of the vehicle 10. The calculation completion accuracy indicates the likelihood that the vehicle 10 will be able to complete the calculation of the job data D1 in the grid computing process. In this example, the accuracy table D60 registers, for each vehicle 10, the vehicle ID set for that vehicle 10, accuracy information D8 related to that vehicle 10, and the like. The accuracy information D8 indicates the calculation completion accuracy of the vehicle 10. The process for deriving the calculation completion accuracy of the vehicle 10 (accuracy derivation process) will be explained in detail later.
[0117] Matching Table The matching table D58 is a table for managing the results of the matching process described later. For each job, the matching table D58 registers the reception number set for that job, the job data corresponding to that job, the vehicle ID set for the vehicle 10 assigned to that job data by the matching process, and the like.
[0118] <Job Data> The job data D1 stored in the storage unit 504 is job data D1 accepted by a job acceptance process, which will be described later.
[0119] <Calculation result data> The calculation result data D2 stored in the storage unit 504 indicates the calculation result of the job data D1 by the grid computing process described later.
[0120] [Updating location management information] Next, the updating of the position management information D16 will be described. The arithmetic device 105 monitors the position of the vehicle 10, and updates the past positions of the vehicle 10 indicated in the position management information D16 based on the results of the monitoring. Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the position of the vehicle 10, it updates the position of the vehicle 10 indicated in the position management information D16 based on that information.
[0121] Examples of information that can be used to estimate the location of vehicle 10 include car navigation information showing the driving history and driving schedule of vehicle 10, vehicle usage information D15 stored in memory unit 104 of vehicle 10, and schedule information D23 stored in memory unit 204 of user terminal 20.
[0122] <Updating location management information based on car navigation information> In this example, the arithmetic device 105 estimates the position (past and future positions) of the vehicle 10 based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. Then, the arithmetic device 105 updates the position management information D16 stored in the memory unit 104 based on the estimated position of the vehicle 10.
[0123] Updating location management information based on vehicle usage information Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the position (past position and future position) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the position management information D16 stored in the storage unit 104 based on the estimated position of the vehicle 10.
[0124] Updating location management information based on schedule information Also, in this example, the arithmetic device 105 requests the user terminal 20 owned by the user who owns the vehicle 10 equipped with the arithmetic device 105 to access the schedule information D23 stored in the storage unit 204 of the user terminal 20. In response to the request, the control unit 205 of the user terminal 20 permits access to the schedule information D23.
[0125] Next, the arithmetic device 105 accesses the storage unit 204 of the user terminal 20, and detects an action involving the use of the vehicle 10 from the user's actions (past actions and future actions) shown in the schedule information D23 stored in the storage unit 204. For example, the arithmetic device 105 detects an action history in which the user has used the vehicle 10 from an action history that is past actions among the user's actions shown in the schedule information D23. Furthermore, the arithmetic device 105 detects an action plan in which the user plans to use the vehicle 10 from an action plan that is future actions among the user's actions shown in the schedule information D23.
[0126] Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the detected user's behavior (behavior history and behavior schedule), and estimates the position (past position and future position) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the position management information D16 stored in the memory unit 104 based on the estimated position of the vehicle 10.
[0127] [Updating operation management information] Next, the updating of the operation management information D17 will be described. The computing device 105 monitors the operation rate (utilization rate of computing capacity) of the computing device 105, and updates the past operation rate of the computing device 105 indicated in the operation management information D17 based on the results of this monitoring. Furthermore, when the computing device 105 acquires information that can be used to estimate the operation rate of the computing device 105, it updates the operation rate of the computing device 105 indicated in the operation management information D17 based on that information.
[0128] Examples of information that can be used to estimate the availability of the computing device 105 include car navigation information showing the driving history and driving schedule of the vehicle 10, function usage information D14 stored in the memory unit 104 of the vehicle 10, vehicle usage information D15, location management information D16, and schedule information D23 stored in the memory unit 204 of the user terminal 20.
[0129] <Updating operation management information based on car navigation information> In this example, the arithmetic device 105 estimates the availability of the vehicle 10 (past availability and future availability) based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. For example, the "availability of the arithmetic device 105 during the period when the vehicle 10 was stopped" and the "availability of the arithmetic device 105 during the period when the vehicle 10 is scheduled to be stopped" are estimated to be zero. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated availability of the arithmetic device 105.
[0130] <Updating operation management information based on function usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires function usage information D14 stored in the storage unit 104. The arithmetic device 105 detects the usage status of functions involving the use of the arithmetic device 105 from the usage status (usage history and usage schedule) of various functions indicated in the function usage information D14. The arithmetic device 105 estimates the operation rates (past operation rates and future operation rates) of the arithmetic device 105 based on the detected function usage status. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated operation rate of the arithmetic device 105.
[0131] <Updating operation management information based on vehicle usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the availability (past availability rate and future availability rate) of the arithmetic device 105 based on the estimated availability rate of the arithmetic device 105. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated availability rate of the arithmetic device 105.
[0132] <Updating operation management information based on location management information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires the position management information D16 stored in the storage unit 104. Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the position (past position and future position) of the vehicle 10 indicated in the position management information D16, and estimates the operation rate (past operation rate and future operation rate) of the arithmetic device 105 based on the estimated operation rate of the arithmetic device 105. Then, the arithmetic device 105 updates the operation management information D17 stored in the storage unit 104 based on the estimated operation rate of the arithmetic device 105.
[0133] Updating location management information based on schedule information Also, in this example, similar to "updating location management information based on schedule information," the arithmetic device 105 accesses the memory unit 204 of the user terminal 20 owned by the user who owns the vehicle 10 in which the arithmetic device 105 is installed, and detects actions involving the use of the vehicle 10 from among the user's actions (action history and action plans) shown in the schedule information D23 stored in the memory unit 204.
[0134] Next, the arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the detected user behavior (behavior history and behavior schedule), and estimates the availability (past availability and future availability) of the arithmetic device 105 based on the result of the estimation. Then, the arithmetic device 105 updates the operation management information D17 stored in the memory unit 104 based on the estimated availability of the arithmetic device 105.
[0135] [Updating communication management information] Next, the updating of the communication management information D18 will be described. The arithmetic device 105 monitors the communication status of the vehicle 10 in which the arithmetic device 105 is installed, and updates the past communication status of the vehicle 10 indicated in the communication management information D18 based on the results of this monitoring. Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the communication status of the vehicle 10, it updates the communication status of the vehicle 10 indicated in the communication management information D18 based on that information.
[0136] Examples of information that can be used to estimate the communication status of vehicle 10 include car navigation information showing the driving history and driving schedule of vehicle 10, function usage information D14 stored in memory unit 104 of vehicle 10, vehicle usage information D15, location management information D16, and schedule information D23 stored in memory unit 204 of user terminal 20.
[0137] <Updating communication management information based on car navigation information> In this example, the arithmetic device 105 estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the driving history and driving schedule of the vehicle 10 indicated in the car navigation information input to the input unit 101. For example, the "communication state of the vehicle 10 during a period when the vehicle 10 was parked in a location with a relatively good communication environment" and the "communication state of the vehicle 10 during a period when the vehicle 10 is scheduled to be parked in a location with a relatively good communication environment" are estimated to be "relatively good communication states." Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication state of the vehicle 10.
[0138] <Updating communication management information based on function usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires function usage information D14 stored in the storage unit 104. The arithmetic device 105 detects the usage status of functions involving communication use from the usage status (usage history and usage schedule) of various functions indicated in the function usage information D14. The arithmetic device 105 estimates the communication status of the vehicle 10 (past communication status and future communication status) based on the detected usage status of the functions. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication status of the vehicle 10.
[0139] <Updating communication management information based on vehicle usage information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires vehicle usage information D15 stored in the storage unit 104. The arithmetic device 105 estimates the driving status (driving history and driving schedule) of the vehicle 10 based on the usage status (usage history and usage schedule) of the vehicle 10 indicated in the vehicle usage information D15, and estimates the communication status (past communication status and future communication status) of the vehicle 10 based on the estimation result. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication status of the vehicle 10.
[0140] <Updating communication management information based on location management information> Also, in this example, the arithmetic device 105 accesses the storage unit 104 and acquires the location management information D16 stored in the storage unit 104. Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the location (past location and future location) of the vehicle 10 indicated in the location management information D16, and estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the communication management information D18 stored in the storage unit 104 based on the estimated communication state of the vehicle 10.
[0141] <Updating communication management information based on schedule information> Also, in this example, similar to "updating location management information based on schedule information," the arithmetic device 105 accesses the memory unit 204 of the user terminal 20 owned by the user who owns the vehicle 10 in which the arithmetic device 105 is installed, and detects actions involving the use of the vehicle 10 from among the user's actions (action history and action plans) shown in the schedule information D23 stored in the memory unit 204.
[0142] Next, the arithmetic device 105 estimates the driving situation (driving history and driving schedule) of the vehicle 10 based on the detected user behavior (behavior history and behavior schedule), and estimates the communication state (past communication state and future communication state) of the vehicle 10 based on the result of the estimation. Then, the arithmetic device 105 updates the communication management information D18 stored in the memory unit 104 based on the estimated communication state of the vehicle 10.
[0143] [Processing by the control unit (management method)] The control unit 505 performs job reception processing, location prediction processing, capacity prediction processing, communication prediction processing, accuracy derivation processing, matching processing, and grid computing processing. These processes are examples of a management method for managing grid computing processing.
[0144] [Job acceptance processing] Next, the job reception process will be described with reference to Fig. 7. In the job reception process, job data D1 for which a calculation is requested by a client is received. For example, the control unit 505 performs the following process each time a calculation of job data D1 is requested by a client.
[0145] <Step S11> First, the management server 50 accepts a job request from a client. Specifically, in response to an operation by a person in charge of the client, the client server 30 transmits a job request application to the management server 50. In response to the application, the control unit 505 of the management server 50 performs the following processing.
[0146] The control unit 505 requests the client server 30 to transmit information required to accept the job (specifically, client information related to the client requesting the job and job information related to the job). In this example, the control unit 505 transmits image data of the job acceptance screen to the client server 30. The control unit 305 of the client server 30 reproduces the image of the job acceptance screen from the image data, and causes the output unit 302 (display unit) to output (display) the image.
[0147] 8, the job reception screen is a screen for inputting information required to receive a job. The job reception screen has a client name input field R101 for inputting the client name, a person in charge name input field R102 for inputting the name of the person in charge of the client, an address input field R104 for inputting the client's address, a job name input field R111 for inputting the name of the job, a job content input field R112 for inputting an explanation of the job content, a calculation type input field R113 for inputting the calculation type of job data corresponding to the job, a processing condition input field R114 for inputting the processing conditions of the job data, a required calculation capacity input field R115 for inputting the required calculation capacity of the job data, a delivery date input field R116 for inputting the delivery date of the job, and a register button B100.
[0148] The person in charge of the client operates the input unit 301 (operation unit) of the client server 30 to input the necessary information into the job reception screen. This inputs client information about the client requesting the job and job information about the job. Then, after completing input of this information, the person in charge of the client operates the input unit 301 (operation unit) of the client server 30 to press the registration button B100 on the job reception screen. When the registration button B100 is pressed, the control unit 305 of the client server 30 transmits the information (client information and job information) input into the job reception screen to the management server 50. The control unit 505 of the management server 50 receives the client information and job information.
[0149] Next, the control unit 505 requests the client server 30 to transmit job data D1 corresponding to the job. In response to the request, the control unit 305 of the client server 30 transmits the job data D1 corresponding to the job to the management server 50. The control unit 505 of the management server 50 receives the job data D1.
[0150] <Step S12> Next, the control unit 505 of the management server 50 analyzes the job data D1 received in step S11. Specifically, the control unit 505 analyzes the calculation type, processing conditions, required calculation capacity, etc. of the job data D1. Then, the control unit 505 modifies the job information received in step S11 based on the results of the analysis of the job data D1.
[0151] If the job information received in step S11 is sufficiently reliable, the process of step S12 may be omitted.
[0152] <Step S13> Next, the control unit 505 of the management server 50 associates the client information received in step S11 with the job information corrected as necessary in step S12 (or the job information received in step S11), and registers them in the job table D54. The control unit 505 also stores the job data D1 received in step S11 in the storage unit 504.
[0153] [Position Prediction Processing] Next, the position prediction process will be described with reference to Fig. 9. In the position prediction process, the control unit 505 predicts a change in the position of the vehicle 10 over time based on the position management information D16 of the vehicle 10 registered in the vehicle table D52. For example, when the position management information D16 of the vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0154] <Step S21> First, the control unit 505 acquires the location management information D16 of the vehicle 10 registered in the vehicle table D52. As in "updating the location management information," the control unit 505 may update the location management information D16 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the location of the vehicle 10, and acquire the updated location management information D16.
[0155] <Step S22> Next, the control unit 505 predicts a change in the position of the vehicle 10 over time based on the "position management information D16" of the vehicle 10 acquired in step S21.
[0156] Specifically, the control unit 505 predicts a trend (pattern) of changes in the position of the vehicle 10 from the vehicle position indicated in the position management information D16. This prediction of the trend of changes in the position of the vehicle 10 may be realized by machine learning. Then, the control unit 505 predicts changes in the position of the vehicle 10 over time (where the vehicle 10 is at what time) based on the trend of changes in the position of the vehicle 10.
[0157] <Step S23> Next, the control unit 505 registers (overwrites) the position prediction information D5 indicating the "change over time in the position of the vehicle 10" predicted in step S22 in the position prediction table D55. This updates the position prediction table D55. Note that if the future position (estimated value) of the vehicle 10 indicated in the position management information D16 is sufficiently reliable, the future position of the vehicle 10 may be registered in the position prediction information D5.
[0158] [Ability Prediction Processing] Next, the capacity prediction process will be described with reference to Fig. 10. In the capacity prediction process, the control unit 505 predicts the computational capacity available for grid computing processing of the arithmetic device 105 of the vehicle 10 based on the operation management information D17 of the vehicle 10 registered in the vehicle table D52. For example, when the operation management information D17 of the vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0159] <Step S31> First, the control unit 505 acquires the calculation device information D12 and operation management information D17 of the vehicle 10 registered in the vehicle table D52. As in "updating operation management information," the control unit 505 may update the operation management information D17 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the utilization rate of the computing capacity of the vehicle 10, and acquire the updated operation management information D17.
[0160] <Step S32> Next, the control unit 505 predicts the change over time in the computing capacity available for grid computing processing of the computing device 105 of the vehicle 10 based on the "computing device information D12" and "operation management information D17" of the vehicle 10 acquired in step S31.
[0161] Specifically, the control unit 505 predicts a trend (pattern) of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, based on the operating status of the computing device 105 of the vehicle 10 indicated in the operation management information D17. This prediction of the trend of changes in the utilization rate of the computing capacity of the computing device 105 may be achieved by machine learning. Then, based on the trend of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, the control unit 505 predicts a period during which the computing capacity of the computing device 105 of the vehicle 10 has spare capacity (a period during which the utilization rate of the computing capacity is less than 100%), and defines this period as a "period during which the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing." For example, the control unit 505 defines a period during which the utilization rate of the computing capacity of the computing device 105 of the vehicle 10 is "30%" as a period during which "70%" of the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing.
[0162] <Step S33> Next, the control unit 505 registers (overwrites) the capacity prediction information D6 indicating the "change over time in the computing capacity available for grid computing processing of the arithmetic device 105" predicted in step S32 in the capacity prediction table D56. This updates the capacity prediction table D56.
[0163] [Communication prediction processing] Next, the communication prediction process will be described with reference to Fig. 11. In the communication prediction process, the control unit 505 predicts a change over time in the communication state of a vehicle 10 based on the communication management information D18 of the vehicle 10 registered in the vehicle table D52. For example, when the communication management information D18 of a vehicle 10 registered in the vehicle table D52 is updated, the control unit 505 performs the following process for the vehicle 10.
[0164] <Step S41> First, the control unit 505 acquires the communication management information D18 of the vehicle 10 registered in the vehicle table D52. As in "updating the communication management information," the control unit 505 may update the communication management information D18 of the vehicle 10 registered in the vehicle table D52 based on information that can be used to estimate the communication status of the vehicle 10, and acquire the updated communication management information D18.
[0165] <Step S42> Next, the control unit 505 predicts a change over time in the communication state of the vehicle 10 based on the communication management information D18 of the vehicle 10 acquired in step S41.
[0166] Specifically, the control unit 505 predicts a trend (pattern) of changes in the communication state of the vehicle 10 from the communication state of the vehicle indicated in the communication management information D18. This prediction of the trend of changes in the communication state of the vehicle 10 may be realized by machine learning. Then, the control unit 505 predicts a change over time in the communication state of the vehicle 10 (what state the communication state of the vehicle 10 will be at what time) based on the trend of changes in the communication state of the vehicle 10.
[0167] <Step S43> Next, the control unit 505 registers (overwrites) the communication prediction information D7 indicating the "change over time in the communication state of the vehicle 10" predicted in step S42 in the communication prediction table D57. This updates the communication prediction table D57. Note that if the future communication state (estimated value) of the vehicle 10 indicated in the communication management information D18 is sufficiently reliable, the future communication state of the vehicle 10 may be registered in the communication prediction information D7.
[0168] [Probability derivation process] Next, the accuracy derivation process will be described with reference to Fig. 12. The control unit 505 performs the following process as appropriate (for example, periodically).
[0169] <Step S45> First, the control unit 505 acquires, for each vehicle 10, information that can be used to derive the calculation completion accuracy of that vehicle 10. Examples of information that can be used to derive the calculation completion accuracy of the vehicle 10 include the remaining battery charge of the vehicle 10, the power supply status, the calculation completion record, the communication status, the available time of the arithmetic device 105, and the available rate of the calculation capacity of the arithmetic device 105.
[0170] In this example, the remaining battery charge of the vehicle 10 is indicated in vehicle remaining battery charge information included in vehicle status information D13 for the vehicle 10 registered in the vehicle table D52. The power supply status of the vehicle 10 is indicated in vehicle charging information included in vehicle status information D13 for the vehicle 10 registered in the vehicle table D52. The calculation completion record of the vehicle 10 (the ratio of the "number of grid computing processes in which the vehicle 10 was able to complete the calculation of job data" to the "number of grid computing processes in which the vehicle 10 was used") is indicated in record management information D19 for the vehicle 10 registered in the vehicle table D52. The communication status of the vehicle 10 is indicated in communication prediction information D6 for the vehicle 10 registered in the communication prediction table D57.
[0171] The available time of the computing device 105 of the vehicle 10 (the time during which the computing capacity of the computing device 105 can be continuously provided for grid computing processing) is derived based on the change over time (predicted value) of the available computing capacity of the computing device 105 indicated in the capacity prediction information D6 for the vehicle 10 registered in the capacity prediction table D55. Specifically, the "available time of the computing device 105" is the time during which the available computing capacity of the computing device 105 indicated in the capacity prediction information D6 continues to be greater than zero.
[0172] The available rate of computing power of the computing device 105 of the vehicle 10 (the proportion of computing power that can be used in grid computing processing) is derived based on the change over time (predicted value) of the available computing power of the computing device 105 shown in the capacity prediction information D6 for the vehicle 10 registered in the capacity prediction table D55.
[0173] <Step S46> Next, the control unit 505 derives the calculation completion accuracy of the vehicle 10 for each vehicle 10 based on the "information usable for deriving the calculation completion accuracy of the vehicle 10" acquired in step S46. For example, the control unit 505 derives the calculation completion accuracy of the vehicle 10 based on at least one of the remaining battery charge of the vehicle 10, the power supply state, the calculation completion record, the available time of the calculation device 105, and the availability rate of the calculation capacity of the calculation device 105.
[0174] For example, the higher the remaining battery charge of vehicle 10, the higher the accuracy of calculation completion of vehicle 10. The accuracy of calculation completion of vehicle 10 when the power supply state of vehicle 10 is "powered (charging at charging equipment)" is higher than the accuracy of calculation completion of vehicle 10 when the power supply state of vehicle 10 is "not powered (not charging at charging equipment)". The more calculation completion records vehicle 10 has, the higher the accuracy of calculation completion of vehicle 10. The better the communication state of vehicle 10, the higher the accuracy of calculation completion of vehicle 10. The longer the available time of vehicle 10's calculation device 105, the higher the accuracy of calculation completion of vehicle 10. The higher the availability rate of the calculation capacity of vehicle 105, the higher the accuracy of calculation completion of vehicle 10.
[0175] The quality of the communication state of the vehicle 10 varies depending on the communication quality, communication band, and available communication time of the vehicle 10. For example, the higher the communication quality of the vehicle 10, the better the communication state of the vehicle 10. The wider the communication band of the vehicle 10, the better the communication state of the vehicle 10. The longer the available communication time of the vehicle 10, the better the communication state of the vehicle 10.
[0176] <Step S47> Next, the control unit 505 registers (overwrites) the accuracy information D8 indicating the "calculation completion accuracy of the vehicle 10" derived in step S46 in the accuracy table D60 for each vehicle 10. This updates the accuracy table D60.
[0177] [Matching process] Next, the matching process will be described with reference to Fig. 13. The matching process is a process of allocating a vehicle 10 that can be used in grid computing processing from among a plurality of vehicles 10 to the job data D1 accepted in the acceptance process. For example, after the job acceptance process is completed, the control unit 505 performs the following process.
[0178] <Step S51> First, the control unit 505 selects a job to be subjected to the matching process from among the jobs registered in the job table D54. Then, the control unit 505 selects job data D1 corresponding to the job to be subjected to the matching process from among the job data D1 stored in the storage unit 504.
[0179] <Step S52> Next, the control unit 505 selects a vehicle 10 that can be used in grid computing processing for the job data D1 selected in step S51 from among the multiple vehicles 10 based on the ``prediction result of the change over time in the computing capacity available for grid computing processing for each of the multiple vehicles 10 registered in the capacity prediction table D56'' and the ``prediction result of the change over time in the communication status of each of the multiple vehicles 10 registered in the communication prediction table D57.''
[0180] Specifically, the control unit 505 determines a planned calculation period during which grid computing processing for the job data D1 will be executed, and detects vehicles 10 that are capable of communicating and providing computing power during the planned calculation period from among the multiple vehicles 10. Then, the control unit 505 selects vehicles 10 to be assigned to the job data D1 from among the vehicles 10 that can provide computing power during the planned calculation period so that the "total computing power provided for the grid computing processing" is equal to or greater than the "computing power required for calculating the job data D1 in the grid computing processing."
[0181] <Step S53> Next, the control unit 505 assigns the vehicle 10 selected in step S52 to the job data D1 selected in step S51. Then, the control unit 505 registers matching result information indicating which vehicle 10 is assigned to which job data D1 in the matching table D58. For example, the control unit 505 associates the reception number set in the job data D1 (job) with the vehicle ID set for the vehicle 10 assigned to the job data D1, and registers them in the matching table D58.
[0182] [Grid Computing Processing] Next, the grid computing process will be described with reference to Fig. 14. In the grid computing process, job data D1 is processed by a plurality of available vehicles 10 among the plurality of vehicles 10. For example, the control unit 505 performs the following process after the matching process is completed. Note that the grid computing process is an example of a processing method in which job data D1 transmitted by the management server 50 is processed by a plurality of available vehicles 10 among the plurality of vehicles 10.
[0183] <Step S61> First, the control unit 505 refers to the matching table D58 and distributes the job data D1 to be subjected to the grid computing process to the vehicles 10 assigned to that job data D1 in the matching process. Specifically, the control unit 505 transmits a portion of the job data D1 to each of the vehicles 10 assigned to that job data D1. As a result, the job data D1 is processed in parallel by the vehicles 10 assigned to that job data D1.
[0184] <Step S62> Next, when each vehicle 10 completes the calculation of the partial job data (part of job data D1) transmitted to that vehicle 10, it transmits the partial calculation result data (part of calculation result data D2) obtained by the calculation to the management server 50. The control unit 505 of the management server 50 receives the partial calculation result data transmitted from the vehicle 10 and stores the partial calculation result data in the memory unit 504.
[0185] <Step S63> The control unit 505 determines whether or not all of the vehicles 10 to which the job data D1 has been distributed in step S61 have completed the calculations. If all of the vehicles 10 have completed the calculations, the process of step S64 is performed; if not, the process of step S62 is performed.
[0186] <Step S64> When all of the arithmetic devices 105 have completed the calculations, the control unit 505 generates calculation result data D2 (calculation result data D2 indicating the results of the calculation of the job data D1) corresponding to the job data D1 that is the target of the grid computing process by combining the partial calculation result data stored in the storage unit 504. Then, the control unit 505 transmits the calculation result data D2 corresponding to the job data D1 that is the target of the grid computing process to the client server 30 of the client that requested the calculation of the job data D1.
[0187] <Step S65> Next, a reward is granted by the operator of the system 1 to a user who has provided the computing power of the arithmetic device 105 of the vehicle 10 for the grid computing process. Examples of rewards granted to a user include points that can be used in the system 1, virtual currency, and product discount benefits. For example, the control unit 505 of the management server 50 performs processing to grant a reward to a user who has provided the computing power of the arithmetic device 105 of the vehicle 10 for the grid computing process. Examples of the processing to grant a reward include a process of associating a "user ID" set for the user with "points" (or virtual currency) that can be used in the system 1 and registering the associated information in the user table D51, and a process of transmitting information indicating a product discount benefit to the user terminal 20 owned by the user. Note that the information indicating the reward may be registered for each job in the job table D54.
[0188] Furthermore, a reward may be given by the client to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing. For example, the control unit 305 of the client server 30 may execute processing for giving a reward to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing.
[0189] [Characteristics of grid computing processing] Next, the characteristics of the grid computing process will be described. In the grid computing process, the control unit 505 performs the following processes.
[0190] In the following, the multiple vehicles 10 that can be used in the grid computing process will be referred to as "multiple available vehicles 10." In this example, the "vehicles 10 that can be used in the grid computing process" are, among the multiple vehicles 10, vehicles 10 whose computing capacity utilization rate of the arithmetic device 105 is less than 100% during the period when the grid computing process is performed, and which can communicate with the management server 50.
[0191] In grid computing processing, the control unit 505 causes the job data D1 (more specifically, partial job data) to be processed by a vehicle 10 among multiple available vehicles 10 that has specifications that meet the conditions required for processing the job data D1.
[0192] [Requirements for processing job data] The conditions required for processing job data D1 include at least one of responsiveness, reliability, and execution frequency. In this example, the conditions required for processing job data D1 include responsiveness, reliability, execution frequency, processing scale, and processing time. For example, these conditions can be obtained by analyzing job data D1.
[0193] <Responsiveness> Responsiveness indicates the speed of response in outputting calculation result data D2 in response to input of job data D1. Specifically, it indicates the speed of response from "transmission of partial job data by management server 50 (transmission to vehicle)" to "reception of partial calculation result data (partial calculation result data transmitted from vehicle 10) by management server 50." The higher the responsiveness, the shorter the time (response time) required from input of job data D1 to output of calculation result data D2.
[0194] <Reliability> The reliability indicates the likelihood that calculation result data D2 indicating the calculation results of job data D1 can be obtained. Specifically, it indicates the likelihood that "partial calculation result data indicating the calculation results of partial job data" can be obtained from each of the multiple vehicles 10. The higher the reliability, the higher the likelihood that calculation result data D2 can be obtained.
[0195] <Execution frequency> The execution frequency is the frequency at which the processing of the job data D1 is executed. Examples of the execution frequency include the frequency of data storage, data search, data addition, data deletion, and data optimization.
[0196] <Processing scale> The processing scale is the scale of processing of the job data D1. Examples of the processing scale include the size of the program included in the data, the size of the data, the size of the function included in the data, the number of functions included in the data, the number of loops of the data, the calculation accuracy required for the data, the range of data processing, etc.
[0197] For example, the smaller the size of the program included in the job data D1, the smaller the processing scale of the job data D1. The smaller the size of the job data D1, the smaller the processing scale of the job data D1. The smaller the scale of the functions included in the job data D1, the smaller the processing scale of the job data D1. The fewer the number of functions included in the job data D1, the smaller the processing scale of the job data D1.
[0198] The fewer the number of times the job data D1 is looped, the smaller the processing scale of the job data D1. The lower the calculation accuracy required for the job data D1, the smaller the processing scale of the job data D1. The narrower the processing range of the job data D1, the smaller the processing scale of the job data D1.
[0199] <Processing time> The processing time is the time required to process the job data D1, for example, the processing time is the estimated time required from the start to the end of processing the job data D1.
[0200] [Vehicle specifications] The specifications of the vehicle 10 include at least one of communication performance, communication stability, and calculation completion accuracy. In this example, the specifications of the vehicle 10 include communication performance, communication stability, calculation completion accuracy, and calculation performance. The communication stability of the vehicle 10 is the communication stability between the vehicle 10 and the management server 50. The calculation performance is the performance of the calculation device 105 of the vehicle 10.
[0201] The communication performance and calculation performance of the vehicle 10 are indicated in the calculation device performance information included in the calculation device information D12 registered in the vehicle table D52. The communication stability of the vehicle 10 is indicated in the communication prediction information D7 registered in the communication prediction table D57. The calculation completion accuracy of the vehicle 10 is indicated in the accuracy information D8 registered in the accuracy table D60.
[0202] [Relationship between job data processing conditions and vehicle specifications] In this example, the higher the "responsiveness" required in processing job data D1, the higher at least one of the "communication performance," "communication stability," and "calculation completion accuracy" of the vehicle 10 that processes the job data D1.
[0203] Furthermore, the higher the "reliability" required in processing the job data D1, the higher the "calculation completion probability" of the vehicle 10 that processes the job data D1.
[0204] Furthermore, the higher the "execution frequency" required for processing the job data D1, the higher at least one of the "communication performance" and "communication stability" of the vehicle 10 that processes the job data D1.
[0205] Furthermore, the larger the "processing scale" required for processing the job data D1, the higher the "computing performance" of the vehicle 10 that processes the job data D1.
[0206] Furthermore, the shorter the "processing time" required to process the job data D1, the higher the "computing performance" of the vehicle 10 that processes the job data D1.
[0207] [Specific example of the relationship between job data processing conditions and vehicle specifications] For example, the relationship between the conditions required for processing the job data D1 and the specifications of the vehicle 10 is as shown in FIG.
[0208] 15, the processing of the job data D1 is classified, and for each classification of the processing, there is shown a correspondence between the conditions required for processing the job data D1 and the specifications of the vehicle 10. The processing classifications provided are real-time processing, batch processing, database processing, pure storage processing, and routing processing.
[0209] Real-time processing is processing that immediately executes processing when a processing request occurs and returns processing results in a short response. Since immediate execution and fast response are important in real-time processing, it is desirable to have the processing performed by vehicle 10, which has high communication performance, communication stability, and calculation completion accuracy.
[0210] Batch processing is a process in which multiple processes are executed in sequence. In batch processing, there is a wide range of ways to group processes (processing volume), so it is desirable to have the processes executed by a vehicle 10 with the necessary computing performance.
[0211] Database-based processing is processing performed on hierarchical or organized data groups, and involves data storage, updating, retrieval, etc. Database-based processing has a wide range of update frequencies and update data volumes, and reliability is also required, so it is desirable to have the processing performed by vehicle 10, which has high communication performance, communication stability, and calculation completion accuracy, as well as the necessary computing performance.
[0212] Pure storage processing is a low-level data processing and storage process that is not highly hierarchical and does not have advanced search capabilities. In pure storage processing, the update frequency and update data volume vary, so it is desirable to have the processing performed by a vehicle 10 that has high communication performance and communication stability, as well as the necessary computing performance.
[0213] Routing processing is, for example, route calculation processing for packets, etc. Routing processing requires real-time calculation, so it is desirable to have the processing performed by vehicle 10, which has high communication performance, communication stability, and calculation completion probability.
[0214] 15, the levels of "communication performance," "communication stability," "calculation completion accuracy," and "computation performance" of the vehicle 10 are each classified into three levels: "high," "medium," and "low." The processing time is classified into two levels: "short" and "long." The execution frequency is classified into two levels: "high" and "low." The processing scale is classified into two levels: "large" and "small."
[0215] 15 shows that when the processing of job data D1 is classified as "real-time processing" or "routing processing," the required "responsiveness" is higher than that of other processing. Also, the example of Fig. 15 shows that when the processing of job data D1 is classified as "database processing," the required "reliability" is higher than that of other processing.
[0216] The example of the first row (No. 1) of the correspondence table shown in Figure 15 indicates that when the processing of job data D1 is "real-time processing" and the processing scale of the job data D1 is "large," it is desirable that the levels of "communication performance," "communication stability," "calculation completion accuracy," and "computational performance" of the vehicle 10 processing the job data D1 be "high."
[0217] The example of the third row (No. 3) of the correspondence table shown in Figure 15 indicates that when the processing of job data D1 is "batch processing," the processing scale of the processing of job data D1 is "large," and the processing time of the processing of job data D1 is "short," it is desirable that the levels of "communication performance," "communication stability," and "computation performance" of the vehicle 10 processing the job data D1 are each "high," and the level of "calculation completion accuracy" of the vehicle 10 is "medium."
[0218] The example of the seventh row (No. 7) of the correspondence table shown in Figure 15 indicates that if the processing of job data D1 is "database-based processing," the execution frequency of the processing of job data D1 is "high," and the processing scale of the processing of job data D1 is "large," it is desirable that the levels of "communication performance," "communication stability," "calculation completion accuracy," and "computational performance" of the vehicle 10 processing the job data D1 be "high."
[0219] Comparing the example on the first line (No. 1) with the example on the second line (No. 2) shown in FIG. 15, the "processing scale" of the example on the first line is larger than the "processing scale" of the example on the second line. Furthermore, the "computing performance" of the example on the first line is higher than the "computing performance" of the example on the second line. Thus, the example in FIG. 15 shows that the larger the processing scale of job data D1, the higher the computing performance of the vehicle 10 that processes that job data D1.
[0220] Comparing the example on the third line (No. 3) with the example on the fifth line (No. 5) shown in FIG. 15, the "processing time" in the example on the third line is shorter than the "processing time" in the example on the fifth line. Furthermore, the "computing performance" in the example on the third line is higher than the "computing performance" in the example on the fifth line. Thus, the example in FIG. 15 shows that the shorter the processing time of job data D1, the higher the computing performance of the vehicle 10 that processes that job data D1.
[0221] [Matching process details] In the matching process, the control unit 505 of the management server 50 acquires information indicating conditions required for processing the job data D1. For example, the control unit 505 analyzes the job data D1 to acquire the conditions required for processing the job data D1.
[0222] Next, the control unit 505 refers to various information and selects, from among the multiple available vehicles 10, a vehicle 10 having specifications that meet the conditions required for processing the job data D1 as a ``candidate vehicle 10 to process the job data D1.''
[0223] Specifically, the higher the "responsiveness" required in processing the job data D1, the higher at least one of the "communication performance," "communication stability," and "calculation completion accuracy" of the vehicle 10 selected as the candidate. Furthermore, the higher the "reliability" required in processing the job data D1, the higher the "calculation completion accuracy" of the vehicle 10 selected as the candidate. Furthermore, the higher the "execution frequency" required in processing the job data D1, the higher at least one of the "communication performance" and "communication stability" of the vehicle 10 selected as the candidate. Furthermore, the larger the "processing scale" required in processing the job data D1, the higher the "computational performance" of the vehicle 10 selected as the candidate. Furthermore, the shorter the "processing time" required in processing the job data, the higher the "computational performance" of the vehicle 10 selected as the candidate.
[0224] For example, the control unit 505 refers to the information table showing the correspondence shown in Figure 15, detects from the information table the specifications of the vehicle 10 that meet the conditions required for processing the job data D1, and selects the vehicle 10 that has the detected specifications as a ``candidate vehicle 10 to process the job data D1.''
[0225] Next, the control unit 505 refers to the capacity prediction table D56 and determines the "vehicle 10 to process the job data" from among the candidate vehicles 10 to process the job data D1 so that the "total computing capacity provided for the grid computing process" is equal to or greater than the "computing capacity required to process the job data D1 in the grid computing process."
[0226] Next, the control unit 505 divides the job data D1 into a plurality of partial job data. Then, the control unit 505 refers to the capacity prediction table D56 and determines, for each of the plurality of partial job data, a vehicle 10 that will process that partial job data. After completing the allocation of vehicles 10 to the partial job data, the control unit 505 generates assignment information that indicates the correspondence between the vehicles 10 and the partial job data (which vehicle 10 will process which partial job data).
[0227] Next, the control unit 505 associates the responsible information with the job data D1 and registers it in the matching table D56. As a result, responsible information is registered for each job data D1 in the matching table D58.
[0228] [Details of grid computing processing] In grid computing processing, the control unit 505 of the management server 50 divides the job data D1 to be processed in the grid computing processing into a plurality of partial job data. Next, the control unit 505 refers to the handling information registered in the matching table D58, and transmits each of the plurality of partial job data to the vehicle 10 that will process the partial job data (the vehicle 10 having specifications according to the conditions required for processing the job data D1).
[0229] Each of the multiple vehicles 10 calculates the partial job data transmitted from the control unit 505. As a result, partial calculation result data indicating the calculation results of the partial job data is obtained in each of the multiple vehicles 10. Then, each of the multiple vehicles 10 transmits the partial calculation result data to the control unit 505.
[0230] The control unit 505 of the management server 50 receives the partial calculation result data transmitted from each of the multiple vehicles 10. Then, the control unit 505 integrates the multiple partial calculation result data to generate calculation result data D2 indicating the calculation result of the job data D1.
[0231] [Effects of the embodiment] As described above, in the embodiment, in grid computing processing, the control unit 505 causes the job data D1 to be processed by a vehicle 10 having specifications according to the conditions required for processing the job data D1, among a plurality of available vehicles 10. With this configuration, the job data D1 can be processed by a vehicle 10 that is suitable for processing the job data D1.
[0232] In the embodiment, the higher the responsiveness required in processing the job data D1, the higher at least one of the communication performance, communication stability, and calculation completion probability of the vehicle 10 that processes the job data D1. With this configuration, the job data D1 can be processed by a vehicle 10 that is suited to the responsiveness required in processing the job data D1.
[0233] Furthermore, in the embodiment, the higher the reliability required for processing the job data D1, the higher the probability of the vehicle 10 that processes the job data D1 completing the calculation. With this configuration, the job data D1 can be processed by a vehicle 10 that is suitable for the reliability required for processing the job data D1.
[0234] In the embodiment, the higher the execution frequency required for processing the job data D1, the higher at least one of the communication performance and communication stability of the vehicle 10 that processes the job data D1. With this configuration, the job data D1 can be processed by a vehicle 10 that is suitable for the execution frequency required for processing the job data D1.
[0235] In the embodiment, the specifications of the vehicle 10 include the computing performance of the vehicle 10. With this configuration, the job data D1 can be processed by a vehicle 10 that has the computing performance suitable for processing the job data D1.
[0236] Furthermore, in the embodiment, the larger the processing scale required for processing the job data D1, the higher the calculation performance of the vehicle 10 that processes the job data D1. With this configuration, the job data D1 can be processed by the vehicle 10 that has calculation performance appropriate for the processing scale required for processing the job data D1.
[0237] Furthermore, in the embodiment, the shorter the processing time required to process the job data D1, the higher the computational performance of the vehicle 10 that processes the job data D1. With this configuration, the job data D1 can be processed by a vehicle 10 that has computational performance appropriate for the processing time required to process the job data D1.
[0238] (Modification of Matching Process) In the above description, the matching process shown in Fig. 16 may be performed instead of the matching process shown in Fig. 13. In this modification, the control unit 505 of the management server 50 performs the following process as appropriate (for example, periodically).
[0239] In the following description, a combination of multiple vehicles 10 that are capable of communicating and providing computing power to grid computing processes during the same period will be referred to as a "grid group."
[0240] <Step S55> First, the control unit 505 prepares multiple grid groups based on the "prediction result of the change over time in the computing capacity available for grid computing processing of each of the multiple vehicles 10 registered in the capacity prediction table D56" and the "prediction result of the change over time in the communication status of each of the multiple vehicles 10 registered in the communication prediction table D57."
[0241] The plurality of grid groups each differ in at least one of the "period during which computing power can be provided to grid computing processes" and the "total amount of computing power that can be provided to grid computing processes."
[0242] <Step S56> Next, the control unit 505 selects a job to be subjected to the matching process from among the jobs registered in the job table D54. Then, the control unit 505 selects job data D1 corresponding to the job to be subjected to the matching process from among the job data D1 stored in the storage unit 504.
[0243] <Step S57> Next, the control unit 505 selects, from the plurality of grid groups, a grid group to be used in the grid computing process for the job data D1 selected in step S56.
[0244] Specifically, the control unit 505 determines a planned calculation period during which grid computing processing for job data D1 will be executed, and selects grid groups available for use during the planned calculation period from among multiple grid groups. Then, the control unit 505 selects grid groups to be allocated to the job data D1 from among the grid groups available during the planned calculation period so that the "total computing capacity provided to the grid computing processing" is equal to or greater than the "computing capacity required for computing the job data D1 in the grid computing processing."
[0245] Next, the control unit 505 assigns a grid selected from the plurality of grid groups to the job data D1 selected in step S56. Then, the control unit 505 registers matching result information indicating which vehicle 10 is assigned to which job data D1 in the matching table D58.
[0246] (Other embodiments) In the above description, an example has been given in which the management server 50 and the vehicle 10 communicate directly without going through another vehicle 10, but this is not limiting. For example, the management server 50 and the vehicle 10 may communicate indirectly via another vehicle 10.
[0247] In the above explanation, a correspondence table (lookup table) has been given as an example of correspondence information showing the correspondence between the "processing level of vehicle 10" and the "processing load of job data to be processed by vehicle 10," but the present invention is not limited to this. For example, the correspondence information may be a learning model obtained by machine learning. When the "processing level of vehicle 10" is input to this learning model, the "processing load of job data to be processed by vehicle 10" is output from this learning model.
[0248] Furthermore, in the above description, an example has been given in which the control unit 505 of the management server 50 performs the position prediction process, but the present invention is not limited to this. For example, the position prediction process may be performed by the arithmetic device 105 of the vehicle 10. In this case, the arithmetic device 105 may transmit position prediction information D5 obtained by the position prediction process to the management server 50. The control unit 505 of the management server 50 may update the position prediction table D55 by registering (overwriting) the position prediction information D5 transmitted from the vehicle 10 in the position prediction table D55. The same applies to the operation prediction process and the communication prediction process.
[0249] In addition, in the above description, the control unit 505 is aggregated in a single management server 50, but this is not limiting. For example, the control unit 505 may be distributed among a plurality of management servers 50 (not shown) that communicate with each other via the communication network 5.
[0250] In the above description, the storage unit 504 may be configured by a single storage device or may be configured by multiple storage devices. The multiple storage devices may be consolidated into a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.
[0251] In the above description, the control unit 505 may be configured by a single control unit or may be configured by multiple control units. The multiple control units may be aggregated in a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5.
[0252] In the above description, the arithmetic device 105 may be configured with a single arithmetic unit, or may be configured with multiple arithmetic units.
[0253] In the above description, the vehicle 10 (specifically, a four-wheeled motor vehicle) is given as an example of a moving body on which the arithmetic device 105 is mounted, but the present invention is not limited to this. The arithmetic device 105 may be mounted on a moving body other than the vehicle 10. Examples of such moving bodies include transportation machinery and personal digital assistants. Examples of transportation machinery include motorcycles, railroad vehicles, ships, aircraft, and drones. A vehicle is an example of transportation machinery. Examples of personal digital assistants include notebook personal computers, tablets, and smartphones.
[0254] In the above description, the grid computing process may be provided with the computing power of not only the computing device 105 mounted on the vehicle 10 but also that of another computing device (not shown). Such another computing device may be a stationary computing device (for example, a desktop personal computer).
[0255] The above embodiments may be combined as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the technology disclosed herein, its applications, or its uses. [Industrial Applicability]
[0256] As described above, the technology disclosed herein is useful as a grid computing technology. [Explanation of symbols]
[0257] 1 System 10 vehicles 105 Arithmetic equipment 20 User terminal 30 Client Server 50 Management Server 501 Input section 502 Output section 503 Communications Department 504 Storage section 505 Control Unit D1 Job data D2 Calculation result data
Claims
1. A management device that manages a grid computing process in which job data is processed by a plurality of available mobile objects among a plurality of mobile objects each having a computing device, a control unit that causes a mobile object having specifications according to conditions required for processing the job data to be processed by the mobile object among the plurality of available mobile objects in the grid computing processing; the conditions required for processing the job data include at least one of responsiveness, reliability, and execution frequency; the specifications of the mobile unit include at least one of communication performance, communication stability, and calculation completion probability indicating the likelihood that calculation of the job data can be completed; The higher the reliability required in processing the job data, the higher the probability of the calculation completion of the mobile body that processes the job data. A management device characterized by:
2. 2. The management device of claim 1, The higher the responsiveness required in processing the job data, the higher at least one of the communication performance, the communication stability, and the calculation completion probability of the mobile body that processes the job data. A management device characterized by:
3. 3. The management device according to claim 1, The higher the execution frequency required for processing the job data, the higher at least one of the communication performance and the communication stability of the mobile unit that processes the job data. A management device characterized by:
4. In any one of claims 1 to 3, the management device The specifications of the mobile object include the computing performance, which is the performance of the computing device. A management device characterized by:
5. 5. The management device of claim 4, the conditions required for processing the job data include a processing scale, which is the scale of processing the job data; The larger the processing scale required for processing the job data, the higher the computing performance of the mobile body that processes the job data. A management device characterized by:
6. 6. The management device according to claim 4 or 5, The conditions required for processing the job data include a processing time, which is the time required to process the job data. The shorter the processing time required for processing the job data, the higher the computing performance of the mobile object that processes the job data. A management device characterized by:
7. A processing method for causing a plurality of available mobile objects among a plurality of mobile objects each having a computing device to process job data transmitted from a management device, the method comprising: transmitting the job data to a mobile object having specifications corresponding to conditions required for processing the job data, among the plurality of available mobile objects, by the management device; The job data is processed by the mobile object; the conditions required for processing the job data include at least one of responsiveness, reliability, and execution frequency; the specifications of the mobile unit include at least one of communication performance, communication stability, and calculation completion probability indicating the likelihood that calculation of the job data can be completed; The higher the reliability required in processing the job data, the higher the probability of the calculation completion of the mobile body that processes the job data. A processing method characterized by:
Citation Information
Patent Citations
The invention discloses a mMulti-speed disk scheduling method with diversified QoS constraints
CN109614038A
Network system and mobile communication node
JP2006201896A
Task assignment method, task assignment device, path setting device, and network information collection device
JP2006243930A
Distributed processing system and onboard terminal
JP2007087273A
Task management device, task management method and program
JP2012128673A