Information processor and method and system
The information processing device optimizes task assignment to stationary vehicles with suitable processors, enhancing efficiency and reliability by reallocating tasks when vehicles start moving, addressing inefficiencies in existing cloud computing systems.
Patent Information
- Application Number
- JP2024064597
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-12
- Publication Date
- 2025-10-24
AI Technical Summary
Existing cloud computing systems are inefficient in task assignment to moving vehicles due to prioritization of driving processes, and processors are often mismatched with task characteristics, leading to unreliable and prolonged processing times.
An information processing device that determines task allocation to processors in stationary vehicles based on task characteristics and movement states, prioritizing non-moving vehicles with suitable processors, and reallocates tasks if a vehicle starts moving.
Improves processing efficiency by ensuring tasks are executed by suitable processors, enhances reliability, and reduces processing time by avoiding task interruptions during vehicle movement.
Smart Images

Figure 2025161425000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to cloud computing. [Background technology]
[0002] A system has been disclosed that determines, from among a plurality of vehicles, a vehicle to be made to perform a predetermined task processing based on a predicted execution completion time (for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2017-129921 Summary of the Invention [Problem to be solved by the invention]
[0004] An object of one aspect of the present disclosure is to provide an information processing device and method that can improve the efficiency of processing when a task is assigned to a moving object and the task is processed. [Means for solving the problem]
[0005] One aspect of the present disclosure is determining, based on a property of the first task and a moving state of the plurality of moving bodies, how to allocate the first task to a processor of a first type among a plurality of types, the processor being mounted on a first moving body that is not moving among the plurality of moving bodies; instructing the first mobile object to execute the first task with the first type processor; a control unit that executes The information processing device is provided with:
[0006] Another aspect of the present disclosure is The computer determining, based on a property of the first task and a moving state of the plurality of moving bodies, how to allocate the first task to a processor of a first type among a plurality of types, the processor being mounted on a first moving body that is not moving among the plurality of moving bodies; instructing the first mobile object to execute the first task with the first type processor; This is a method for doing this.
[0007] Another aspect of the present disclosure is A plurality of moving bodies; determining, based on a property of the first task and a moving state of the plurality of moving bodies, how to allocate the first task to a processor of a first type among a plurality of types, the processor being mounted on a first moving body that is not moving among the plurality of moving bodies; instructing the first mobile object to execute the first task with the first type processor; a control unit that executes an information processing device comprising: The system is provided with: [Effects of the Invention]
[0008] According to one aspect of the present disclosure, it is possible to improve the efficiency of processing when a task is assigned to a mobile body and processed. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of a system configuration of a cloud computing system according to the first embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of the hardware configuration of the host computer and the vehicle. [Figure 3] FIG. 3 is a diagram illustrating an example of a functional configuration of the host computer and the vehicle. [Figure 4]FIG. 4 is an example of a flowchart of a task allocation process by the host computer. [Figure 5] FIG. 5 is an example of a flowchart of the task execution process of the vehicle 2. DETAILED DESCRIPTION OF THE INVENTION
[0010] For example, private cars are not in operation for more than 90% of the time, and the computing power of the onboard computers is not utilized when they are not in operation. By utilizing these onboard computers for cloud computing services, it is possible to reduce the initial investment costs required to start providing cloud computing services, which previously required the preparation of a large number of servers.
[0011] On the other hand, conventional container orchestration systems such as Kubernetes, which detect and manage the status of multiple information processing machines, are not optimized for using vehicles as information processing machines. As a result, for example, if a task is assigned to a moving vehicle, the driving process takes priority and the task execution may not be reliable.
[0012] Furthermore, each processor installed in a computer has its own strengths and weaknesses. For example, a CPU (Central Processing Unit) is Equipped with features such as branch prediction, superscalar, and out-of-order execution, they can process even complex programs at high speed. Superscalar refers to a mechanism that has multiple instruction processing circuits and executes multiple instructions simultaneously. Out-of-order execution refers to a mechanism that determines which instructions can be processed based on data dependencies and other factors, rather than the order of instructions in a machine language program, and starts, executes, and completes each instruction as it arrives. For example, a GPU (Graphics Processing Unit) can simultaneously execute thousands of relatively simple operations with the same content, allowing it to efficiently process simple programs with few conditional branches in a short amount of time. In other words, CPUs are good at processing conditional branches, while GPUs are good at repetitive processing. Efficiency can be reduced by assigning tasks to a processor that are not suited to its characteristics.
[0013] In view of the above problem, one aspect of the present disclosure improves processing efficiency by assigning tasks to a mobile object while prioritizing movement and taking into account the characteristics of a processor installed in the mobile object. More specifically, one aspect of the present disclosure is an information processing device including a control unit. The control unit executes the following: determining, based on the nature of the first task and the movement state of the mobile objects, how to allocate a first task to a first type of processor installed in a first mobile object that is not moving among the multiple mobile objects, the first type of processor being in accordance with the nature of the first task; and instructing the first mobile object to execute the first task using the first type of processor.
[0014] The information processing device may be, for example, a host computer that manages the distribution of tasks to multiple mobile objects. The control unit may be a dedicated server or a general-purpose computer that operates as a server. The control unit may be a processor such as a CPU, GPU, or DSP (Digital Signal Processor). However, the control unit is not limited to a processor, and may be a circuit such as an FPGA (Field Programmable Gate Array), a semiconductor integrated circuit (IC: Integrated Circuit), or a CPLD (Complex Programmable Logic Device).
[0015] The mobile body is, for example, a vehicle such as an automobile, a motorcycle, a bicycle, or a train. Furthermore, the mobile body is not limited to a vehicle that travels on the ground, but may be a machine that has a prime mover as its main purpose. More specifically, the mobile body may include, for example, a mobile body that travels on the sea, such as a ship, and a mobile body that travels in the air, such as an aircraft or a drone. Types of processors include, for example, a CPU, a GPU, and a DSP. For example, if the mobile body is a vehicle, the computer installed in the mobile body may be, for example, a data communication module installed in the vehicle, a navigation device, a drive recorder, and various other devices. Each computer has one of several types of ECU (Electronic Control Unit). or multiple types of processors.
[0016] According to one aspect of the present disclosure, a first task is assigned to a first type of processor installed in a first vehicle that is not moving, based on the characteristics of the first task, and executed. This reduces the likelihood of a task being assigned to a moving vehicle while in motion and the occurrence of a mismatch between the characteristics of the first task and the characteristics of the processor to which the first task is assigned, thereby improving processing efficiency. Note that improved processing efficiency may include, for example, increased reliability of task execution in the assigned mobile vehicle, a shorter time required to start task execution, and a shorter time required to process the task.
[0017] In one aspect of the present disclosure, when a first moving body starts moving while the first task is being executed, the first moving body may suspend the execution of the first task and transmit a notification of the suspension of the execution of the first task to the information processing device. In this case, when the control unit of the information processing device receives the notification of the suspension of the execution of the first task from the first moving body, the control unit may re-determine the moving body to which the first task is assigned. In this way, the first moving body to which the task is assigned can resume the first movement. The movement of the moving object is given priority, while the interrupted first task is assigned to another moving object according to its characteristics, thereby preventing a decrease in processing efficiency.
[0018] In one aspect of the present disclosure, the multiple types of processors may include a CPU and a GPU. In this case, the control unit may assign the first task to a CPU as the first type of processor when the first task includes a predetermined number of branch operations or more, and may assign the first task to a GPU as the first type of processor when the first task includes a predetermined number of repetitive operations or more. This allows the first task to be assigned to either the CPU or the GPU, whichever is better at branch operations or repetitive operations, depending on whether the first task includes a large number of branch operations or a large number of repetitive operations, thereby improving processing efficiency.
[0019] In another aspect, the present disclosure can be specified as a method for causing a computer to execute the processing executed by the information processing device, a program for causing a computer to execute the method, and a non-transitory computer-readable recording medium having the program recorded thereon. In addition, in another aspect, the present disclosure can be specified as a system including the plurality of moving objects and the information processing device.
[0020] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. The configurations of the following embodiments are examples, and the present disclosure is not limited to the configurations of the embodiments.
[0021] First Embodiment 1 is a diagram showing an example of the system configuration of a cloud computing system 100 according to the first embodiment. The cloud computing system 100 includes a host computer 1 and a plurality of vehicles 2. The host computer 1 and each vehicle 2 are connected to a network N1 and are capable of communicating with each other via the network N1. The network N1 is, for example, a public wireless network such as the Internet.
[0022] The vehicle 2 is a so-called connected car equipped with a DCM 210 that handles communication functions. The vehicle 2 may be, for example, an engine-driven automobile, a motor-driven electric automobile, or a hybrid automobile that is both engine-driven and motor-driven. In addition to the DCM 210, the vehicle 2 is equipped with a car navigation system, a drive recorder, and multiple ECUs, which are also targets for task allocation by the host computer 1.
[0023] For example, when the host computer 1 receives a request to execute a task from an administrator of the host computer 1 or via the network N1, it assigns the task to one of the multiple vehicles 2. The host computer 1 detects a vehicle 2 that is not moving among the multiple vehicles 2 as the vehicle to which the task should be assigned. A vehicle 2 that is not moving means that the power of the vehicle 2 is ON, but the engine or motor of the vehicle 2 is OFF.
[0024] Whether or not the vehicle 2 is not moving is determined, for example, based on vehicle information acquired from the center server 3, which collects vehicle information from each vehicle 2 at a predetermined interval. The vehicle information includes, for example, the location information of the vehicle 2, a timestamp, and information indicating the vehicle type. The vehicle information may also include, for example, the speed, the operating status of the engine or motor, or information indicating whether the vehicle is moving or stopped.
[0025] The host computer 1 matches the characteristics of the processor installed in the vehicle 2 determined as the task allocation destination with the characteristics of the task, and determines whether to allocate the task to a CPU or a GPU. In the first embodiment, the characteristics of the task are based on the number of branching operations and repetitive operations included in the task. If the task includes a predetermined number or more of branching operations, the host computer 1 determines to allocate the task to a CPU, since branching operations are operations that a CPU excels at. If the task includes a predetermined number or more of repetitive operations, the repetitive operations are operations that a GPU excels at, so the host computer 1 determines to allocate the task to a GPU. An example of a process with many branching operations is a tax calculation process. An example of a process with many repetitive operations is a learning process for a machine learning model, an image recognition process, etc. However, processes with many branching operations and processes with many repetitive operations are not limited to these.
[0026] The host computer 1 transmits a task execution instruction and information indicating whether the task will be executed by the CPU or GPU to the vehicle 2 that has been determined as the task allocation destination. Upon receiving the task execution instruction, the vehicle 2 begins executing the task on a computer having the specified processor. Examples of computers installed in the vehicle 2 include the DCM 210 and various ECUs. If the vehicle 2 starts moving while the task is being executed, the vehicle 2 suspends the execution of the task and notifies the host computer 1. Upon receiving the notification that the task execution has been suspended, the host computer 1 reallocates the task to another vehicle 2 and again transmits an instruction to execute the task to the newly selected vehicle 2.
[0027] In the first embodiment, the vehicle 2 to which the task is assigned and the CPU or GPU to which the task is assigned are determined based on the moving state of the vehicle 2 and the nature of the task. As a result, a task is not assigned to a vehicle 2 that is moving, so it is possible to prevent an event such as a task not being executed due to movement when the vehicle 2 is designed to prioritize processing related to movement. In addition, the nature of the task and the characteristics of the CPU and GPU are determined. Since the system matches the characteristics of the tasks, it is possible to prevent the time required for processing from becoming too long by assigning tasks that include a lot of branching processing to the GPU and tasks that include a lot of repetitive processing to the CPU.
[0028] 2 is a diagram showing an example of the hardware configuration of the host computer 1 and the vehicle 2. The host computer 1 is, for example, a dedicated computer or a general-purpose computer. The host computer 1 includes, as its hardware configuration, a processor 101, a memory 102, an auxiliary storage device 103, a communication unit 104, an input device 105, and an output device 106. These hardware components are electrically connected to one another via a bus.
[0029] The memory 102 and the auxiliary storage device 103 are computer-readable recording media. The auxiliary storage device 103 may be, for example, an EPROM (Erasable Programmable ROM), The auxiliary storage device 103 may be a hard disk drive (Hard Disk Drive) or a solid state drive (SSD). Programs stored in the auxiliary storage device 103 include, for example, an operating system (OS) and a task allocation control program. The memory 102 includes, for example, semiconductor memory such as a read only memory (ROM) and a random access memory (RAM).
[0030] The processor 101 is, for example, a CPU, a GPU, or a DSP (Digital Signal Processor). The number of processors 101 is not limited to one, and a plurality of processors 101 may be provided. The processor 101 is an example of a "control unit."
[0031] The input device 105 is an input device for inputting user operations, such as a keyboard, a mouse, a touch panel, and an audio input device (microphone), etc. The output device 106 is an output device, such as a display and an audio output device (speaker), etc.
[0032] Next, the vehicle 2 includes, as its hardware configuration, a DCM 210, an ECU 220, and a location information acquisition unit 230. Note that, in Fig. 2, the hardware components related to the processing of the first embodiment are extracted and shown, and the hardware configuration of the vehicle 2 is not limited to the configuration shown in Fig. 2.
[0033] The DCM 210 includes, as its hardware configuration, a processor 201, a memory 202, an auxiliary storage device 203, a wireless communication unit 204, and an interface 206. The memory 202 and the auxiliary storage device 203 are computer-readable recording media. The auxiliary storage device 203 is, for example, an EPROM, a hard disk drive, or an SSD. Programs stored in the auxiliary storage device 203 include, for example, an operating system (OS) and a task execution program for the cloud computing system 100. The memory 102 includes, for example, semiconductor memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
[0034] The processor 201 is, for example, a CPU, a GPU, or a DSP (Digital Signal Processor). The number of processors 201 is not limited to one, and a plurality of processors 201 may be provided. The processor 101 is an example of a "control unit."
[0035] The wireless communication unit 204 is a wireless communication circuit that supports a cellular communication system such as 5G, 4G, or 6G. The interface 206 is an interface that connects to an in-vehicle network to which other devices are connected. The in-vehicle network is, for example, an in-vehicle Ethernet and / or a CAN (Controller Area Network). The hardware configuration of the system 10 is not limited to that shown in FIG.
[0036] A plurality of ECUs 220 may be provided in the vehicle 2. The ECUs 220 include, for example, powertrain, chassis, body, multimedia, and ADAS (Advanced Driver Assistance Systems) ECUs. Each ECU 220 includes a CPU and / or a GPU depending on its role. Multimedia ECUs include, for example, a car navigation ECU.
[0037] The position information acquisition unit 230 is, for example, a GPS receiver. The position information acquisition unit 230 acquires the current position of the vehicle 2 and outputs it to the DCM 210 at a predetermined cycle. The position information acquisition unit 230 may be a standalone device or may be one of the ECUs 220. Note that the position information acquisition unit 230 is not limited to a GPS receiver, and may be any device that can acquire the position information of the vehicle 2.
[0038] 3 is a diagram showing an example of the functional configuration of the host computer 1 and the vehicle 2. The host computer 1 includes, as its functional configuration, a control unit 11, a vehicle information acquisition unit 12, and a vehicle model information DB 13. The control unit 11 is a functional component that is achieved, for example, by the processor 101 of the host computer 1 executing a task allocation control program.
[0039] When an instruction to execute a task is input, for example, from a terminal of a user of the cloud computing system 100 via the network N1, the control unit 11 determines a vehicle 2 to which the task should be assigned and transmits an instruction to execute the task to the determined vehicle 2. The control unit 11 acquires vehicle information of multiple vehicles 2 registered in the cloud computing system 100 from the vehicle information acquisition unit 12 (described later), and selects a vehicle 2 to be assigned to as a candidate for the task based on the acquired vehicle information. The vehicle information of the vehicle 2 includes, for example, location information, a timestamp, information indicating the vehicle model, and speed. The control unit 11 selects a candidate vehicle 2, for example, randomly from among predetermined vehicle models with high performance or from among vehicles 2 located within a predetermined geographical range, based on the vehicle information of the vehicle 2.
[0040] If a candidate vehicle 2 is not moving and has either a CPU or a GPU suitable for executing the task, the control unit 11 transmits to the vehicle 2 an instruction to execute the task and information indicating whether the task will be executed on the CPU or the GPU. Whether the vehicle 2 is moving is determined, for example, from the history of location information included in the vehicle information of the vehicle 2, or based on whether the speed included in the vehicle information of the vehicle 2 is zero. Alternatively, for example, it may be determined based on whether the location information or speed included in multiple pieces of vehicle information that are most recent and consecutive in time of the vehicle 2 has changed. However, the method for determining whether the vehicle 2 is moving is not limited to these. The control unit 11 determines whether the candidate vehicle 2 has a CPU or a GPU by referring to the vehicle model information DB 13, which will be described later.
[0041] Whether a task is suitable for execution by a CPU or a GPU is determined, for example, based on a preset setting for the task type, based on information associated with the task indicating suitability for a CPU or a GPU, or by the control unit 11 analyzing the task. For example, in the first embodiment, a task including a predetermined number or more of branching operations is classified as a task suitable for a CPU. A task including a predetermined number or more of repetitive operations is classified as a task suitable for a GPU. Note that the threshold value for the number of branching operations and the threshold value for the number of repetitive operations used to classify a task as suitable for a CPU or a GPU may be the same value or different values. An example of a task type suitable for a CPU is a tax calculation process. An example of a task type suitable for a GPU is a learning process for a machine learning model. The information associated with a task indicating suitability for a CPU or a GPU may be, for example, a flag or code.
[0042] The control unit 11 also receives the task execution result from the vehicle 2. If the task execution result indicates "interrupted," the control unit 11 reallocates the task to another vehicle 2 and transmits to the newly determined vehicle 2 as the destination an instruction to execute the task and information indicating whether the task will be executed by the CPU or GPU. If the control unit 11 receives the task execution result up to the point of interruption together with the task execution result, the control unit 11 may also transmit the task execution result up to the point of interruption to the newly determined vehicle 2 as the destination, and instruct the vehicle 2 to continue executing the task from where it was interrupted.
[0043] The vehicle information acquisition unit 12 acquires vehicle information of the vehicle 2 registered in the cloud computing system 100 from the center server 3, for example, at a predetermined period and / or in accordance with instructions from the control unit 11, and stores the vehicle information in a predetermined area of the auxiliary storage device 103. Based on a request from the control unit 11, the vehicle information acquisition unit 12 reads the vehicle information from the auxiliary storage device 103 and outputs it to the control unit 11.
[0044] The vehicle model information DB 13 is created in a predetermined storage area of the auxiliary storage device 103. The vehicle model information DB 13 stores vehicle model information. The vehicle model information includes, for example, information about the on-board computer, including the DCM 210 and various ECUs 220 installed for each vehicle model. The information about the on-board computer includes, for example, identification information of the on-board device and information about the CPU and / or GPU installed. The information about the CPU and / or GPU includes, for example, information about the name, model number, and performance of the CPU or GPU. By referencing the vehicle model information DB 13, the control unit 11 can obtain vehicle model information corresponding to information indicating the vehicle model included in the vehicle information of the candidate vehicle 2 and determine whether the vehicle 2 includes an on-board device equipped with a CPU or GPU suitable for executing the task. The control unit 11 may also transmit, along with an instruction to execute a task, information specifying the on-board computer equipped with the CPU or GPU that will execute the task.
[0045] Next, the vehicle 2 has, as its functional configuration, a task execution control unit 21 and a vehicle information transmission unit 22. The task execution control unit 21 and the vehicle information transmission unit 22 are functional components that are achieved by the processor 201 of the DCM 210 executing a predetermined program. The vehicle information transmission unit 22 generates vehicle information at a predetermined cycle and transmits it to the center server 3. The vehicle information includes, for example, the position information of the vehicle 2 acquired from the position information acquisition unit 230, a timestamp, information indicating the vehicle model, and speed.
[0046] When the task execution control unit 21 receives from the host computer 1 a task execution instruction and information indicating whether the task should be executed by a CPU or a GPU, it causes one of the on-board computers, including the DCM 210 or the ECU 220, which are equipped with at least one of a CPU or a GPU, to execute the task. When the task execution instruction is received along with information specifying the on-board computer that should execute the task, the task execution control unit 21 causes the specified device to execute the task. When the task execution is completed, the task execution control unit 21 transmits the task execution result and information indicating the completion to the host computer 1.
[0047] When the task execution control unit 21 detects that the vehicle 2 has started traveling while the task is being executed, it suspends the execution of the task. In this case, the task execution control unit 21 transmits to the host computer 1 the execution result of the task up to the point of suspension and information indicating the suspension. Note that the information indicating the completion or suspension of the task may be, for example, a flag, a code, or a keyword. Note that the functional configurations of the host computer 1 and the vehicle 2 shown in FIG. 3 are merely an example, and the functional configurations of the host computer 1 and the vehicle 2 are not limited to the example shown in FIG. 3.
[0048] Fig. 4 is an example of a flowchart of a task allocation process of the host computer 1. The process shown in Fig. 4 is executed repeatedly at a predetermined cycle, for example. The process shown in Fig. 4 is executed by the processor 101, but for convenience, the process will be described mainly with respect to the functional components.
[0049] In OP101, the control unit 11 determines whether a task has been input from a user terminal of the cloud computing system 100, for example, via the network N1. If a task has been input (OP101: YES), the process proceeds to OP102. If a task has not been input (OP101: NO), the process shown in FIG. 4 ends.
[0050] In OP102, the control unit 11 determines whether the input task is suitable for a CPU or a GPU. For example, if the input task is a type of task for which suitability for a CPU or a GPU has been set in advance, the control unit 11 may determine whether the input task is suitable for a CPU or a GPU based on the type of the input task. For example, if the input task is accompanied by information indicating that it is suitable for a CPU or a GPU, the control unit 11 may determine whether the input task is suitable for a CPU or a GPU based on the accompanied information. For example, the control unit 11 may analyze the input task and determine whether the input task is suitable for a CPU or a GPU.
[0051] In OP103, the control unit 11 searches for a candidate vehicle 2 to which the input task is to be assigned from among the vehicles 2 registered in the cloud computing system 100. For example, the control unit 11 obtains the latest vehicle information and searches for a candidate vehicle 2 from among the vehicles 2 for which vehicle information exists. The existence of vehicle information indicates that the power of the vehicle 2 is turned on. For example, the control unit 11 may randomly select a candidate vehicle 2 from among the vehicles 2 for which vehicle information exists, or may select from among vehicles 2 with high CPU or GPU performance, or may select from among vehicles 2 located in a predetermined area. The predetermined area may be, for example, an area geographically close to the host computer 1, an area close to the location of the user terminal that input the task, or an area with good communication conditions. However, the area from which the vehicle 2 to be assigned the task is selected is not limited to these.
[0052] In OP104, the control unit 11 determines whether the candidate vehicle 2 is traveling. The control unit 11 determines whether the candidate vehicle 2 is traveling, for example, by referring to the vehicle information of the candidate vehicle 2. For example, the control unit 11 may determine whether the candidate vehicle 2 is traveling based on the speed included in the vehicle information of the candidate vehicle 2. For example, the control unit 11 may determine whether the candidate vehicle 2 is traveling based on the vehicle information of the candidate vehicle 2 for a recent predetermined period, and based on whether there has been a change in the position information.
[0053] If the candidate vehicle 2 is in motion (OP104: YES), the control unit 11 determines not to assign a task to the candidate vehicle 2, and the process proceeds to OP103. After that, the control unit 11 selects a candidate vehicle 2 again.
[0054] If the candidate vehicle 2 is not in motion (OP104: NO), the process proceeds to OP105. In OP105, the control unit 11 determines whether the candidate vehicle 2 is equipped with a CPU or GPU suitable for the input task. The control unit 11 makes this determination by, for example, acquiring the vehicle model of the candidate vehicle 2 from the vehicle information and acquiring vehicle model information corresponding to the vehicle model of the candidate vehicle 2 from the vehicle model information DB 13. If the candidate vehicle 2 is equipped with a CPU or GPU suitable for the input task (OP105: YES), the control unit 11 determines that the candidate vehicle 2 is not suitable for the input task, and the process proceeds to OP106. If the candidate vehicle 2 does not have a CPU or GPU suitable for the input task (OP105: NO), the control unit 11 determines that the candidate vehicle 2 is not suitable for the input task, and the process proceeds to OP107. Proceed to P103 and reselect candidate vehicle 2.
[0055] In OP106, the control unit 11 transmits an instruction to execute the task and information indicating whether the task is to be executed by the CPU or the GPU to the vehicle 2 that has been determined as the task allocation destination. If there is information necessary for executing the task, it may be transmitted to the vehicle 2 together with the instruction to execute the task.
[0056] In OP107, the control unit 11 determines whether or not the execution result of the task has been received from the vehicle 2. If the execution result of the task has been received (YES in OP107), the process proceeds to OP108. If the execution result of the task has not been received (NO in OP107), the control unit 11 waits until the execution result of the task is received. For example, if the execution result of the task is not received even after a predetermined time has elapsed since the control unit 11 transmitted the task execution instruction to the vehicle 2, the process proceeds to OP103, and the control unit 11 may reselect a candidate vehicle 2.
[0057] In OP108, the control unit 11 determines whether the information received together with the execution result of the received task indicates completion of the task or indicates interruption of the task. If the information received together with the execution result of the received task indicates completion of the task (YES in OP108), the process proceeds to OP109. In OP109, the control unit 11 notifies the user terminal that input the task of the execution result of the task. Thereafter, the process shown in FIG. 4 ends. If the information received together with the execution result of the received task indicates interruption of the task (NO in OP108), the process proceeds to OP103, and the control unit 11 reselects a candidate vehicle 2.
[0058] If the input task includes multiple subtasks, in OP102, the control unit 11 may determine whether each subtask is suitable for processing by a CPU or a GPU. The control unit 11 may assign each of the multiple subtasks to a different vehicle 2, or may assign each of the multiple subtasks to a single vehicle 2. When assigning each of the multiple subtasks to a different vehicle 2, the processing from OP103 onwards is executed for each subtask. When assigning each of the subtasks to a single vehicle 2, a vehicle 2 equipped with a CPU or GPU suitable for each subtask is selected as the task destination.
[0059] Furthermore, in OP 102, control unit 11 may record the determination result as to whether execution of the input task is suitable for the CPU or the GPU. If the same task is input again thereafter, OP 102 may make a determination by referring to the record of the previous determination result. Note that the task allocation process of host computer 1 is not limited to the process shown in FIG. 4 and can be modified as appropriate depending on the embodiment.
[0060] Fig. 5 is an example of a flowchart of task execution processing of the vehicle 2. The processing shown in Fig. 5 is executed repeatedly, for example, while the vehicle 2 is in operation. The processing shown in Fig. 5 is executed mainly by the processor 201 of the DCM 210, but for convenience, the processing will be described mainly with respect to the functional components.
[0061] In OP201, the task execution control unit 21 determines whether or not a task execution instruction has been received from the host computer 1. If a task execution instruction has been received from the host computer 1 (OP201: YES), the process proceeds to OP202. If a task execution instruction has not been received from the host computer 1 (OP201: NO), the process shown in FIG. 5 ends.
[0062] In the OP202, the task execution control unit 21 starts the execution of the task in either the ECU 220 having a CPU or a GPU or the on-board computer including the DCM 210, according to information indicating whether the task is to be executed by the CPU or the GPU, which information is received together with the task execution instruction. The on-board computer to execute the task may be determined based on, for example, the usage rate and performance of the CPU or GPU. When information indicating the designation of the on-board computer to execute the task is received together with the instruction to execute the task, the task execution control unit 21 causes the on-board computer designated by the information to execute the task.
[0063] In OP203, the task execution control unit 21 determines whether the vehicle 2 has started to move. The start of movement of the vehicle 2 may be detected, for example, by the engine or motor being driven, the speed becoming equal to or greater than 0, the accelerator pedal being depressed, or acceleration being measured by an acceleration sensor. If the vehicle 2 has started to move (OP203: YES), the process proceeds to OP206. In OP206, the task execution control unit 21 suspends the task. In P207, the task execution control unit 21 transmits the task execution result and information indicating the suspension of the task to the host computer 1. Thereafter, the process shown in FIG. 5 ends. Note that, when the task is suspended, the on-board computer that has been executing the task releases the resources used for executing the task.
[0064] If the vehicle 2 has not started moving (OP203: NO), the process proceeds to OP204. In OP204, the task execution control unit 21 determines whether or not the execution of the task has ended. If the execution of the task has ended (OP204: YES), the process proceeds to OP205. In OP205, the task execution control unit 21 transmits the execution result of the task and information indicating the completion of the task to the host computer 1. Thereafter, the process shown in FIG. 5 ends.
[0065] If the execution of the task has not ended (OP205: NO), the process proceeds to OP203, where the task execution control unit 21 repeatedly determines whether the vehicle 2 has started traveling. Note that the task execution process of the vehicle 2 shown in Fig. 5 is an example, and the task execution process can be modified as appropriate depending on the embodiment.
[0066] <Effects of the First Embodiment> In the first embodiment, a task is assigned to a CPU or GPU of a vehicle 2 that is not moving, depending on the nature of the task. This allows the CPU or GPU installed in the on-board computer of the vehicle 2 to execute a task suited to its characteristics while giving priority to the movement of the vehicle 2, thereby improving the reliability of task execution, preventing the time required for task execution itself from becoming longer, and improving processing efficiency.
[0067] Furthermore, in the first embodiment, if a vehicle 2 assigned a task starts moving while the task is being executed, the vehicle 2 suspends the task. This allows the vehicle 2's main function, which is driving, to take priority. When a task is suspended, the host computer 1 again determines another vehicle 2 to which the task will be assigned, and has the new vehicle 2 execute the task. The new vehicle 2 is also not currently moving, and has an on-board computer equipped with a CPU or GPU appropriate for the nature of the task. This improves the reliability of task execution and improves the processing efficiency of the entire system.
[0068] <Other embodiments> The above-described embodiment is merely an example, and the present disclosure can be modified and implemented as appropriate within the scope that does not deviate from the gist of the disclosure.
[0069] In the first embodiment, two types of processors, CPU and GPU, are assumed to be installed in the vehicle 2 to which tasks are assigned. However, the types of processors to which tasks are assigned are not limited to CPU and GPU. For example, DSP, PPU (Physics Processing Unit), NPU (Neural network Processing Unit), etc. may be adopted as the types of processors to which tasks are assigned, and tasks that each are good at may be assigned to each of them. You can do this.
[0070] In the first embodiment, a processor mounted on the vehicle 2 is assumed to be the target to which a task is assigned, but a moving body having a processor to which a task is assigned may be, for example, a railroad car, a ship, an airplane, a drone, a motorcycle, etc. In these moving bodies, as in the first embodiment, a task can be assigned to a processor that prioritizes movement and that is appropriate for the nature of the task.
[0071] The processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.
[0072] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by a single device. In a computer system, the hardware configuration (server configuration) by which each function is realized can be flexibly changed.
[0073] The present disclosure can also be realized by providing a computer program implementing the functions described in the above embodiments to a computer, and having one or more processors in the computer read and execute the program. Such a computer program may be provided to the computer via a non-transitory computer-readable storage medium connectable to the computer's system bus or via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (e.g., a floppy disk, a hard disk drive (HDD), etc.), an optical disk (e.g., a CD-ROM, a DVD disk, a Blu-ray disk), a read-only memory (ROM), a random-access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, or any type of medium suitable for storing electronic instructions. [Explanation of symbols]
[0074] 1. Host computer 2. Vehicle 3. Center server 11 Control unit 12. Vehicle information acquisition unit 13. Vehicle information database 21 Task execution control unit 22 Vehicle information transmission unit 100··Cloud Computing System 101, 201 processors 102, 202... Memory 103, 203... Auxiliary storage device 104··Communications Department 105 Input Device 106··Output device 204 Wireless Communication Department 210··DCM 220··ECU 230...Location information acquisition unit
Claims
1. determining, based on a property of the first task and a moving state of the plurality of moving bodies, a distribution of the first task to a processor of a first type that is mounted on a first moving body that is not moving among the plurality of moving bodies, the first type being in accordance with the property of the first task among a plurality of types; instructing the first mobile object to execute the first task with the first type processor; a control unit that executes An information processing device comprising:
2. when the first moving body starts moving during the execution of the first task, the first moving body suspends the execution of the first task and transmits a notification of suspension of the execution of the first task to the information processing device; the control unit, when receiving a notification of suspension of execution of the first task from the first moving object, re-determines a moving object to which the first task is to be assigned. The information processing device according to claim 1 .
3. the plurality of types of processors include a CPU (Control Processing Unit) and a GPU (Graphics Processing Unit); The control unit assigning the first task to a CPU as the first type processor when the first task includes a predetermined number or more of branch processes; assigning the first task to a GPU as the first type processor when the first task includes a predetermined number of repeated processes or more; The information processing device according to claim 1 .
4. The computer determining, based on a property of the first task and a moving state of the plurality of moving bodies, a distribution of the first task to a processor of a first type that is mounted on a first moving body that is not moving among the plurality of moving bodies, the first type being in accordance with the property of the first task among a plurality of types; instructing the first mobile object to execute the first task with the first type processor; How to do it.
5. A plurality of moving bodies; determining, based on a property of the first task and a moving state of the plurality of moving bodies, a distribution of the first task to a processor of a first type that is mounted on a first moving body that is not moving among the plurality of moving bodies, the first type being in accordance with the property of the first task among a plurality of types; instructing the first mobile object to execute the first task with the first type processor; a control unit that executes an information processing device comprising: A system comprising:
Citation Information
Patent Citations
Task execution method and task execution system
JP2017129921A