Grid computing systems, management methods, and management systems
The pipeline processing method in grid computing systems optimizes job assignment and computation stages to address low communication performance and limited operating hours, enhancing efficiency by minimizing data transfer time in mobile grid systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-08-20
- Publication Date
- 2026-04-07
AI Technical Summary
Grid computing systems utilizing mobile resources face challenges due to low communication performance and limited operating hours, leading to data transfer time becoming a system bottleneck.
A pipeline processing method is implemented where jobs are divided into units, with data transfer and computation processing occurring in distinct stages, optimizing job assignment based on communication bandwidth and resource availability to minimize transfer time impact.
This approach reduces the impact of data transfer time on job completion, enabling highly efficient computing in mobile grid systems by matching jobs with suitable mobile units.
Smart Images

Figure 0007841228000001 
Figure 0007841228000002 
Figure 0007841228000003
Abstract
Description
Technical Field
[0001] The technology disclosed herein belongs to the technical field of grid computing systems, as well as management methods and management systems for grid computing.
Background Art
[0002] Patent Document 1 discloses a technology in a distributed processing system composed of in-vehicle terminals functioning as computing nodes, where each vehicle transmits its own terminal's resource information to a base station, registers its own vehicle as a computing node, and the base station assigns jobs based on this.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] By the way, in a grid computing system (hereinafter also referred to as a "mobile grid system") that utilizes computing resources mounted on a mobile body (e.g., a vehicle), compared with a general grid computing system (hereinafter referred to as a "conventional system") that utilizes a data center, there is a problem that the communication performance between computers constituting the grid is low. Specifically, in the conventional system, it is dedicated hardwire communication and the physical distance between each other is also short. In contrast, in the mobile grid system, vehicles are not connected by dedicated communication lines, and the physical distance between each other is far.
[0005] Furthermore, conventional systems generally operate 24 hours a day, making it easier to perform background processing such as data downloads and uploads when the computational load is low. In contrast, grid computing systems have limited operating hours for grid computing due to the need to balance it with their original intended use (driving in the case of a vehicle).
[0006] The technology disclosed herein was developed in view of these points, and its purpose is to enable highly efficient computing in grid computing systems by avoiding data transfer time becoming a system bottleneck. [Means for solving the problem]
[0007] To solve the aforementioned problems, the first aspect of this disclosure provides a grid computing system that utilizes computing resources mounted on each of several mobile bodies, and configures a pipeline in which a job requested from a client terminal is divided into several units, and data is transferred from the grid computing master device to each of the mobile bodies for each unit in a first transfer process, computing processing is performed on each of the units in the mobile body, and the job results after the computing processing are transferred from the mobile body to the master device in a second transfer process, each of which is a different stage.
[0008] According to the first embodiment described above, parallel processing can be performed during the first transfer processing period in which data is transferred from the master device to the mobile device, and during the second transfer processing period in which data is transferred from the mobile device to the master device. This reduces the impact of transfer processing time on the time required to complete a series of jobs.
[0009] Furthermore, a second aspect of this disclosure relates to a management method for managing grid computing that utilizes computing resources installed on each of a plurality of mobile bodies, and includes a job analysis step for estimating the job data capacity of a unit, the resources required for the calculations of the unit, and the job result capacity after the calculations of the unit when the job to be processed is divided into a plurality of units; a mobile body information acquisition step for each of the mobile bodies, which acquires communication bandwidth information between the mobile body and the master device of the grid computing and computing resource information of the mobile body; and the job transfer time based on the job data capacity and the communication bandwidth information, and the required resources and The system includes a matching step that estimates the calculation time based on computation resource information and the result transfer time based on the job result capacity and the communication bandwidth information, and matches a mobile body with a job so that the time difference between the estimated job transfer time, the calculation time and the result transfer time falls within a predetermined time, and a pipeline processing step that processes each of the following in a pipeline, with different stages: a first transfer process that transfers job data for each unit of the matched job from the master device to the mobile body selected in the matching step, computation processing for each unit in the mobile body, and a second transfer process that transfers the computation result data after the computation processing from the mobile body to the master device.
[0010] According to the second embodiment described above, similar to the first embodiment, the impact of transfer processing time on the time to complete a series of jobs can be reduced by executing a pipeline processing step. Furthermore, prior to the pipeline processing step, jobs and mobile units are matched so that the time differences between the job transfer time, calculation time, and result transfer time related to each stage of the pipeline processing fall within a predetermined time. This makes it possible to assign the optimal mobile unit to each job when executing pipeline processing.
[0011] More specifically, mobile grid systems have the problem of significant variation in the computing resources installed on each mobile unit. Furthermore, because the communication environment is not consistent for each mobile unit, there is also variation in communication bandwidth. Therefore, by adopting a configuration like the second embodiment, it is possible to assign a mobile unit suitable for executing the pipeline processing of each job, thereby promoting overall processing efficiency. [Effects of the Invention]
[0012] As explained above, the technology disclosed herein makes it possible to avoid data transfer time becoming a system bottleneck in a mobile grid system, and as a result, highly efficient computing becomes possible. [Brief explanation of the drawing]
[0013] [Figure 1] A schematic diagram illustrating the system configuration of the embodiment. [Figure 2] Conceptual diagram to explain grid computing [Figure 3] Block diagram illustrating the vehicle configuration [Figure 4] Block diagram illustrating the client-server configuration. [Figure 5] Block diagram illustrating the configuration of the management server. [Figure 6] Block diagram showing example configurations and connection examples for the vehicle and management server's functional modules. [Figure 7] A flowchart illustrating an example of how a grid computing system works. [Figure 8] A flowchart illustrating an example of the process for determining which vehicles are eligible for pipeline processing. [Figure 9] Diagram to explain pipeline processing [Figure 10] A diagram illustrating an example of abnormal handling in pipeline processing. [Figure 11] A diagram illustrating another example of abnormal handling in pipeline processing. [Figure 12]Figure showing another example of exception handling in pipeline processing
Mode for Carrying Out the Invention
[0014] The embodiments will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are denoted by the same reference numerals, and repeated descriptions may be omitted. Also, in the following embodiments, the description will focus on the configurations highly relevant to the content of the present disclosure. Note that the following embodiments are exemplary and are not intended to limit the content of the present disclosure by the presence or absence of description, the exemplified numerical values, etc.
[0015] <First Embodiment> (Grid Computing System) FIG. 1 illustrates the configuration of a grid computing system 1 (hereinafter also simply referred to as "system 1") according to an embodiment.
[0016] This system 1 includes a plurality of vehicles 10, a plurality of client terminals 30, and a management server 50. These components can communicate with each other via a communication network 6. An arithmetic device 102 is mounted on each of the plurality of vehicles 10. The management server 50 is an example of a master device. A vehicle is an example of a moving body.
[0017] 〔Grid Computing〕 As shown in FIG. 2, in the system 1 of the embodiment, grid computing (hereinafter also simply referred to as "grid G") is configured by a plurality of arithmetic devices 102, and grid computing processing for causing an available arithmetic device 102 among the plurality of arithmetic devices 102 to process job data D1 of an application job (hereinafter also simply referred to as "job") is performed.
[0018] When vehicle 10 is in motion, the computing power of the arithmetic unit 102 is required for controlling the vehicle's movement, and the arithmetic unit 102 becomes operational. On the other hand, for example, when vehicle 10 is stopped and its power is turned off, the computing power of the arithmetic unit 102 for controlling the vehicle's movement becomes substantially unnecessary. Therefore, the above grid computing process is executed when vehicle 10 is not in operation (for example, when it is stopped).
[0019] 〔vehicle〕 Vehicle 10 is equipped with a battery (not shown). Power from the battery is supplied to on-board equipment such as a computing unit 102. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles.
[0020] As shown in Figure 3, the vehicle 10 includes a communication unit 101, a processing unit (processor) 102, and a storage unit 103.
[0021] - Communications Department - The communication unit 101 transmits and receives information and data. The information and data received by the communication unit 101 are sent to the computing unit 102.
[0022] -Arithmetic device- The computing unit 102 controls various parts of the vehicle 10. In this example, the computing unit 102 controls each actuator (not shown) according to various information obtained from sensors (not shown). In addition to the computing unit used to control the vehicle 10, the computing unit 102 may also be equipped with a computing unit dedicated to grid computing, i.e., a computing unit not involved in the control of the vehicle 10.
[0023] The arithmetic unit 102 includes a processor, memory, and the like. Examples of processors include CPUs (Central Processing Units) and GPUs (Graphics Processing Units). The memory stores programs for operating the processor, as well as information and data indicating the processing results of the processor.
[0024] The right side of Figure 6 shows an example of the configuration of a functional module of the vehicle 10. The functional module in Figure 6 is provided, for example, in the arithmetic unit 102.
[0025] In this example, the arithmetic unit 102 includes a decompression module 111, an arithmetic module 113, a pipeline management module 115, a compression module 118, and buffer memories 112 and 117.
[0026] The decompression module 111 decompresses the compressed data received from the compression module 516 of the management server 50 via the communication channel 61 of the communication network 6. The compressed data includes the job data D1, which will be described later. The job data D1 decompressed by the decompression module 111 is temporarily stored in memory 112 and then input to the arithmetic module 113.
[0027] The arithmetic module 113 performs various calculation processes. The arithmetic module 113 receives the job data D1 decompressed by the decompression module 111 and processes it sequentially. When the job of job data D1 is completed, the arithmetic module 113 outputs the calculation result data D2 to the memory 117. It also sends a completion flag to the pipeline management module 115 to indicate that the job of job data D1 has been completed. Furthermore, if the job of job data D1 terminates abnormally, the arithmetic module 113 sends an abnormality notification to the pipeline management module 115.
[0028] The pipeline management module 115 has the function of managing the pipeline processing of job data D1. The pipeline management module 115 receives a synchronization signal obtained from data received from the management server 50 via the communication channel 61 and operates based on that synchronization signal. The synchronization signal may be (1) transmitted to the communication channel 61 in parallel with the job data D1, or (2) a clock recovery circuit (not shown) may be provided to separate the synchronization signal (clock) from the job data D1 received from the communication channel 61.
[0029] The pipeline management module 115 outputs a data control signal to the memory 117 that specifies the timing for outputting the calculation results stored in the memory 117 to the compression module. The pipeline management module 115 also outputs a synchronization signal. The synchronization signal is output via the communication channel 62 of the communication network 6. The synchronization signal may be superimposed on the calculation result data D2 output from the compression module 118 to the communication channel 62, or it may be output in parallel with the calculation result data D2. Furthermore, if the pipeline management module 115 receives an abnormality notification from the calculation module 113 that is subject to notification to the management server 50, it will output that abnormality notification to the management server 50 via the communication channel 62. The specific operation of the pipeline management module 115 will be explained later.
[0030] Based on the data control signal, the memory 117 sequentially outputs the calculation result data D2 received from the arithmetic module 113 to the compression module 118. For example, if the size of the stored calculation result data D2 is larger than a predetermined packet size, the memory 117 divides the calculation result data D2 into predetermined packet sizes and sequentially outputs the divided packets at timings defined by the data control signal.
[0031] The compression module 118 compresses the calculation result data D2 received from the memory 117 and outputs it to the management server 50 via the communication channel 62.
[0032] In this disclosure, resources usable for calculation and processing in grid computing, such as CPUs and GPUs, are referred to as "computational resources." Computational resources include some or all of the CPUs and GPUs installed in vehicle 10.
[0033] Furthermore, for example, there may be separate time periods during which the use of computing resources is permitted and time periods during which their use is restricted. In other words, a single CPU may be counted as a computing resource during certain time periods and not during other time periods. The same applies to GPUs.
[0034] Furthermore, when a CPU is implemented with one or more cores, some of those cores may be counted as computing resources, while the others are not. The same applies to GPUs.
[0035] -Storage Department- The memory unit 103 stores various types of information and data. The specific configuration of the memory unit 103 is not particularly limited. For example, it may be implemented as memory built into a chip, as an HDD (Hard Disk Drive), as an SSD (Solid State Drive), or as an optical disc such as a DVD or Blu-ray disc.
[0036] In this example, the storage unit 103 stores vehicle information D10. Vehicle information D10 includes basic vehicle information D11, vehicle status information D13, and operation information D15.
[0037] <Basic Vehicle Information> Vehicle basic information D11 includes vehicle identification information, resource information, and performance information for the compression module and decompression module installed in the vehicle.
[0038] Vehicle identification information includes information for identifying the vehicle, such as a VIN, and user identification information that identifies the owner of vehicle 10.
[0039] Resource information refers to information about computing resources (such as CPUs and GPUs). Resource information includes, for example, a computing resource ID assigned to each computing resource, and performance information indicating the performance of each computing resource. The performance of a computing resource includes computing power, which indicates the computing capacity of the computing resource (specifically, the maximum computing capacity), and the ratio of CPUs to GPUs in the computing resource. The computing power of a computing resource is, for example, the amount of data that each computing resource can compute per unit of time.
[0040] Compression module performance information refers to information about the performance of the compression module. Decompression module performance information refers to information about the performance of the decompression module.
[0041] <Vehicle condition information> Vehicle status information D13 is information indicating the status of vehicle 10, and includes, for example, vehicle location information, vehicle communication information, vehicle power information, etc.
[0042] Vehicle location information indicates the position (latitude and longitude) of vehicle 10. For example, vehicle location information can be obtained using GPS (Global Positioning System).
[0043] The vehicle communication information includes information indicating the communication status between the vehicle 10 and the communication network 6, and information on the communication bandwidth between the vehicle 10 and the management server 50. The vehicle communication information is updated, for example, at predetermined intervals.
[0044] Vehicle power information includes information indicating the power status of vehicle 10, vehicle battery charge level information, and vehicle charging information. For example, vehicle power information indicates whether the ignition power is on or off, and whether the accessory power is on or off. Vehicle battery charge level information indicates the remaining charge of the battery (not shown) installed in vehicle 10. Vehicle charging information indicates whether vehicle 10 is being charged at charging equipment (not shown).
[0045] <Operation Information> The operational information D15 includes, for example, vehicle travel information showing the travel history of vehicle 10, operational history information showing the operational history of the computing device 102, and operational schedule information showing the operational schedule of the computing device 102.
[0046] Vehicle driving information is shown, for example, by associating the location and time of vehicle 10. In addition to driving history information, driving schedule information showing the future driving schedule of vehicle 10 may also be included.
[0047] The operation history information shows, for example, the utilization rate of the computing resources of the computing unit 102 and / or the amount of jobs processed, in association with the time. The operation history information includes normal operation history and grid operation history. Normal operation history is information that shows the history of when the computing unit 102 was operated for user use, such as when a vehicle was driven, or when a car navigation system or music playback service was provided. Grid operation history is information that shows the history of when the computing unit 102 was operated to execute grid computing processing.
[0048] The operational schedule information includes, for example, information indicating the future usage status of the computing unit 102.
[0049] [Client terminal] Client terminal 30 is owned by the client. The client requests the calculation of job data. Examples of such clients include companies, research institutions, and educational institutions.
[0050] As shown in Figure 4, the client terminal 30 comprises a communication unit 301, a storage unit 303, and a control unit 302.
[0051] - Communications Department - The communication unit 301 is connected to the management server in a way that enables bidirectional communication, allowing for the transmission and reception of information and data between them. The information and data received by the communication unit 301 are sent to the control unit 302.
[0052] -Control Unit- The control unit 302 controls various parts of the client terminal 30. The control unit 302 includes a processor, memory, etc. The memory stores programs for operating the processor, information and data indicating the processing results of the processor, etc.
[0053] -Storage Department- The storage unit 303 stores information and data. In this example, the storage unit 303 stores client information D31 and job data D1.
[0054] <Client Information> Client information D31 is information about the client. Client information D31 includes the client ID set for the client, the client terminal ID set for the client terminal 30 owned by the client, the name of the person in charge, address, telephone number, etc.
[0055] <Job Data> Job data D1 is data corresponding to a job, and it is data that is processed in order to execute the job.
[0056] Job data D1 can be classified by computation type. Examples of computation types include CPU-based computation types and GPU-based computation types. CPU-based job data D1 tends to require complex calculations with many conditional branches, such as simulation calculations. GPU-based job data D1 tends to require a large amount of simple calculations, such as image processing and machine learning.
[0057] The pipeline processing described herein can be applied regardless of the type of computation, but it may be particularly suitable for GPU-based computation types. This is because GPU-based computation types (processes suitable for GPUs) tend to be easier to parallelize.
[0058] In addition, job information related to the job may be stored in conjunction with the job data D1. Job information may include, for example, the job name, job content, job data calculation type, processing conditions, required computing power, and job due date information.
[0059] [Management Server] The management server 50 manages the operation of the grid computing. In other words, System 1 includes the management server 50. The management server 50 is owned by the operator of System 1.
[0060] As shown in Figure 5, the management server 50 comprises a communication unit 501, a control unit 502, and a storage unit 503.
[0061] - Communications Department - The communication unit 501 is connected to the vehicle 10 and the client terminal 30 to enable bidirectional communication, and transmits and receives information and data between them. The information and data received by the communication unit 501 are sent to the control unit 502.
[0062] -Control Unit- In this example, the control unit 502 has the function of executing a series of controls and processes related to the operation and management of grid computing. For example, it executes the controls and processes in the flowcharts shown in Figures 7 and 8, which will be described later. In the following description, operations that are described primarily from the perspective of the management server 50 may be realized through the control unit 502's contribution to those processes and controls.
[0063] The left side of Figure 6 shows an example of the configuration of the functional modules of the management server 50. The functional modules in Figure 6 are provided, for example, in the control unit 502.
[0064] In this example, the control unit 502 includes an application analysis module 511, a pipeline configuration module 512, a computing node management module 513, a computing management module 514, a compression module 516, a pipeline management module 517, a decompression module 518, and a buffer memory 515.
[0065] The application analysis module 511 performs a job analysis process to analyze which jobs to assign to the vehicle 10.
[0066] Specifically, the application analysis module 511 performs the following processes for each job data D1 received from the client terminal 30: (1) analyzing whether it can be divided into multiple job units of similar size (hereinafter simply referred to as "units"), (2) calculating the total job data capacity and the capacity of each unit, (3) calculating the resources required to execute the job (hereinafter referred to as "required resources") for the total job data D1 and each unit, and (4) predicting the capacity of the calculation result data D2 after the calculation processing of the application job for the total job data D1 and each unit. Dividing into multiple units means, for example, that the job can be divided into smaller parts, and by combining these divided jobs, multiple units (each of similar size) can be constructed. Note that the sizes of the multiple units do not necessarily have to be the same, but if the unit sizes are the same, the effectiveness of pipeline processing can be further enhanced.
[0067] The computing node management module 513 performs a mobile information acquisition process to acquire communication bandwidth information and resource information for each vehicle 10.
[0068] Specifically, the computing node management module 513 performs the following processes for each vehicle constituting grid G: (1) acquiring vehicle basic information D11 including computing resource information, and (2) acquiring communication bandwidth information with the management server 50. The method for acquiring communication bandwidth information is not particularly limited. For example, the management server may measure the communication bandwidth with each vehicle at predetermined intervals, or it may acquire communication bandwidth information by obtaining vehicle communication information of vehicle status information D13 from each vehicle.
[0069] The pipeline configuration module 512 performs a matching process to match the job data D1 to be processed with the vehicle 10 that will execute it.
[0070] Specifically, the pipeline configuration module 512 first obtains the job data capacity for each unit and the predicted capacity of the calculation result data for each unit, which are calculated by the application analysis module 511. The pipeline configuration module 512 also obtains the calculation resource information and communication bandwidth information for each vehicle, which are obtained by the calculation node management module 513.
[0071] Next, the pipeline configuration module 512 performs the following processes for the job data D1 to be processed and the selected vehicle 10: (1) estimate the job transfer time of the unit based on the unit's job data capacity and the communication bandwidth information of the vehicle 10; (2) estimate the unit's computation time based on the unit's required resources and the vehicle 10's computation resource information; and (3) estimate the result transfer time based on the unit's job result capacity and the vehicle 10's communication bandwidth information.
[0072] The pipeline configuration module 512 then matches the job data D1 to be processed with a vehicle 10 (hereinafter referred to as "target vehicle 10") such that the time difference between the job transfer time, calculation time, and result transfer time falls within a predetermined time.
[0073] Subsequently, the pipeline configuration module 512 outputs pipeline configuration information to the calculation management module 514. The pipeline configuration information outputs to the calculation management module 514 information on the stage time for each job data D1 that can be divided into units, and information on the matching result with the vehicle 10 that processes the job data D1 (hereinafter referred to as "matching information").
[0074] The calculation management module 514 executes job splitting and pipeline configuration processing based on the pipeline configuration information described above. In the job splitting process, the job data D1 to be processed is retrieved from the storage unit 503 and the job data D1 is divided into units based on the analysis results of the application analysis module 511. The pipeline configuration processing includes scheduling the calculations of the job data D1 and requesting calculation processing of application jobs using the job data D1 to the target vehicles 10 that constitute the pipeline. The calculation processing request includes securing data transfer bandwidth with the target vehicles 10 and reserving the calculation resources of the target vehicles 10.
[0075] When the job division process and pipeline configuration process are completed, the calculation management module 514 sequentially outputs the divided units of the job data D1 to be processed to the memory 515. Once the output process of the units to the memory 515 is complete, it outputs a completion flag to the pipeline management module 517. Furthermore, if any of the above processes terminate abnormally midway, it outputs an abnormality flag to the pipeline management module 517.
[0076] The pipeline management module 517 outputs a data control signal to the memory 515 that specifies the timing for outputting the calculation results stored in the memory 515 to the compression module. The pipeline management module 517 also outputs a synchronization signal. The synchronization signal is output via the communication channel 61. The synchronization signal may be superimposed on the job data D1 output from the compression module 516 to the communication channel 61, or it may be output in parallel with the job data D1 on the communication channel 61.
[0077] Based on the data control signals received from the pipeline management module 517, the memory 515 sequentially outputs the job data for each unit received from the arithmetic management module 514 to the compression module 516.
[0078] The compression module 516 compresses the job data from each unit received from the memory 515 and outputs it sequentially to the target vehicle 10 via the communication channel 61.
[0079] The decompression module 518 decompresses the compressed calculation result data D2 received from the compression module 118 of the target vehicle 10 via the communication channel 62. The calculation result data D2 decompressed by the decompression module 518 is output to the calculation management module 514. The calculation management module 514 stores the calculation result data D2 received from the decompression module 518 in the storage unit 503.
[0080] -Storage Department- The memory unit 503 stores information and data. The specific configuration of the memory unit 503 is not particularly limited. For example, it may be implemented as memory built into a chip, as an HDD (Hard Disk Drive), as an SSD (Solid State Drive), or as an optical disc such as a DVD or Blu-ray disc.
[0081] In this example, the storage unit 503 stores various data, including the vehicle information table D51, the job table D53, the matching table D55, the job data D1, and the calculation result data D2.
[0082] <Vehicle Information Table> Vehicle information table D51 is a table for managing vehicle information. For example, vehicle information D10 for each vehicle is listed and stored in vehicle information table D51.
[0083] <Job Table> Job Table D53 is a table used to manage jobs requested by clients. For each job, Job Table D53 registers the reception number assigned to the job, the client ID assigned to the client that requested the job, the name and details of the job. In addition, Job Table D53 also registers the calculation type and processing conditions of the corresponding Job Data D1, the required computing power required to calculate Job Data D1, and the deadline set for the job. Job Table D53 is linked so that it is possible to identify which client requested each Job Data D1.
[0084] <Matching Table> Matching Table D55 is a table used to manage the matching results in the matching process. Matching Table D55 registers, for each job, the reception number set for that job, the job data ID set in the corresponding job data D1, and the vehicle identification information of the vehicle assigned to that job data through the matching process.
[0085] <Job Data> The job data D1 stored in the memory unit 503 is the data of a job received from a client terminal during the job acceptance process described later.
[0086] <Calculation result data> The calculation result data D2 stored in the memory unit 503 is the calculation result data of the jobs executed in each target vehicle 10 by the grid computing process described later.
[0087] [Operation of a grid computing system] In the following section, an example of the operation of a grid computing system will be explained with reference to the flowcharts in Figures 7 and 8.
[0088] -Step S1- In step S1, the management server 50 executes a job acceptance process to receive job requests from clients.
[0089] Specifically, first, the client terminal 30 sends a job request application to the management server 50 in response to an input operation by the client's representative.
[0090] The management server 50 requests the client terminal 30 to send job data D1 corresponding to the requested job. In response to this request, the client terminal 30 sends job data D1 corresponding to the requested job to the management server 50. The management server 50 receives the job data D1 and stores it in the storage unit 503.
[0091] -Step S2- In step S2, the management server 50 analyzes the job data D1 received from the client terminal 30. The specific analysis is as described above. For example, the application analysis module 511 of the management server 50 performs the following analyses: (1) whether the data can be divided as evenly as possible into multiple units, (2) calculation of the job data capacity of each unit, (3) calculation of the required resources, and (4) prediction of the capacity of the calculation result data D2 of each unit.
[0092] -Step S3- In step S3, the management server 50 obtains vehicle information D10 for each vehicle 10.
[0093] First, the management server 50 requests each vehicle 10 to send the latest vehicle information D10. Each vehicle 10 sends the latest vehicle information D10 to the management server 50 in response to the request. At this time, the vehicle information D10 sent may be a part of the vehicle information D10 or all of the vehicle information D10 may be sent. For example, the vehicle information D10 sent from each vehicle 10 to the management server 50 includes vehicle identification information and resource information.
[0094] The management server 50 registers the vehicle information D10 received from each vehicle 10 in the vehicle information table D51. For vehicles 10 whose vehicle information D10 is already registered in the management server 50, the vehicle 10 may send the necessary information from the difference between the registered information and the current information to the management server 50.
[0095] -Step S4- In step S4, the management server 50 determines which vehicles are eligible for pipeline processing. In this example, step S4 is a loop process with termination conditions set, which will be described later. The following is a detailed explanation with reference to Figure 8.
[0096] <Step S41> In step S41, the management server 50 performs a selection process for vehicles that are candidates to perform pipeline processing. In other words, the management server 50 performs a process to narrow down the vehicles 10 that will perform the subsequent processing. For example, vehicle information D10 regarding vehicles 10 that have expressed their willingness to participate in grid computing to the management server is collected and stored on a regular basis. Then, the management server 50 performs a narrowing down of the vehicles 10 based on that information. The method of this selection process (narrowing down) is not particularly limited, but for example, it may include methods such as (1) excluding vehicles that clearly lack the necessary resources, (2) excluding vehicles that clearly lack the communication bandwidth, or (3) excluding vehicles that clearly lack the time available to participate in grid computing.
[0097] By performing this narrowing down process in advance, the time required to determine which vehicles can be processed in the pipeline can be reduced. Note that step S41 is not a process that is required every time in the loop processing of step S4; once the candidate vehicles have been determined, the process of step S41 may be skipped.
[0098] <Step S42> In step S42, the management server 50 estimates the job transfer time for the vehicle 10 selected in step S41 (hereinafter also referred to as the selected vehicle 10). The job transfer time is estimated based, for example, on the job data capacity of the unit, the communication bandwidth information between the selected vehicle 10 and the management server 50, the performance of the compression module 516 of the management server 50, and the performance of the decompression module 111 of the selected vehicle 10. The job transfer time may be estimated for all units, or it may be estimated for a selection of units. The same applies to the estimation of job calculation time and calculation result transfer time, which will be described below.
[0099] <Step S43> In step S43, the management server 50 estimates the job calculation time for the selected vehicle 10. The job calculation time is estimated based, for example, on the required resources calculated in step S2, the calculation resource information of the selected vehicle 10, and the actual time taken for similar calculations.
[0100] <Step S44> In step S44, the management server 50 estimates the unit's calculation result transfer time for the selected vehicle 10. The estimation of the calculation result transfer time is performed based, for example, on the predicted capacity of the unit's calculation result data, communication bandwidth information between the selected vehicle 10 and the management server 50, the performance of the compression module 118 of the selected vehicle 10, and the performance of the decompression module 518 of the management server 50.
[0101] <Step S45> In step S45, the management server 50 determines the feasibility of continuous job execution for the selected vehicle 10. Specifically, the management server 50 estimates the total execution time of the job and determines the feasibility of continuous job execution based on the total execution time and the future available time for grid computing of the selected vehicle 10 (hereinafter simply referred to as "available time"). The estimation of the total execution time of the job is performed, for example, based on the application analysis results in step S2, the job transfer time estimated in step S42, the job calculation time estimated in step S43, and the calculation result transfer time estimated in step S44. The available time for the selected vehicle 10 is estimated, for example, based on the vehicle status information D13 and / or operational information D15 of the selected vehicle 10.
[0102] More specifically, if the management server 50 estimates that it will take 3 hours to process job data D1, it will determine, based on vehicle information D10 and the like, whether the selected vehicle 10 is scheduled to be parked for the next 3 hours.
[0103] <Step S46> In step S46, the management server 50 determines the stage time for the pipeline processing. In this example, the pipeline processing consists of three stages: a data reception stage, a job calculation stage, and a data transmission stage, and the stage time for each is determined. The data reception stage is the stage in which the selected vehicle 10 receives job data D1 from the management server 50. The job calculation stage is the stage in which the selected vehicle 10 performs calculations using the job data D1. The data transmission stage is the stage in which the selected vehicle 10 sends calculation result data D2 to the management server 50. In this example, for convenience, the data flow may be described as "received" and "transmitted" from the perspective of the vehicle 10 in terms of stage names and operation descriptions. Note that the transfer process in the data reception stage is an example of the first transfer process. The transfer process in the data transmission stage is an example of the second transfer process.
[0104] At this time, the management server 50 checks whether the time differences between the unit's job transfer time in the data reception stage, the unit's job calculation time in the job calculation stage, and the unit's calculation result transfer time in the data transmission stage for the selected vehicle 10 are within a predetermined time. This predetermined time can be set arbitrarily. However, the smaller the predetermined time, that is, the smaller the time difference between each stage, the more efficient processing can be achieved. If the above time differences between stages exceed the predetermined time, the management server 50 terminates processing, setting the stage time of the selected vehicle 10 to "undetermined".
[0105] <Step S47, S48> In the next step, S47, it is determined whether the successive execution feasibility of the job in step S45 is satisfied for the selected vehicle 10, and whether the stage time in step S46 has been determined. If the result is YES (both conditions are met), the process proceeds to step S48. In step S48, the management server 50 determines that the selected vehicle 10 is a vehicle for which pipeline processing can be constructed, and terminates the series of processes within the loop.
[0106] On the other hand, if the result in step S47 is NO (none of the conditions are met), the process in step S48 is not executed, and the series of processes within the loop is terminated.
[0107] Then, the loop processing from step S41 to step S48 is executed, with the termination condition being either the determination of a vehicle 10 capable of constructing pipeline processing (target vehicle 10) or the completion of processing for all vehicles 10 (for example, the processing in Figure 8). For example, the loop processing may be terminated when a target vehicle 10 that satisfies the predetermined conditions is determined in step S48, or the loop processing in step S4 may be executed for some or all of the vehicles 10, and after all loop processing is completed, the most suitable one or more vehicles 10 may be set as the target vehicle 10. Note that the termination condition is not limited to these, and for example, the process may be terminated when the number of target vehicles 10 required for pipeline processing has been secured.
[0108] -Step S5- Returning to Figure 7, in step S5, the management server 50 checks whether there is a target vehicle 10 for which pipeline processing can be built. If a target vehicle 10 exists (YES determination), the flow proceeds to step S6. On the other hand, if a target vehicle 10 does not exist (NO determination), the flow proceeds to step S8.
[0109] -Step S6- In step S6, the management server 50 performs configuration and preparation for pipeline processing.
[0110] Specifically, the management server 50 retrieves the job data D1 from the storage unit 503 and divides the job data D1 into multiple units based on the analysis results in step S2.
[0111] Furthermore, pipeline settings are executed on the management server 50 and the target vehicle 10. For example, on the management server 50, settings such as the timing of data transmission in pipeline processing are executed based on the stage time set in step S46. Similarly, on the target vehicle 10, settings such as the timing of data reception in pipeline processing and the timing of transmission of calculation results after calculation processing are executed.
[0112] Furthermore, the management server 50 secures communication bandwidth with the target vehicle 10 and executes a reservation process for computing resources for the target vehicle 10.
[0113] -Step S7- Step S7 is a loop process whose termination condition is the completion of the pipeline job.
[0114] <Normal processing (no abnormalities)> In step S71, pipeline processing (pipeline cycle) is executed. Figure 9 shows an example of pipeline processing.
[0115] In Figure 9, during the first cycle, the data reception stage executes the data reception process for the first unit. Specifically, the management server 50 performs data compression processing for the first unit, data transfer processing from the management server 50 to the target vehicle 10, and decompression processing for the first unit is performed in the target vehicle 10.
[0116] In the second cycle, the data reception stage executes the data reception process for the second unit. Similar to the first cycle, data compression, data transfer, and decompression processes are performed for the second unit. In addition, the calculation stage executes the calculation process (first calculation) of the application job using the first unit.
[0117] In the third cycle, the data reception stage executes the data reception process for the third unit. Similar to the first cycle, data compression, data transfer, and decompression processes are performed for the third unit. In the calculation stage, the calculation process (second calculation) for the application job using the second unit is executed. In the data transmission stage, the data transmission process for the first unit is executed. Specifically, the data compression process for the first unit in the target vehicle 10, the data transfer process from the target vehicle 10 to the management server 50, and the decompression process for the first unit in the management server 50 are performed.
[0118] Subsequently, the pipeline processing is performed in the same manner, with three stages—the data reception stage, the calculation stage, and the data transmission stage—until the pipeline processing job is completed.
[0119] <Abnormal Handling (1)> Next, we will explain what happens when an abnormality occurs during the loop processing in step S7 (when the result is YES in step S72 in Figure 7), referring to the diagram.
[0120] Figure 10 shows an example where an anomaly occurred during the data reception stage of the fourth cycle. Specifically, in this example, an anomaly occurred during the data reception process of the fourth unit from the management server 50 to the target vehicle 10 (see upper part of Figure 10).
[0121] First, when an abnormality is detected in the calculation module 113 of the target vehicle 10, an abnormality notification is sent from the calculation module 113 to the pipeline management module 115. The pipeline management module 115 sends an abnormality notification to the management server 50 via the communication channel 62 and requests a retransmission of data from the fourth unit. Furthermore, in the calculation stage, the target vehicle 10 executes the calculation up to the third calculation and then enters a standby state. Also, in the data transmission stage, it executes the data transmission process for the third unit and then enters a standby state.
[0122] When the management server 50 receives an abnormality notification, it temporarily stops data transfer.
[0123] Subsequently, in the data reception stage, the data reception process of the fourth unit is executed again. The lower part of Figure 10 shows an example in which the data reception process of the fourth unit is resumed in the data reception stage of the sixth cycle.
[0124] In vehicle 10, once data from the fourth unit is received, decompression is performed, and processing in the subsequent calculation stage and data transmission stage resumes. Then, pipeline processing in the three stages of the data reception stage, calculation stage, and data transmission stage is executed until the pipeline processing job is completed.
[0125] Furthermore, if the abnormal condition is not resolved within a predetermined time, the loop processing in step S7 may be exited. The same applies to "Abnormal Handling (2)" and "Abnormal Handling (3)" described later.
[0126] <Abnormal Handling (2)> Figure 11 shows an example where an anomaly occurred during the calculation stage of the fourth cycle. Specifically, in this example, an anomaly occurred during the calculation process (third calculation) of the application job using the third unit (see upper part of Figure 11).
[0127] First, when an abnormality is detected in the calculation module 113 of the target vehicle 10, the calculation module 113 sends an abnormality notification regarding the calculation process of the third unit to the pipeline management module 115. The pipeline management module 115 sends an abnormality notification to the management server 50 via the communication channel 62 and requests a retransmission of the data from the third unit where the abnormality occurred. Furthermore, in the calculation stage of the target vehicle 10, the data of the third calculation is discarded, the calculation is temporarily stopped, and the vehicle enters a standby state. Also, in the data transmission stage, the data transmission process of the second unit is completed, and then the vehicle enters a standby state.
[0128] When the management server 50 receives an abnormality notification, it temporarily stops data transfer.
[0129] Subsequently, in the data reception stage, the data reception process of the third unit is executed again. The lower part of Figure 11 shows an example in the data reception stage of the fifth cycle in which the data reception process of the third unit from the management server 50 to the target vehicle 10 is resumed.
[0130] In vehicle 10, once data from the third unit is received, decompression is performed, and processing in the subsequent calculation stage and data transmission stage resumes. Then, pipeline processing in the three stages of the data reception stage, calculation stage, and data transmission stage is executed until the pipeline processing job is completed.
[0131] <Abnormal Handling (3)> Figure 12 shows an example where an anomaly occurred during the data transmission stage of the fourth cycle. Specifically, in this example, an anomaly occurred during the data transmission process of the second unit from the target vehicle 10 to the management server 50 (see upper part of Figure 12).
[0132] First, for example, if an abnormality is detected in the decompression module 518, the decompression module 518 sends an abnormality notification regarding the data transmission process of the second unit to the calculation management module 514. Upon receiving the abnormality notification, the calculation management module 514 temporarily stops data transfer in the data reception stage. The calculation management module 514 also sends an abnormality notification to the target vehicle 10 via the communication channel 61.
[0133] In vehicle 10, upon receiving an abnormality notification, the calculation stage discards data from the third calculation onward, temporarily halting the calculation and entering a standby state. Similarly, in the data transmission stage, data from the second unit onward is discarded, and the vehicle enters a standby state.
[0134] Subsequently, in the data reception stage, the data reception process of the fourth unit is executed again. The lower part of Figure 12 shows an example in the data reception stage of the fifth cycle in which the data reception process of the second unit from the management server 50 to the target vehicle 10 is resumed.
[0135] In vehicle 10, once data from the second unit is received, decompression is performed, and the subsequent calculation and data transmission stages resume processing. The pipeline processing continues through the three stages—data reception, calculation, and data transmission—until the pipeline job is completed.
[0136] -Step S8- In step S8, the job data D1 is used to perform calculations for a normal application job that does not involve pipeline processing.
[0137] [Effects of the Embodiment] As described above, according to the above embodiment, the management server 50 divides the job to be processed into multiple units. In this system 1, processing is carried out using a three-stage pipeline: a data reception stage that transfers job data for each unit from the management server 50 to the target vehicle 10, a calculation stage that performs calculations for each unit in the vehicle, and a data transmission stage that transfers the calculation result data after calculation processing from the target vehicle 10 to the management server 50.
[0138] This allows computation to be performed even during the data transfer period between the management server 50 and the target vehicle 10, thereby reducing the impact of the transfer processing time on the time required to complete a series of jobs.
[0139] Furthermore, in the above embodiment, prior to the three-stage pipeline processing, the matching of jobs and vehicles 10 is performed so that the time difference between the job transfer time from the management server 50 to the target vehicle 10, the calculation time in the target vehicle 10, and the transfer time of the calculation result data from the target vehicle 10 to the management server 50 falls within a predetermined time. This makes it possible to assign the optimal vehicle 10 to each job when executing pipeline processing.
[0140] Furthermore, the above embodiments may be combined as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the technology, its applications, or uses disclosed herein. In other words, the above embodiments are merely illustrative and should not be interpreted as limiting the scope of this disclosure. The scope of this disclosure is defined by the claims, and all variations and modifications within the equivalent scope of the claims are within the scope of this disclosure. [Industrial applicability]
[0141] As explained above, the technology disclosed herein is useful as a technology for managing grid computing. [Explanation of Symbols]
[0142] 10. Vehicles (mobile devices) 50 Management Server (Master Device)
Claims
[Claim 1] A management system for managing grid computing that utilizes computing resources installed on each of multiple mobile units, A job analysis module that estimates the job data capacity of a unit, the resources required for the calculations of a unit, and the job result capacity after the calculations of a unit, when the job to be processed is divided into multiple units. For each of the aforementioned mobile units, a computing node management module is provided to acquire communication bandwidth information between the mobile unit and the master device of the grid computing system, and computing resource information of the mobile unit. A setting module that estimates the job transfer time based on the job data capacity and the communication bandwidth information, the calculation time based on the required resources and the calculation resource information, and the result transfer time based on the job result capacity and the communication bandwidth information, and matches the mobile unit with the job so that the time difference between the estimated job transfer time, the calculation time, and the result transfer time falls within a predetermined time, The pipeline management module includes a pipeline that processes, in different stages, a first transfer process for transferring job data for each unit of a matched job from the master device to the mobile body selected by the setting module, a calculation process for each unit in the mobile body, and a second transfer process for transferring the calculation result data after the calculation process from the mobile body to the master device. Management system.
Citation Information
Patent Citations
Distributed processing system and onboard terminal
JP2007087273A
Distributed computing method, program, host computer and distributed computing system (distributed parallel computing using accelerator device)
JP2013140530A
Systems and methods of partitioning data for synchronous parallel processing
US8429165B1