EP3529723A1 - Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle - Google Patents

Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle

Info

Publication number
EP3529723A1
EP3529723A1 EP17791319.1A EP17791319A EP3529723A1 EP 3529723 A1 EP3529723 A1 EP 3529723A1 EP 17791319 A EP17791319 A EP 17791319A EP 3529723 A1 EP3529723 A1 EP 3529723A1
Authority
EP
European Patent Office
Prior art keywords
vehicles
vehicle
subtask
subtasks
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP17791319.1A
Other languages
English (en)
French (fr)
Inventor
Dr. Andreas Meier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volkswagen AG
Original Assignee
Volkswagen AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Volkswagen AG filed Critical Volkswagen AG
Publication of EP3529723A1 publication Critical patent/EP3529723A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0011Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement
    • G05D1/0027Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement involving a plurality of vehicles, e.g. fleet or convoy travelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the invention relates to a device and a method for a vehicle, a device and a method for a central station and computer programs, more specifically, but not exclusively, to devices for calculating subtasks of distributed data processing by calculation modules of vehicles.
  • Embodiments provide vehicles, devices, and computer programs and a central office.
  • the central office can be designed to select vehicles for the processing of subtasks of a data processing based on one or more criteria, such as computing power or availability, and to provide the subtasks to the corresponding vehicles.
  • These subtasks are processed by vehicle computing units, and a result is returned to the central office
  • the central office can compile the results and the
  • Embodiments provide compiled results.
  • Embodiments provide a device for a vehicle.
  • the device comprises a communication module configured for communication with a central office.
  • the communication module configured for communication with a central office.
  • the device further comprises a calculation module configured to control the
  • the calculation module is further configured to receive a subtask of distributed data processing from the central office.
  • the calculation module is further configured to calculate the subtask of the distributed data processing for obtaining a result of the subtask.
  • the calculation module is further configured to provide the result of the subtask for the central office.
  • Calculating the subtasks by vehicles can be a distributed processing of
  • the calculation module may be configured to provide notification of non-availability of the vehicle to calculate the subtask for the central office if the device is deactivated before the subtask is calculated. This can be done, for example, by the central office, which
  • the computation module may be configured to compute the subtask based on a multiple instruction (multiple data instruction, SIMD) architecture or based on a stream processor.
  • SIMD architectures or stream processors can enable more efficient computation of parallelizable computational tasks.
  • the computing module may be further configured to communicate with one or more other vehicles via the communication module to exchange results of subtasks with the one or more others
  • Embodiments further provide an apparatus for a central office.
  • the device includes a communication module configured to communicate with a plurality of vehicles.
  • the device further comprises a control module configured to control the communication module.
  • the control module is further configured to provide Sub-tasks of distributed data processing for the plurality of vehicles for a distributed distributed data processing calculation.
  • the control module is further configured to receive results of the distributed data processing subtasks from the plurality of vehicles.
  • the control module is further configured to compile the results of the distributed data processing based on the (received) results of the subtasks.
  • Calculating the subtasks by vehicles can be a distributed processing of
  • control module may be configured to select the plurality of vehicles from a group of vehicles. Selecting a vehicle to be selected for the plurality of vehicles may be based on at least one of the group of system utilization of a calculation module of the vehicle to be selected, the energy capacity of the vehicle to be selected, and the capability of the vehicle
  • Calculation module of the vehicle to be selected connectivity of the vehicle to be selected, position of the vehicle to be selected, estimated availability of the vehicle to be selected for calculating a subtask, previous processing of a subtask by the vehicle to be selected and prioritization of the vehicle to be selected for calculations. This can be a distribution of subtasks
  • Enable vehicles available for data processing such as their capabilities or availability
  • control module may be configured to provide the subtasks multiple or mutually overlapping the plurality of vehicles. This allows redundancy in the processing of subtasks, which can reduce a time for processing all data processing across all subtasks.
  • control module may be configured to provide subtasks that are not calculated within a time window from one vehicle of the plurality of vehicles to another vehicle of the plurality of vehicles for calculation.
  • control module may be configured to provide a subtask provided to a vehicle that is at least temporarily unavailable to another vehicle of the plurality of vehicles for calculation. Thereby In some cases, a total duration of the data processing can be reduced or a complete processing can be made possible.
  • control module may be configured to initiate providing the subtasks to the vehicles of the plurality of vehicles
  • control module may be configured to receive a request from the vehicle for initiating the provision of a sub-task for a vehicle of the plurality of vehicles (pull principle). This allows, for example, the
  • Vehicles provide their computing capacity when available for calculations.
  • the subtasks may include instructions that are executable independently of a specific hardware architecture of a computing unit of a vehicle of the plurality of vehicles, such as an intermediate language (such as a bytecode or a distributed programming language code). This can enable a cross-model calculation of subtasks.
  • an intermediate language such as a bytecode or a distributed programming language code
  • Embodiments further provide a method for a vehicle.
  • the method includes receiving a sub-task of distributed computing from a central office.
  • the method further comprises calculating the subtask of the distributed data processing to obtain a result of the subtask.
  • the method further comprises providing the result of the subtask to the central office.
  • Embodiments further provide a method for a central office.
  • the method includes providing subtasks of distributed computing for a plurality of distributed computing computing vehicles.
  • the method further comprises receiving results of the distributed data processing subtasks from the plurality of vehicles.
  • the method further comprises compiling the results of the distributed data processing based on the results of the subtasks.
  • Performing at least one of the procedures when the program code is on a computer, a processor, a control module or a programmable hardware component is executed.
  • Fig. 1 shows a block diagram of a device for a vehicle
  • Fig. 1a shows a flowchart of a method for a vehicle
  • Fig. 2 shows a block diagram of a device for a central office
  • Fig. 2a shows a flowchart of a method for a central office
  • FIG. 3 shows a flowchart of an example method for a central office
  • Fig. 4 shows a flowchart of a system for calculating a data processing.
  • Exemplary embodiments show the same reference numerals may designate the same or similar components. Further, summary reference numerals may be used for components and objects that occur multiple times in one embodiment or in a drawing but are described together in terms of one or more features. Components or objects which are described by the same or by the same reference numerals may be the same, but possibly also different, in terms of individual, several or all features, for example their dimensions, unless otherwise explicitly or implicitly stated in the description. Although embodiments may be modified and changed in various ways, exemplary embodiments are illustrated in the figures as examples and will be described in detail herein. It should be understood, however, that it is not intended that
  • Vehicle systems have now been developed with computationally intensive machine learning techniques, e.g. To enable image recognition. But also the classic vehicle development can e.g. Use high-performance computer systems in computer simulations for crash calculation or modeling of flow behavior.
  • a need for computing power in automotive development can increase in some scenarios, especially through the research on automatic driving, so that the question may arise as flexible and cost as possible this computing power can be provided.
  • Cloud capacity can be more flexible, but it may also require data center building if cloud capacity is built in-house.
  • Externally rented cloud capabilities can provide greater flexibility, but can be viewed critically from a data protection perspective, as the necessary, partially secret data (e.g., simulation data) may in some scenarios be dubbed to a third party vendor.
  • the expansion can be connected to more computing power with significant costs, especially for infrastructure and operation
  • a vehicle can be understood as a compute unit.
  • a free (available) for example,
  • Control devices such as an infotainment system (information and entertainment system) or driver assistance systems
  • infotainment system information and entertainment system
  • driver assistance systems are provided for calculations.
  • the connection through which the calculations to be performed and the necessary data are exchanged can be provided, for example, via a mobile online service.
  • a central office in the following, for example, Telematic Service Provider (TSP), Telematikdienst queen, can be called) can be a coordination to distribute the calculation to the vehicles and aggregate the results.
  • TSP Telematic Service Provider
  • Telematikdienst Telematikdienst
  • some controllers may incorporate powerful, highly parallelized hardware (e.g., Tegra processors in a Modular Infotainment Modular System (MIB), Active Info Display (Active Information Display), or a Central Driving Assistance System (zFAS)).
  • MIB Modular Infotainment Modular System
  • zFAS Central Driving Assistance System
  • infotainment system e.g., MIB
  • OCU online connectivity unit
  • TSP Modular
  • Backend kit (MBB)
  • MBB Backend kit
  • the calculation may not be performed on dedicated computer hardware but in the vehicles. At least some embodiments may be based on providing the computing power available in hundreds of thousands of produced vehicles inexpensively. In some embodiments, no new data center needs to be set up or cloud solutions rented, since a program distribution, calculation and result transmission can be handled, for example, via a mobile online service that the
  • Vehicle owner must activate.
  • at least some embodiments without a distributed file system, a complex security concept, etc. can get along, but can focus on being able to provide a large number of computing units quickly and robustly with programs and data.
  • the free computing capacity of the ECU in conjunction with the Internet connection can be provided in the form of a "Compute Unit Online Service.” It may be necessary for the user to activate and agree to this Compute Unit online service explained.
  • While the vehicles may not have high availability in some embodiments, they may be very numerous and have powerful embedded systems.
  • the central office (about the TSP), which allocates resources and distribution Vehicles can be particularly optimized to deal with low availability Compute Units
  • the device 10 comprises a communication module 12 configured to communicate with a vehicle
  • the device further comprises a calculation module 14, configured to control the communication module 12.
  • the calculation module 14 is further configured to receive a subtask of distributed data processing from the central office 200, such as via the communication module 12.
  • the calculation module 14 is further configured to calculate the subtask of distributed data processing for obtaining a result of the subtask.
  • the calculation module 14 is further configured to provide the result of the subtask for the central office 200, such as via the communication module 12.
  • the communication module 12 is coupled to the computing module 14.
  • Embodiments further provide the vehicle 100 with the apparatus 10 for the
  • FIG. 1a shows a flowchart of a corresponding method for the vehicle 100.
  • the method comprises receiving 110 the distributed computing subtask from the central office 200.
  • the method further comprises computing 120 the distributed computing subtask to obtain the result of the subtask.
  • the method further comprises providing 130 the result of the subtask for the central office 200.
  • the data processing can correspond to a parallelizable data processing or a splittable data processing.
  • the data processing may correspond to a distributed machine learning algorithm or a simulation.
  • Data processing may include, for example, a plurality of subtasks.
  • a subtask of data processing may be one of a single
  • the subtask may include information about instructions of the subtask and information about data of the subtask.
  • the instructions of the subtask can refer to the data of the subtask.
  • the instructions of the subtask can process the data of the subtask.
  • the information about the instructions of the subtask can be
  • the calculation module 14 may be configured to retrieve the instructions of the subtask and / or the subtask data based on the reference to the instructions or references to the data. Different subtasks relate to the same data and / or the same instructions, the calculation module 14 may be designed to hold the data of the subtask and / or the instructions of the subtask
  • the subtask may include instructions executable independently of a specific hardware architecture of a computing unit of a vehicle (such as a vehicle of a plurality of vehicles 100a, 100b as introduced in FIG. 2).
  • a specific hardware architecture of a computing unit of a vehicle such as a vehicle of a plurality of vehicles 100a, 100b as introduced in FIG. 2.
  • cross-language language such as OpenCL (Open Computation Language) or CUDA.
  • OpenCL Open Computation Language
  • CUDA CUDA
  • Sub-task based on a byte code and the calculation module 14 may be configured to interpret the byte code of the subtask.
  • the subtasks may be based on a framework over which
  • platform-independent programs can be written so that programs can run on different ECUs.
  • a framework often already exists through the chip manufacturer or in the form of an independent API.
  • the vehicle could then decide for itself on which control unit the calculation should be performed.
  • the URL Uniform Resource Locator, Address
  • the data itself can be independent, for example, the data can be stored in such a way that all control devices in the vehicle can access it quickly.
  • the calculation module 14 may comprise, for example, two or more cores or arithmetic units.
  • the computation module may include a processor with one or more kernels for general computation and a processor with one or more
  • the computation module may comprise a multiple record instruction or stream processor architecture that includes the specialized computation units.
  • the computation module 14 may be configured to perform the computation of the result of the subtask at least partially (or entirely) on the specialized computation units.
  • the calculation module 14 may be configured to perform the subtask based on the architecture with a multiple data set instruction or based on the stream processor. In at least some
  • the calculation module 14 may be configured to calculate the result of the subtask with a low priority (for example, an idle), since the main purpose of the control units is in driving or comfort functions
  • a low priority for example, an idle
  • the calculation may be run with an idle priority, so that they can be quickly replaced by regular computations.
  • the calculation module 14 may be configured to provide notification of non-availability of the vehicle 100 for
  • Calculation module 14 may be configured to provide notification of availability of vehicle 100 for calculating the subtask for central office 200, and absence of the availability message may indicate the (unavailable) notification of the vehicle for calculation.
  • the availability message may indicate the (unavailable) notification of the vehicle for calculation.
  • Calculation module 14 may be configured to provide the notification of non-availability of the vehicle 100 to the central office prior to deactivating the device 10 or if deactivation of the device 10 before completion of calculating the results of the subtask is foreseeable.
  • a vehicle may periodically send a heartbeat to make the TSP aware that it is still available.
  • This heartbeat could also be supplemented with further information, such as previously used CPU time. This could then allow the TSP to select more vehicles if a vehicle is no longer available or if, due to its regular operation, it can not spend any computing power on the task being transferred.
  • the central office may be configured to allocate resources, i. Allocate calculations to vehicles and reschedule when selected vehicles suddenly become unavailable.
  • Central Unit can be trained to achieve total availability through the high number of available vehicles.
  • the computing module 14 may further be configured to communicate with one or more other vehicles via the communication module 12 to exchange results of subtasks with the one or more other vehicles.
  • the calculation module 14 be configured to communicate with vehicles in an environment of the vehicle via nearest neighbor communication, for example, via direct car-to-car communication or via
  • the communication module 12 can be configured, for example, via at least one mobile communication system of the group Global System for Mobile Telecommunications (GSM), General Packet Radio Service (GPRS), Enhanced Data Rates for GSM Evolution (EDGE), Universal Mobile Telecommunication System (UMTS). , Long Term Evolution, and one
  • GSM Global System for Mobile Telecommunications
  • GPRS General Packet Radio Service
  • EDGE Enhanced Data Rates for GSM Evolution
  • UMTS Universal Mobile Telecommunication System
  • 5th generation (5G) mobile communication system 5th generation (5G) mobile communication system.
  • the job in the vehicle (for example, in the
  • Calculation module 14 trigger, via a vehicle-specific URL of a TSP query the program to be processed and the data required for it and download. Ideally, only the data necessary for the calculation may be sent along with it in order to avoid that a compromised vehicle comes to confidential or secret data. For example, the calculation (for example, the result of the subtask by the calculation module 14) can subsequently be carried out.
  • the communication module 12 (and / or a communication module 22 of FIG. 2) may, for example, correspond to one or more inputs and / or outputs for receiving and / or transmitting information, such as digital bit values based on a code, within one Module, between modules, or between modules of different entities.
  • the communication module 12 may be configured to communicate with the central office via a mobile communication network, for example via an internal connection (vehicle manufacturer-specific connection, intranet) or via the Internet.
  • the communication module 22 may be configured to communicate with the vehicle 100 via the mobile communication network, for example via the internal connection or via the Internet.
  • the calculation module 14 may correspond to any controller or processor or programmable hardware component.
  • the calculation module 14 can also be implemented as software that is programmed for a corresponding hardware component.
  • the calculation module 14 can be implemented as programmable hardware with correspondingly adapted software. Any number of processors, such as Digital Signal Processors (DSPs), can be used. Embodiments are not limited to a particular type of processor. There are any processors or even multiple processors for implementing the calculation module 14 conceivable.
  • DSPs Digital Signal Processors
  • the central office 200 may correspond to a central office as shown in FIG.
  • the vehicle 100 could be, for example, a land vehicle, a watercraft, an aircraft, a rail vehicle, a road vehicle, a car, a
  • Off-road vehicle a motor vehicle, or a truck correspond.
  • the device 20 comprises a communication module 22 configured to communicate with a plurality of vehicles 100a; 100b.
  • the plurality of vehicles may include one or more vehicles as introduced in conjunction with FIG.
  • the device 20 further comprises a control module 24 configured to control the
  • the control module 24 is further configured to provide distributed data processing subtasks to the plurality of vehicles 100a; 100b for a distributed computation computation, such as the
  • the control module 24 is further configured to receive results of the distributed data processing subtasks from the plurality of
  • the control module 24 is further configured to compile the results of the distributed data processing based on the results of the subtasks.
  • the communication module 22 is coupled to the control module 24.
  • Embodiments also provide the central office 200 comprising the central office device 20.
  • Fig. 2a shows a corresponding method for the central office 200.
  • the method comprises providing 210 the subtasks of the distributed data processing for the plurality of vehicles 100a; 100b for distributed computing of distributed computing.
  • the method further comprises receiving 220 results of the distributed data processing subtasks from the plurality of vehicles 100a; 100b.
  • the method further comprises assembling 230 the results of the distributed data processing based on the results of the subtasks.
  • control module 24 may be configured to actively push (push) the subtasks of the plurality of vehicles to provide the subtasks for the plurality of vehicles or to retrieve the subtasks on demand for the plurality of vehicles
  • control module 24 may be configured to Initiating the provision of the subtasks for the vehicles of the plurality of vehicles 100a; 100b to contact the vehicles of the plurality of vehicles. Alternatively or additionally, the control module 24 may be configured to initiate the provision of a subtask for a vehicle of the plurality of vehicles 100a; 100b to receive a request from the vehicle. For example, the control module 24 may be configured to provide an address-based interface for the plurality of vehicles.
  • the address-based interface may refer to a web server or to a file server of the device 20 or the central office 200 that includes the subtasks.
  • each vehicle could be part of a large distributed file system (DFS) in which the data to be processed as well as the results are stored.
  • DFS distributed file system
  • the software used to distribute programs, data, resource allocation and computation could be mapped through the Hadoop ecosystem.
  • a leaner, more resource efficient distributed software system can be used to provide the subtasks and / or receive the results of the subtasks.
  • the TSP could not only provide vehicles with a vehicle-specific URL (address of the address-based interface) under which they download the program and data, but the TSP could push (actively deploy) the program and data directly into the vehicle.
  • the vehicle may itself decide when to perform the download, for example, to await a stretch of link with good cellular coverage.
  • control module 24 may be configured to receive an address-based interface for the plurality of vehicles to receive the results of the subtasks
  • the address-based interface may refer to a web server or to a file server of the device 20 or the central office 200, with the ability to store the results of the subtasks for the plurality of vehicles.
  • the control module 24 may be configured to communicate directly with the data
  • control module 24 may be configured to support the plurality of vehicles 100a; Select 100b from a group of vehicles.
  • the control module 24 may be a data collection, such as a
  • Energy capacity of the vehicle to be selected performance of the calculation module of the selected vehicle, connectivity of the vehicle to be selected, estimated availability of the selected vehicle for calculating a subtask, previous processing of a subtask by the vehicle to be selected and prioritization of the vehicle to be selected for calculations based.
  • the data collection may include at least one element of the group utilization information of the calculation module of the vehicle to be selected, information about the energy capacity of the vehicle to be selected, information about the performance of the calculation module of the vehicle to be selected, information about the connectivity of the vehicle to be selected (such as for the preference of Vehicles to be selected at a greater transmission speed), information about the position of the vehicle to be selected (for nearest neighbor communication), information on the probable availability of the vehicle to be selected for calculating the subtask, information on the previous processing of a subtask by the vehicle to be selected and information about the prioritization of the one to be selected
  • control module 24 may be configured to include at least one element of the group of information about the system utilization of the computation module of the
  • Vehicle information about the position of the vehicle to be selected, information about the probable availability of the vehicle to be selected for the calculation of the subtask, information about the prior processing of a subtask by the vehicle to be selected and information on the prioritization of the selected
  • control module 24 may be configured to provide information about a
  • the information about the activation of the device 10 for a vehicle may, for example, information about a consent of a holder of the vehicle for calculating
  • control module 24 may be configured to base the selection of the vehicle on the information about activation of the vehicle.
  • the calculation module 14 may be configured to transmit the information about the
  • the TSP may comprise a database (data collection) with usable vehicles, which may also include additional information.
  • Selection strategies can be for example:
  • Control units report the TSP can then preferentially select the vehicles that have recently reported a low system load
  • Vehicles can send information about their current energy capacity, so that, for example, electric vehicles with a remaining, short range need not perform complex calculations
  • the selection can be based on the available hardware, eg.
  • ⁇ Selection can be made by connectivity, for example, by giving preference to vehicles that are connected via Wi-Fi (Wireless Local Area Network) or have a measured, fast, low-latency connection
  • Vehicles can be selected based on their location determined by GPS in combination with a digital map showing the GPS position on the vehicle
  • Vehicles can be selected that are likely to be online for some time (eg because they are currently being charged at the power outlet or the navigation system still has a long time remaining)
  • the task (data processing) itself can specify the subdivision of the program (in subtasks) so that the TSP does not have to take care of parallelizing the program itself.
  • the task (data processing) itself can specify the subdivision of the program (in subtasks) so that the TSP does not have to take care of parallelizing the program itself.
  • the task (data processing) itself can specify the subdivision of the program (in subtasks) so that the TSP does not have to take care of parallelizing the program itself.
  • the task (data processing) itself can specify the subdivision of the program (in subtasks) so that the TSP does not have to take care of parallelizing the program itself.
  • the task (data processing) itself can specify the subdivision of the program (in subtasks) so that the TSP does not have to take care of parallelizing the program itself.
  • the TSP can select the required number of vehicles.
  • the vehicles may be low availability compute units (eg due to unstable network connection, suddenly higher ECU load requirements), for example, a larger number of vehicles may be selected to reduce the "failure" of compute units (faster). This could be either every single calculation task
  • Subtask and the associated data are distributed multiple times or it can be used a logic that selects the critical computational tasks (for example, those that process a particularly large amount of data) to have them redundantly calculated.
  • the multiple distribution can also be used in stochastic coined calculations, so as to calculate several variations in parallel and at the same time to have a redundancy by multiple calculation by different vehicles.
  • the TSP can send a job to these vehicles.
  • control module 24 may be configured to base the provision of the subtasks on selecting the vehicles for the plurality of vehicles.
  • the TSP can also initiate the cancellation of the calculation of a task via the job mechanism.
  • the control module 24 may be configured to provide information about aborting the calculation for the plurality of vehicles.
  • control module 24 may be configured to multiply or overlap the subtasks of the plurality of vehicles 100a; 100b provide.
  • the control module 24 may be configured to provide a subset of compute-intensive or particularly relevant subtasks multiple of the plurality of vehicles.
  • the control module 24 be configured to provide multiple subtasks to each vehicle of the plurality of vehicles, and to provide each subtask to more than one vehicle.
  • control module 24 may be configured to perform subtasks that are not within a time window of a vehicle of the plurality of vehicles 100a; 100b, another vehicle of the plurality of vehicles 100a; 100b for calculation.
  • the time window may be at least 20% longer (or at least 50% longer, at least 100% longer) than an average computation time of the subtasks.
  • control module 24 may be configured to provide a subtask that has been provided to a vehicle that is at least temporarily unavailable to another vehicle of the plurality of vehicles 100a; 100b for calculating, for example, based on a heartbeat or based on a notification of availability / non-availability of a vehicle for calculating.
  • the control module 24 may be configured to receive information about the heartbeat or the availability / non-availability notification of the vehicle for calculating vehicles of the plurality of vehicles.
  • a vehicle After a vehicle has completed its calculation, it may be configured to send the results to the URL of the Compute Unit service.
  • the TSP can use the vehicle information also available to know which work packages have been processed. As soon as all work packages have received feedback, they can do so
  • the TSP could provide the results for the
  • control module 24 may be configured to store the results in a data structure to compose the results and the data structure
  • control module 24 may be configured to
  • the compiled results may not be the
  • the central office 200 may, for example, correspond to a server, a computer architecture, a computer infrastructure, a virtual server instance or a data center.
  • the controller or control module 24 may correspond to any controller or processor or programmable hardware component.
  • the control module 24 may also be realized as software which is programmed for a corresponding hardware component. In that sense, that can
  • Control module 24 may be implemented as programmable hardware with appropriately adapted software. Any number of processors, such as Digital Signal Processors (DSPs), can be used. Embodiments are not limited to a particular type of processor. There are any processors or multiple processors for implementing the control module 24 conceivable.
  • DSPs Digital Signal Processors
  • the method and / or apparatus 20 may include one or more additional optional features that correspond to one or more aspects of the proposed concept or examples as described previously or later.
  • the central office may receive a job (also called a job) for calculation (310) .
  • the TSP may determine the vehicles to be used and data and
  • the TSP may collect the results from the vehicles and return them to the requester (330).
  • the method may include one or more additional optional features that correspond to one or more aspects of the proposed concept or examples as described previously or later.
  • the system includes a vehicle 100 with powerful controllers and an internet connection.
  • the system also includes a backend (Central office) 200, which is coupled to a database 420 with vehicle information (data collection).
  • the system further includes a computer system 410 for task feed.
  • About the computer system 410, such as a portal, a database, etc. can via a
  • the central office 200 may be configured to obtain information about the data processing from the computer system.
  • Tasks can be parallelizable, for example, by using the Map Reduce programming paradigm (mapping-reducing programming paradigm) and computationally, but require relatively little data. Although you can work with a larger amount of data, but the transmission may take more time due to the Internet connection via wireless or Wi-Fi, as is the case with classic computer clusters.
  • Map Reduce programming paradigm mapping-reducing programming paradigm
  • the task (such as data processing) may also include other information, e.g. a priority or the number of required compute units, whereby a quota system can also be used for this purpose.
  • the TSP can do this task under an ID
  • the computer system 410 provides the backend 200 with the program and data to be processed (the data processing).
  • the backend retrieves possible vehicles (as a compute unit) from the data 420 and, based on a plurality of vehicles, for example the vehicle 100, places a job for retrieval
  • the vehicle 100 computes the program and provides results of the program (the result of the subtask) to the backend 200.
  • the backend 200 provides the computer system 410 with the results of all vehicles (compute units).
  • the system may include one or more additional optional features that address one or more aspects of the invention
  • Another embodiment is a computer program for performing at least one of the methods described above when the computer program runs on a computer, a processor, or a programmable hardware component. Another one
  • Embodiments is also a digital storage medium, the machine or
  • embodiments of the invention may be implemented in hardware or in software.
  • the implementation may be performed using a digital storage medium, such as a floppy disk, a DVD, a Blu-Ray Disc, a CD, a ROM, a PROM, an EPROM, an EEPROM or FLASH memory, a hard disk, or other magnetic disk or optical memory are stored on the electronically readable control signals, which can cooperate with a programmable hardware component or cooperate such that the respective method is performed.
  • a programmable hardware component may be implemented by a processor, a
  • a computer processor Central Processing Unit
  • ASIC Application-Specific Integrated Circuit
  • IC Integrated Circuit
  • the digital storage medium may therefore be machine or computer readable.
  • some embodiments include a data carrier having electronically readable control signals capable of being interfaced with a programmable computer system or computer programmable hardware component such that one of the methods described herein is performed.
  • An embodiment is thus a data carrier (or a digital storage medium or a computer-readable medium) on which the
  • embodiments of the present invention may be implemented as a program, firmware, computer program, or computer program product having program code or data, the program code or data operative to perform one of the methods when the program resides on a processor or a computer programmable hardware component expires.
  • the program code or the data can or can for example also on a machine-readable carrier or data carrier
  • the program code or the data may be present, inter alia, as source code, machine code or bytecode as well as other intermediate code.
  • Another embodiment is further a data stream, a signal sequence, or a sequence of signals that represents the program for performing any of the methods described herein.
  • the data stream, the signal sequence or the sequence of signals can be configured, for example, to be transferred via a data communication connection, for example via the Internet or another network.
  • Exemplary embodiments are thus also data representing
  • Data communication connection are suitable, wherein the data represent the program.
  • a program may implement one of the methods during its execution by, for example, reading or writing one or more data into memory locations, optionally switching operations or other operations in transistor structures, amplifier structures, or other electrical, optical, magnetic or caused by another operating principle working components. Accordingly, by reading a memory location, data, values, sensor values or other information can be detected, determined or measured by a program.
  • a program can therefore acquire, determine or measure quantities, values, measured values and other information by reading from one or more storage locations, as well as effecting, initiating or executing an action by writing to one or more storage locations and other devices, machines and
  • TSP receives job for calculation
  • TSP determines the vehicles to use and distributes data and algorithm
  • TSP collects the results of vehicles and returns them to requestors

Abstract

Vorrichtungen, Verfahren und Computerprogramme für ein Fahrzeug und eine Zentralstelle Ausführungsbeispiele beziehen sich auf Vorrichtungen, Verfahren und Computerprogramme für ein Fahrzeug und eine Zentralstelle. Die Vorrichtung (10) für das Fahrzeug (100) umfasst ein Kommunikationsmodul (12), ausgebildet zu einer Kommunikation mit einer Zentralstelle (200). Die Vorrichtung (10) umfasst ferner ein Berechnungsmodul (14), ausgebildet zum Steuern des Kommunikationsmoduls (12). Das Berechnungsmodul (14) ist ferner ausgebildet zum Empfangen einer Teilaufgabe einer verteilten Datenverarbeitung von der Zentralstelle (200). Das Berechnungsmodul (14) ist ferner ausgebildet zum Berechnen der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe. Das Berechnungsmodul (14) ist ferner ausgebildet zum Bereitstellen des Ergebnisses der Teilaufgabe für die Zentralstelle (200).

Description

Beschreibung
Vorrichtungen, Verfahren und Computerprogramme für ein Fahrzeug und eine Zentralstelle
Die Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren für ein Fahrzeug, eine Vorrichtung und ein Verfahren für eine Zentralstelle und Computerprogramme, spezifischer, aber nicht ausschließlich, auf Vorrichtungen zum Berechnen von Teilaufgaben einer verteilten Datenverarbeitung durch Berechnungsmodule von Fahrzeugen.
Der Entwurf von Fahrzeugen ist heute in vielen Fällen von Computern geprägt: Sowohl im Design-Prozess zur Darstellung von möglichen Varianten eines Designs, als auch in der technischen Entwicklung, etwa zur Simulation von Motor- oder Getriebekomponenten oder zur Durchführung von Luftflusssimulationen zum Erkennen von aerodynamischen Eigenschaften eines Fahrzeugentwurfs. Zusätzlich ergeben sich durch Maschinenlernen (engl. Machine Learning) Möglichkeiten, Eigenschaften von Fahrzeugen und Komponenten durch
Lernalgorithmen zu verbessern, etwa durch ein automatisiertes und evolutionäres Testen von Varianten. Sowohl Simulationen als auch Machine Learning-Algorithmen benötigen häufig große Mengen an Rechenleistung, um innerhalb vertretbarer Zeit zu Ergebnissen zu kommen.
Es besteht daher ein Bedarf für ein verbessertes Konzept zum Bereitstellen von Rechenleistung zur Durchführen von großen Datenverarbeitungen. Diesem Konzept wird durch die
unabhängigen Ansprüche Rechnung getragen.
Ausführungsbeispiele schaffen Vorrichtungen, Verfahren und Computerprogramme für Fahrzeuge und eine Zentralstelle. Die Zentralstelle kann beispielsweise ausgebildet sein, Fahrzeuge für die Verarbeitung von Teilaufgaben einer Datenverarbeitung basierend auf ein oder mehreren Kriterien, etwa Rechenleistung oder Verfügbarkeit, auszuwählen, und den entsprechenden Fahrzeugen die Teilaufgaben bereitzustellen. Diese Teilaufgaben werden von Recheneinheiten der Fahrzeuge bearbeitet, und ein Ergebnis wird der Zentralstelle
zurückgeschickt. Die Zentralstelle kann die Ergebnisse zusammenstellen und das
zusammengestellte Ergebnis bereitstellen. Ausführungsbeispiele schaffen eine Vorrichtung für ein Fahrzeug. Die Vorrichtung umfasst ein Kommunikationsmodul, ausgebildet zu einer Kommunikation mit einer Zentralstelle. Die
Vorrichtung umfasst ferner ein Berechnungsmodul, ausgebildet zum Steuern des
Kommunikationsmoduls. Das Berechnungsmodul ist ferner ausgebildet zum Empfangen einer Teilaufgabe einer verteilten Datenverarbeitung von der Zentralstelle. Das Berechnungsmodul ist ferner ausgebildet zum Berechnen der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe. Das Berechnungsmodul ist ferner ausgebildet zum Bereitstellen des Ergebnisses der Teilaufgabe für die Zentralstelle.
Das Berechnen der Teilaufgaben durch Fahrzeuge kann eine verteilte Bearbeitung der
Datenverarbeitung auf einer Vielzahl von Berechnungsmodulen ermöglichen, etwa zum
Bereitstellen von Rechenkapazität zum Lösen von Datenverarbeitungsaufgaben, die sich weitgehend parallelisieren lassen.
In zumindest manchen Ausführungsbeispielen kann das Berechnungsmodul ausgebildet sein, um eine Benachrichtigung über eine nicht- Verfügbarkeit des Fahrzeugs zum Berechnen der Teilaufgabe für die Zentralstelle bereitzustellen, falls die Vorrichtung deaktiviert wird, bevor die Teilaufgabe berechnet ist. Dies kann beispielsweise der Zentralstelle ermöglichen, die
Teilaufgabe einem weiteren Fahrzeug an Stelle des Fahrzeugs bereitzustellen.
In einigen Ausführungsbeispielen kann das Berechnungsmodul ausgebildet sein, um die Teilaufgabe basierend auf einer Architektur mit einer Instruktion für mehrere Datensätze (auch engl. Single Instruction, Multiple Data, SIMD) oder basierend auf einem Stream-Prozessor zu berechnen. SIMD-Architekturen oder Stream-Prozessoren können eine effizientere Berechnung von parallelisierbaren Datenverarbeitungsaufgaben ermöglichen.
In manchen Ausführungsbeispielen kann das Berechnungsmodul ferner ausgebildet sein, um über das Kommunikationsmodul mit ein oder mehreren weiteren Fahrzeugen zu kommunizieren zum Austausch von Ergebnissen von Teilaufgaben mit den ein oder mehreren weiteren
Fahrzeugen. Dies kann beispielsweise eine Nächste-Nachbarn-Kommunikation (auch engl. Nearest Neighbor Communication) ermöglichen zum effizienteren Lösen der Datenverarbeitung.
Ausführungsbeispiele schaffen ferner eine Vorrichtung für eine Zentralstelle. Die Vorrichtung umfasst ein Kommunikationsmodul, ausgebildet zur Kommunikation mit einer Mehrzahl von Fahrzeugen. Die Vorrichtung umfasst ferner ein Kontrollmodul, ausgebildet zum Steuern des Kommunikationsmoduls. Das Kontrollmodul ist ferner ausgebildet zum Bereitstellen von Teilaufgaben einer verteilten Datenverarbeitung für die Mehrzahl von Fahrzeugen für eine verteilte Berechnung der verteilten Datenverarbeitung. Das Kontrollmodul ist ferner ausgebildet zum Empfangen von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von Fahrzeugen. Das Kontrollmodul ist ferner ausgebildet zum Zusammenstellen der Ergebnisse der verteilten Datenverarbeitung basierend auf den (empfangenen) Ergebnissen der Teilaufgaben.
Das Berechnen der Teilaufgaben durch Fahrzeuge kann eine verteilte Bearbeitung der
Datenverarbeitung auf einer Vielzahl von Berechnungsmodulen ermöglichen, etwa zum
Bereitstellen von Rechenkapazität zum Lösen von Datenverarbeitungsaufgaben, die sich weitgehend parallelisieren lassen.
In zumindest manchen Ausführungsbeispielen kann das Kontrollmodul ausgebildet sein, um die Mehrzahl von Fahrzeugen aus einer Gruppe von Fahrzeugen auszuwählen. Das Auswählen eines auszuwählenden Fahrzeugs für die Mehrzahl der Fahrzeuge kann auf zumindest einem Element der Gruppe von Systemauslastung eines Berechnungsmoduls des auszuwählenden Fahrzeugs, Energiekapazität des auszuwählenden Fahrzeugs, Leistungsfähigkeit des
Berechnungsmoduls des auszuwählenden Fahrzeugs, Konnektivität des auszuwählenden Fahrzeugs, Position des auszuwählenden Fahrzeugs, voraussichtliche Verfügbarkeit des auszuwählenden Fahrzeugs für ein Berechnen einer Teilaufgabe, vorherige Verarbeitung einer Teilaufgabe durch das auszuwählende Fahrzeug und Priorisierung des auszuwählenden Fahrzeugs für Berechnungen basieren. Dies kann eine Verteilung der Teilaufgaben an
Fahrzeuge ermöglichen, die für die Datenverarbeitung zur Verfügung stehen, beispielsweise Aufgrund ihrer Fähigkeiten oder ihrer Verfügbarkeit
Beispielsweise kann das Kontrollmodul ausgebildet sein, um die Teilaufgaben mehrfach oder gegenseitig überlappend der Mehrzahl von Fahrzeugen bereitzustellen. Dadurch kann eine Redundanz bei der Bearbeitung von Teilaufgaben ermöglicht werden, die eine Zeit für die Bearbeitung der gesamten Datenverarbeitung über alle Teilaufgaben verringern kann.
Beispielsweise kann das Kontrollmodul ausgebildet sein, um Teilaufgaben, die nicht innerhalb eines Zeitfensters von einem Fahrzeug der Mehrzahl von Fahrzeugen berechnet werden, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen zum Berechnen bereitzustellen.
Beispielsweise kann das Kontrollmodul ausgebildet sein, um eine Teilaufgabe, die einem Fahrzeug bereitgestellt wurde, das zumindest vorübergehend nicht verfügbar ist, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen zum Berechnen bereitzustellen. Dadurch kann in manchen Fällen eine Gesamtdauer der Datenverarbeitung reduziert werden oder eine vollständige Bearbeitung ermöglicht werden.
In zumindest manchen Ausführungsbeispielen kann das Kontrollmodul ausgebildet sein, um zum Initiieren des Bereitstellens der Teilaufgaben für die Fahrzeuge der Mehrzahl von
Fahrzeugen die Fahrzeuge der Mehrzahl von Fahrzeugen zu kontaktieren (engl. Push-Prinzip). Dadurch kann eine aktive Verteilung der Teilaufgaben ermöglicht werden.
Alternativ oder zusätzlich kann das Kontrollmodul ausgebildet sein, um zum Initiieren des Bereitstellens einer Teilaufgabe für ein Fahrzeug der Mehrzahl von Fahrzeugen eine Anfrage des Fahrzeugs zu empfangen (engl. Pull-Prinzip). Dadurch können beispielsweise die
Fahrzeuge ihre Rechenkapazitäten zur Verfügung stellen, wenn sie für Berechnungen verfügbar sind.
Beispielsweise können die Teilaufgaben Instruktionen umfassen, die unabhängig von einer spezifischen Hardware-Architektur einer Berechnungseinheit eines Fahrzeugs der Mehrzahl von Fahrzeugen ausführbar sind, etwa in einer Zwischensprache (etwa einem Bytecode oder einem Code einer Programmiersprache für verteiltes Berechnen). Dies kann eine Modellübergreifende Berechnung der Teilaufgaben ermöglichen.
Ausführungsbeispiele schaffen ferner ein Verfahren für ein Fahrzeug. Das Verfahren umfasst Empfangen einer Teilaufgabe einer verteilten Datenverarbeitung von einer Zentralstelle. Das Verfahren umfasst ferner Berechnen der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe. Das Verfahren umfasst ferner Bereitstellen des Ergebnisses der Teilaufgabe für die Zentralstelle.
Ausführungsbeispiele schaffen ferner ein Verfahren für eine Zentralstelle. Das Verfahren umfasst Bereitstellen von Teilaufgaben einer verteilten Datenverarbeitung für eine Mehrzahl von Fahrzeugen für eine verteilte Berechnung einer verteilten Datenverarbeitung. Das Verfahren umfasst ferner Empfangen von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von Fahrzeugen. Das Verfahren umfasst ferner Zusammenstellen der Ergebnisse der verteilten Datenverarbeitung basierend auf den Ergebnissen der Teilaufgaben.
Ausführungsbeispiele schaffen ferner ein Programm mit einem Programmcode zum
Durchführen zumindest eines der Verfahren, wenn der Programmcode auf einem Computer, einem Prozessor, einem Kontrollmodul oder einer programmierbaren Hardwarekomponente ausgeführt wird.
Weitere vorteilhafte Ausgestaltungen werden nachfolgend anhand der in den Zeichnungen dargestellten Ausführungsbeispiele, auf welche Ausführungsbeispiele generell jedoch nicht insgesamt beschränkt sind, näher beschrieben. Es zeigen:
Fig. 1 zeigt ein Blockdiagramm einer Vorrichtung für ein Fahrzeug;
Fig. 1 a zeigt ein Flussdiagramm eines Verfahrens für ein Fahrzeug;
Fig. 2 zeigt ein Blockdiagramm einer Vorrichtung für eine Zentralstelle;
Fig. 2a zeigt ein Flussdiagramm eines Verfahrens für eine Zentralstelle
Fig. 3 zeigt ein Flussdiagramm eines beispielhaften Verfahrens für eine Zentralstelle; und
Fig. 4 zeigt ein Flussdiagramm eines Systems zum Berechnen einer Datenverarbeitung.
Verschiedene Ausführungsbeispiele werden nun ausführlicher unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen einige Ausführungsbeispiele dargestellt sind. In den Figuren können die Dickenabmessungen von Linien, Schichten und/oder Regionen um der Deutlichkeit Willen übertrieben dargestellt sein.
Bei der nachfolgenden Beschreibung der beigefügten Figuren, die lediglich einige
exemplarische Ausführungsbeispiele zeigen, können gleiche Bezugszeichen gleiche oder vergleichbare Komponenten bezeichnen. Ferner können zusammenfassende Bezugszeichen für Komponenten und Objekte verwendet werden, die mehrfach in einem Ausführungsbeispiel oder in einer Zeichnung auftreten, jedoch hinsichtlich eines oder mehrerer Merkmale gemeinsam beschrieben werden. Komponenten oder Objekte, die mit gleichen oder zusammenfassenden Bezugszeichen beschrieben werden, können hinsichtlich einzelner, mehrerer oder aller Merkmale, beispielsweise ihrer Dimensionierungen, gleich, jedoch gegebenenfalls auch unterschiedlich ausgeführt sein, sofern sich aus der Beschreibung nicht etwas anderes explizit oder implizit ergibt. Obwohl Ausführungsbeispiele auf verschiedene Weise modifiziert und abgeändert werden können, sind Ausführungsbeispiele in den Figuren als Beispiele dargestellt und werden hierin ausführlich beschrieben. Es sei jedoch klargestellt, dass nicht beabsichtigt ist,
Ausführungsbeispiele auf die jeweils offenbarten Formen zu beschränken, sondern dass Ausführungsbeispiele vielmehr sämtliche funktionale und/oder strukturelle Modifikationen, Äquivalente und Alternativen, die im Bereich der Erfindung liegen, abdecken sollen. Gleiche Bezugszeichen bezeichnen in der gesamten Figurenbeschreibung gleiche oder ähnliche Elemente.
Man beachte, dass ein Element, das als mit einem anderen Element„verbunden" oder „verkoppelt" bezeichnet wird, mit dem anderen Element direkt verbunden oder verkoppelt sein kann oder dass dazwischenliegende Elemente vorhanden sein können. Wenn ein Element dagegen als„direkt verbunden" oder„direkt verkoppelt" mit einem anderen Element bezeichnet wird, sind keine dazwischenliegenden Elemente vorhanden. Andere Begriffe, die verwendet werden, um die Beziehung zwischen Elementen zu beschreiben, sollten auf ähnliche Weise interpretiert werden (z.B.,„zwischen" gegenüber„direkt dazwischen",„angrenzend" gegenüber „direkt angrenzend" usw.).
Die Terminologie, die hierin verwendet wird, dient nur der Beschreibung bestimmter
Ausführungsbeispiele und soll die Ausführungsbeispiele nicht beschränken. Wie hierin verwendet, sollen die Singularformen„ einer,"„ eine",„eines " und„der, die, das" auch die Pluralformen beinhalten, solange der Kontext nicht eindeutig etwas anderes angibt. Ferner sei klargestellt, dass die Ausdrücke wie z.B.„beinhaltet",„beinhaltend",„aufweist",„umfasst", „umfassend" und/oder„aufweisend", wie hierin verwendet, das Vorhandensein von genannten Merkmalen, ganzen Zahlen, Schritten, Arbeitsabläufen, Elementen und/oder Komponenten angeben, aber das Vorhandensein oder die Hinzufügung von einem bzw. einer oder mehreren Merkmalen, ganzen Zahlen, Schritten, Arbeitsabläufen, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen.
Solange nichts anderes definiert ist, haben sämtliche hierin verwendeten Begriffe (einschließlich von technischen und wissenschaftlichen Begriffen) die gleiche Bedeutung, die ihnen ein Durchschnittsfachmann auf dem Gebiet, zu dem die Ausführungsbeispiele gehören, beimisst. Ferner sei klargestellt, dass Ausdrücke, z.B. diejenigen, die in allgemein verwendeten
Wörterbüchern definiert sind, so zu interpretieren sind, als hätten sie die Bedeutung, die mit ihrer Bedeutung im Kontext der einschlägigen Technik konsistent ist, und nicht in einem idealisierten oder übermäßig formalen Sinn zu interpretieren sind, solange dies hierin nicht ausdrücklich definiert ist.
Im Rahmen der immer stärkeren Durchdringung von Computertechnik im Rahmen der
Fahrzeugentwicklung steigt auch der Bedarf nach Rechenleistung. So werden einige
Fahrzeugsysteme mittlerweile mit rechenintensiven, maschinellen Lernverfahren entwickelt, um z.B. Bilderkennung zu ermöglichen. Aber auch die klassische Fahrzeugentwicklung kann z.B. im Rahmen von Computersimulationen zur Crashberechnung oder zur Modellierung von Strömungsverhalten leistungsstarke Computersysteme nutzen. Ein Bedarf an Rechenleistung in der Automobilentwicklung kann in manchen Szenarien vor allem auch durch die Forschung am automatischen Fahren weiterhin zunehmen, sodass die Frage entstehen kann, wie möglichst flexibel und kostengünstig diese Rechenleistung bereitgestellt werden kann.
In anderen Systemen kann versucht werden, die benötigte Rechenleistung über eine
Erweiterung/Neubau von Rechenzentren oder durch (gemietete) über das Internet
bereitgestellte Kapazität (etwa Cloud-Kapazität) zu lösen. Dabei kann ein Aufbau von
Rechenzentren mit hohen Kosten verbunden sein und kann es in manchen Fällen nicht ermöglichen, flexibel auf hohe Rechenleistungsanforderungen zu reagieren. Cloud-Kapazitäten können flexibler sein, können jedoch ebenfalls einen Aufbau von Rechenzentren benötigen, wenn die Cloud-Kapazität Firmenintern aufgebaut wird. Extern angemietete Cloud-Kapazitäten können eine höhere Flexibilität ermöglichen, können aber aus Sicht des Datenschutzes kritisch gesehen werden, da die notwendigen, teilweise geheimen Daten (z.B. Simulationsdaten) in manchen Szenarien an einen Drittanbieter überspielt werden können. Generell kann die Erweiterung um mehr Rechenleistung mit wesentlichen Kosten, vor allem für die Infrastruktur und den Betrieb, verbunden sein
Zumindest manche Ausführungsbeispiele schaffen ein Verfahren und System zur Nutzung von Fahrzeugen als verteilten Computer. Beispielsweise kann ein Fahrzeug als Compute Unit (Recheneinheit) aufgefasst werden. Dazu kann beispielsweise eine freie (verfügbare)
Rechenleistung von Steuergeräten, wie etwa eines Infotainmentsystems (Informations- und Unterhaltungssystem) oder von Fahrerassistenzsystemen, für Berechnungen zur Verfügung gestellt werden. Die Verbindung, über die die auszuführenden Berechnungen und die notwendigen Daten ausgetauscht werden, kann beispielsweise über einen mobilen Onlinedienst bereitgestellt werden. Eine Zentralstelle (die im Folgenden beispielsweise Telematic Service Provider (TSP), Telematikdienstanbieter, genannt werden kann) kann dabei eine Koordination zur Verteilung der Berechnung auf die Fahrzeuge und Aggregation der Ergebnisse ermöglichen.
In aktuellen Fahrzeugen kann in einigen Steuergeräten leistungsfähige, hoch parallelisierte Hardware verbaut sein (z.B. Tegra-Prozessoren in einem Modularen Infotainment Baukasten- System (MIB), Active Info Display-System (Aktiver Informationsbildschirm) oder einem zentralen Fahrassistenzsystem (zFAS)). Die Grundannahme von manchen Ausführungsbeispielen kann sein, dass die Steuergeräte selten voll ausgelastet sind und deshalb freie Ressourcen für weitere Berechnungen haben. Zudem können manche Fahrzeughersteller mobile Onlinedienste bereitstellen, in deren Rahmen das Infotainmentsystem (z.B. MIB) und/oder eine Online Connectivity Unit (OCU, Onlinekonnektivitätseinheit) mit einem TSP (z.B. Modularer
Backendbaukasten (MBB)) kommunizieren kann. Zudem kann es möglich sein, etwa der OCU über einen Job-Mechanismus mitzuteilen, bestimmte Aktionen auszulösen.
Beispielsweise kann in zumindest manchen Ausführungsbeispielen die Berechnung nicht auf dedizierter Computerhardware sondern in den Fahrzeugen durchgeführt werden. Zumindest manche Ausführungsbeispiele können darauf basieren, die in hunderttausenden, produzierten Fahrzeugen verfügbare Rechenleistung kostengünstig zur Verfügung zu stellen. Dabei muss in manchen Ausführungsbeispielen kein neues Rechenzentrum aufgebaut oder Cloudlösungen angemietet werden, da eine Programmverteilung, Berechnung und Ergebnisübermittlung beispielsweise über einen mobilen Onlinedienst abgewickelt werden kann, den der
Fahrzeugeigentümer aktivieren muss. Dabei können zumindest einige Ausführungsbeispiele ohne verteiltes Dateisystem, ein aufwändiges Sicherheitskonzept, etc. auskommen, sondern können sich darauf konzentrieren, eine hohe Anzahl an Recheneinheiten schnell und robust mit Programmen und Daten versorgen zu können. Gleichzeitig kann die Möglichkeit bestehen, Eigentümer der Fahrzeuge durch geeignete Anreize an diesem Dienst partizipieren zu lassen und somit auch die Stärkung von einer Vernetzung der Fahrzeuge zu erreichen. Beispielsweise kann die freie Rechenkapazität der Steuergeräte in Verbindung mit der Internetanbindung in Form eines„Compute Unit Onlinedienstes" (Recheneinheit-Onlinedienst) zur Verfügung zu stellen. Dafür kann es notwendig sein, dass der Nutzer diesen Compute Unit Onlinedienst aktiviert und sich mit dieser Nutzung einverstanden erklärt.
Die Fahrzeuge können in manchen Ausführungsbeispielen zwar keine hohe Verfügbarkeit aufweisen, können dafür sehr zahlreich sein und leistungsstarke, eingebettete Systeme aufweisen. Die Zentralstelle (etwa der TSP), die die Ressourcenallokation und Verteilung auf Fahrzeuge übernimmt, kann besonders darauf optimiert sein, mit Compute Units geringer Verfügbarkeit umzugehen
Fig. 1 zeigt ein Blockdiagramm einer Vorrichtung 10 für ein Fahrzeug 100. Die Vorrichtung 10 umfasst ein Kommunikationsmodul 12, ausgebildet zu einer Kommunikation mit einer
Zentralstelle 200. Die Vorrichtung umfasst ferner ein Berechnungsmodul 14, ausgebildet zum Steuern des Kommunikationsmoduls 12. Das Berechnungsmodul 14 ist ferner ausgebildet zum Empfangen einer Teilaufgabe einer verteilten Datenverarbeitung von der Zentralstelle 200, etwa über das Kommunikationsmodul 12. Das Berechnungsmodul 14 ist ferner ausgebildet zum Berechnen der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe. Das Berechnungsmodul 14 ist ferner ausgebildet zum Bereitstellen des Ergebnisses der Teilaufgabe für die Zentralstelle 200, etwa über das Kommunikationsmodul 12. Das Kommunikationsmodul 12 ist mit dem Berechnungsmodul 14 gekoppelt.
Ausführungsbeispiele schaffen ferner das Fahrzeug 100 mit der Vorrichtung 10 für das
Fahrzeug. Fig. 1 a zeigt ein Flussdiagramm eines entsprechenden Verfahrens für das Fahrzeug 100. Das Verfahren umfasst Empfangen 1 10 der Teilaufgabe der verteilten Datenverarbeitung von der Zentralstelle 200. Das Verfahren umfasst ferner Berechnen 120 der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten des Ergebnisses der Teilaufgabe. Das Verfahren umfasst ferner Bereitstellen 130 des Ergebnisses der Teilaufgabe für die Zentralstelle 200.
Beispielsweise kann die Datenverarbeitung einer parallelisierbaren Datenverarbeitung oder einer aufteilbaren Datenverarbeitung entsprechen. Beispielsweise kann die Datenverarbeitung einem verteilten Maschinenlern-Algorithmus oder einer Simulation entsprechen. Die
Datenverarbeitung kann beispielsweise eine Mehrzahl von Teilaufgaben umfassen. Eine Teilaufgabe der Datenverarbeitung kann beispielsweise ein von einem einzelnen
Berechnungsmodul ausführbarer Teil der Datenverarbeitung sein. Beispielsweise kann die Teilaufgabe Information über Instruktionen der Teilaufgabe und Information über Daten der Teilaufgabe umfassen. Die Instruktionen der Teilaufgabe können sich auf die Daten der Teilaufgabe beziehen. Beispielsweise können die Instruktionen der Teilaufgabe die Daten der Teilaufgabe verarbeiten. Die Information über die Instruktionen der Teilaufgabe kann
beispielsweise die Instruktionen der Teilaufgabe oder einen Verweis auf die Instruktionen der Teilaufgabe umfassen. Die Information über die Daten der Teilaufgabe kann beispielsweise die Daten der Teilaufgabe oder einen Verweis auf die Daten der Teilaufgabe umfassen. Das Berechnungsmodul 14 kann ausgebildet sein die Instruktionen der Teilaufgabe und/oder die Daten der Teilaufgabe basierend auf dem Verweis auf die Instruktionen oder dem Verweise auf die Daten abzurufen. Beziehen sich verschiedene Teilaufgaben auf die gleichen Daten und/oder die gleichen Instruktionen, so kann das Berechnungsmodul 14 ausgebildet sein, die Daten der Teilaufgabe und/oder die Instruktionen der Teilaufgabe vorzuhalten
(zwischenzuspeichern).
In zumindest manchen Ausführungsbeispielen kann die Teilaufgabe Instruktionen umfassen, die unabhängig von einer spezifischen Hardware-Architektur einer Berechnungseinheit eines Fahrzeugs (etwa eines Fahrzeugs einer Mehrzahl von Fahrzeugen 100a; 100b, wie in Fig. 2 eingeführt) ausführbar sind. Beispielsweise kann die Teilaufgabe auf einer
hardwareübergreifenden Sprache basieren, beispielsweise auf OpenCL (Open Computation Language, Offene Berechnungssprache) oder basierend auf CUDA. Alternativ kann die
Teilaufgabe auf einem Bytecode basieren, und das Berechnungsmodul 14 kann ausgebildet sein, den Bytecode der Teilaufgabe zu interpretieren.
Beispielsweise können die Teilaufgaben auf einem Framework basieren, über das
plattformunabhängig Programme geschrieben werden können, sodass Programme auf verschiedenen Steuergeräten laufen können. Durch die Verwendung von hochparallelen GPUs existiert so ein Framework häufig schon durch den Chiphersteller bzw. in Form einer unabhängigen API. In diesem Fall könnte dann das Fahrzeug selbst entscheiden, auf welchem Steuergerät die Berechnung durchgeführt werden soll. Alternativ könnte die URL (Uniform Resource Locator, Adresse), über die das Fahrzeug das Programm herunterlädt, auch steuergerätespezifisch sein, um die Ausführung auf unterschiedlichen Steuergeräten zu ermöglichen. Die Daten selbst können dagegen unabhängig davon sein, die Daten können beispielsweise so gespeichert werden, dass alle Steuergeräte im Fahrzeug darauf schnell zugreifen können.
Das Berechnungsmodul 14 kann beispielsweise zwei oder mehr Kerne oder Recheneinheiten umfassen. Beispielsweise kann das Berechnungsmodul einen Prozessor mit ein oder mehreren Kernen für allgemeine Berechnungen und einen Prozessor mit ein oder mehreren
Kernen/Recheneinheiten für spezialisierte Berechnungen (etwa Grafikberechnungen) umfassen. Beispielsweise kann das Berechnungsmodul eine Architektur mit einer Instruktion für mehrere Datensätze oder einen Stream-Prozessor umfassen, die die Recheneinheiten für spezialisierte Berechnungen umfassen. In zumindest manchen Ausführungsbeispielen kann das Berechnungsmodul 14 ausgebildet sein, das Berechnen des Ergebnisses der Teilaufgabe zumindest teilweise (oder ganz) auf den Recheneinheiten für spezialisierte Berechnungen durchzuführen. Beispielsweise kann das Berechnungsmodul 14 ausgebildet sein, um die Teilaufgabe basierend auf der Architektur mit einer Instruktion für mehrere Datensätze oder basierend auf dem Stream-Prozessor zu berechnen. In zumindest manchen
Ausführungsbeispielen kann das Berechnungsmodul 14 ausgebildet sein, das Ergebnis der Teilaufgabe mit einer niedrigen Priorität (beispielsweise einer Leerlauf (auch engl. ldle)-Priorität zu berechnen. Da der Hauptzweck der Steuergeräte in Fahr- oder Komfortfunktionen liegt, kann die Berechnung des Programms in zumindest manchen Ausführungsbeispielen nicht diese Funktionalitäten einschränken. Deshalb kann die Berechnung mit einer Idle-Priorität laufen, sodass sie von regulären Berechnungen schnell verdrängt werden können.
In zumindest manchen Ausführungsbeispielen kann das Berechnungsmodul 14 ausgebildet sein, um eine Benachrichtigung über eine nicht-Verfügbarkeit des Fahrzeugs 100 zum
Berechnen der Teilaufgabe für die Zentralstelle 200 bereitzustellen, falls die Vorrichtung 10 deaktiviert wird, bevor die Teilaufgabe berechnet ist. Beispielsweise kann das
Berechnungsmodul 14 ausgebildet sein, eine Benachrichtigung über eine Verfügbarkeit des Fahrzeugs 100 zum Berechnen der Teilaufgabe für die Zentralstelle 200 bereitzustellen, und ein ausbleiben der Nachricht für über die Verfügbarkeit kann die (Benachrichtigung über die) nichtVerfügbarkeit des Fahrzeugs zum Berechnen indizieren. Alternativ kann das
Berechnungsmodul 14 ausgebildet sein, vor einem Deaktivieren der Vorrichtung 10 oder wenn ein Deaktivieren der Vorrichtung 10 vor Beendigung des Berechnens der Ergebnisses der Teilaufgabe absehbar ist die Benachrichtigung über die nicht-Verfügbarkeit des Fahrzeugs 100 der Zentralstelle bereitzustellen.
Beispielsweise kann ein Fahrzeug regelmäßig einen Heartbeat (Herzschlag) senden, um dem TSP zu verdeutlichen, dass es noch verfügbar ist. Dieser Heartbeat könnte auch ergänzt werden mit weiteren Informationen, wie z.B. bisher aufgewendete CPU-Zeit. Dies könnte es dem TSP dann ermöglichen, weitere Fahrzeuge auszuwählen, falls ein Fahrzeug nicht mehr verfügbar ist oder falls es aufgrund seiner regulären Funktionsweise keine Rechenleistung für die übertragene Aufgabe aufwenden kann. Die Zentralstelle kann beispielsweise ausgebildet sein zur Ressourcenallokation, d.h. Zuweisen von Berechnungen zu Fahrzeugen und der Neuplanung, wenn ausgewählte Fahrzeuge plötzlich nicht mehr verfügbar sind. Die
Zentralstelle kann ausgebildet sein, die Gesamtverfügbarkeit über die hohe Zahl der verfügbaren Fahrzeuge zu erreichen.
In zumindest manchen Ausführungsbeispielen kann das Berechnungsmodul 14 ferner ausgebildet sein, um über das Kommunikationsmodul 12 mit ein oder mehreren weiteren Fahrzeugen zu kommunizieren zum Austausch von Ergebnissen von Teilaufgaben mit den ein oder mehreren weiteren Fahrzeugen. Beispielsweise kann das Berechnungsmodul 14 ausgebildet sein, um über Nächste-Nachbarn-Kommunikation mit Fahrzeugen in einer Umgebung des Fahrzeugs zu kommunizieren, beispielsweise über direkte Fahrzeug-zuFahrzeug-Kommunikation (auch engl. Car-2-Car-Communication) oder über
Frequenzressourcen eines mobilen Kommunikationssystems, beispielsweise über eine Basisstation oder mit Zuweisung der Frequenzressourcen durch eine Basisstation. Das Kommunikationsmodul 12 kann beispielsweise ausgebildet sein, über zumindest ein mobiles Kommunikationssystem der Gruppe von Global System for Mobile telecommunications (GSM), General Packet Radio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), Universal Mobile Telecommunication System (UMTS), Long Term Evolution, und ein
Mobilfunksystem der 5. Generation (5G) zu kommunizieren.
In einer beispielhaften Implementierung kann der Job im Fahrzeug (beispielsweise im
Berechnungsmodul 14) auslösen, über eine fahrzeugspezifische URL von einem TSP das abzuarbeitende Programm und die dafür benötigten Daten abzufragen und herunterzuladen. Idealerweise können dabei (nur) die Daten mitgeschickt werden, die für die Berechnung notwendig sind, um zu vermeiden, dass ein kompromittiertes Fahrzeug an vertrauliche oder geheime Daten kommt. Beispielsweise kann die Berechnung (etwa des Ergebnisses der Teilaufgabe durch das Berechnungsmodul 14) anschließend durchgeführt werden.
Das Kommunikationsmodul 12 (und/oder ein Kommunikationsmodul 22 aus Fig. 2) kann beispielsweise einem oder mehreren Eingängen und/oder einem oder mehreren Ausgängen zum Empfangen und/oder Übertragen von Informationen entsprechen, etwa in digitalen Bitwerten, basierend auf einem Code, innerhalb eines Moduls, zwischen Modulen, oder zwischen Modulen verschiedener Entitäten. Beispielsweise kann das Kommunikationsmodul 12 ausgebildet sein, über ein mobiles Kommunikationsnetzwerk mit der Zentralstelle zu kommunizieren, beispielsweise über eine interne Verbindung (Fahrzeugherstellerspezifische Verbindung, Intranet) oder über das Internet. Das Kommunikationsmodul 22 kann ausgebildet sein, über das mobile Kommunikationsnetzwerk mit dem Fahrzeug 100 zu kommunizieren, beispielsweise über die interne Verbindung oder über das Internet.
In Ausführungsbeispielen kann das Berechnungsmodul 14 einem beliebigen Controller oder Prozessor oder einer programmierbaren Hardwarekomponente entsprechen. Beispielsweise kann das Berechnungsmodul 14 auch als Software realisiert sein, die für eine entsprechende Hardwarekomponente programmiert ist. Insofern kann das Berechnungsmodul 14 als programmierbare Hardware mit entsprechend angepasster Software implementiert sein. Dabei können beliebige Prozessoren, wie Digitale Signalprozessoren (DSPs) zum Einsatz kommen. Ausführungsbeispiele sind dabei nicht auf einen bestimmten Typ von Prozessor eingeschränkt. Es sind beliebige Prozessoren oder auch mehrere Prozessoren zur Implementierung des Berechnungsmoduls 14 denkbar.
Die Zentralstelle 200 kann beispielsweise einer Zentralstelle entsprechen, wie sie in
Zusammenhang mit Fig. 2 beschrieben wird. In zumindest manchen Ausführungsbeispielen könnte das Fahrzeug 100 beispielsweise einem Landfahrzeug, einem Wasserfahrzeug, einem Luftfahrzeug, einem Schienenfahrzeug, einem Straßenfahrzeug, einem Auto, einem
Geländefahrzeug, einem Kraftfahrzeug, oder einem Lastkraftfahrzeug entsprechen.
Fig. 2 zeigt ein Blockdiagramm einer Vorrichtung 20 für eine Zentralstelle 200. Die Vorrichtung 20 umfasst ein Kommunikationsmodul 22, ausgebildet zur Kommunikation mit einer Mehrzahl von Fahrzeugen 100a; 100b. Die Mehrzahl von Fahrzeugen kann beispielsweise ein oder mehrere Fahrzeuge umfassen, wie sie in Zusammenhang mit Fig. 1 eingeführt werden. Die Vorrichtung 20 umfasst ferner ein Kontrollmodul 24, ausgebildet zum Steuern des
Kommunikationsmoduls 22. Das Kontrollmodul 24 ist ferner ausgebildet zum Bereitstellen von Teilaufgaben einer verteilten Datenverarbeitung für die Mehrzahl von Fahrzeugen 100a; 100b für eine verteilte Berechnung der verteilten Datenverarbeitung, etwa über das
Kommunikationsmodul 22. Das Kontrollmodul 24 ist ferner ausgebildet zum Empfangen von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von
Fahrzeugen 100a; 100b, etwa über das Kommunikationsmodul 22. Das Kontrollmodul 24 ist ferner ausgebildet zum Zusammenstellen der Ergebnisse der verteilten Datenverarbeitung basierend auf den Ergebnissen der Teilaufgaben. Das Kommunikationsmodul 22 ist mit dem Kontrollmodul 24 gekoppelt. Ausführungsbeispiele schaffen ferner die Zentralstelle 200 umfassend die Vorrichtung 20 für die Zentralstelle. Fig. 2a zeigt ein entsprechendes Verfahren für die Zentralstelle 200. Das Verfahren umfasst Bereitstellen 210 der Teilaufgaben der verteilten Datenverarbeitung für die Mehrzahl von Fahrzeugen 100a; 100b für die verteilte Berechnung der verteilten Datenverarbeitung. Das Verfahren umfasst ferner Empfangen 220 von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von Fahrzeugen 100a; 100b. Das Verfahren umfasst ferner Zusammenstellen 230 der Ergebnisse der verteilten Datenverarbeitung basierend auf den Ergebnissen der Teilaufgaben.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, zum Bereitstellen der Teilaufgaben für die Mehrzahl von Fahrzeugen die Teilaufgaben der Mehrzahl von Fahrzeugen aktiv zu schicken (Push) oder die Teilaufgaben auf Abruf für die Mehrzahl von Fahrzeugen
bereitzustellen (Pull). Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um zum Initiieren des Bereitstellens der Teilaufgaben für die Fahrzeuge der Mehrzahl von Fahrzeugen 100a; 100b die Fahrzeuge der Mehrzahl von Fahrzeugen zu kontaktieren. Alternativ oder zusätzlich kann das Kontrollmodul 24 ausgebildet sein, zum Initiieren des Bereitstellens einer Teilaufgabe für ein Fahrzeug der Mehrzahl von Fahrzeugen 100a; 100b eine Anfrage des Fahrzeugs zu empfangen. Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, eine adressbasierte Schnittstelle für die Mehrzahl von Fahrzeugen bereitzustellen. Beispielsweise kann die adressbasierte Schnittstelle auf einen Webserver oder auf einen Dateiserver der Vorrichtung 20 oder der Zentralstelle 200 verweisen, der die Teilaufgaben umfasst.
In einem beispielhaften Ausführungsbeispiel könnte jedes Fahrzeug Teil eines großen, verteilten Dateisystems (engl. Distributed File System, DFS) sein, in dem die zu verarbeitenden Daten sowie die Ergebnisse gespeichert sind.
In einem weiteren Ausführungsbeispiel könnte die zur Verteilung von Programmen, den Daten, zur Ressourcenallokation sowie zur Berechnung eingesetzte Software über das Hadoop- Ökosystem abgebildet werden. Alternativ kann ein schlankeres, ressourcenschonenderes verteiltes Softwaresystem zum Bereitstellen der Teilaufgaben und/oder Empfangen der Ergebnisse der Teilaufgaben genutzt werden.
In einem weiteren beispielhaften Ausführungsbeispiel könnte der TSP den Fahrzeugen nicht nur eine fahrzeugspezifische URL (Adresse der adressbasierte Schnittstelle) bereitstellen, unter der sie das Programm und die Daten herunterladen, sondern der TSP könnte das Programm und die Daten direkt ins Fahrzeug pushen (aktiv bereitstellen). Weiterhin kann in manchen Ausführungsbeispielen das Fahrzeug selbst entscheiden, wann es den Download durchführt, um zum Beispiel einen Streckenabschnitt mit guter Mobilfunkabdeckung abzuwarten.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, zum Empfangen der Ergebnisse der Teilaufgaben eine adressbasierte Schnittstelle für die Mehrzahl von Fahrzeugen
bereitzustellen. Beispielsweise kann die adressbasierte Schnittstelle auf einen Webserver oder auf einen Dateiserver der Vorrichtung 20 oder der Zentralstelle 200 verweisen mit Möglichkeit zum Ablegen der Ergebnisse der Teilaufgaben für die Mehrzahl von Fahrzeugen. Alternativ kann das Kontrollmodul 24 ausgebildet sein, um direkte Datenübertragungen mit den
Ergebnissen für die Teilaufgaben von der Mehrzahl von Fahrzeugen zu empfangen.
In zumindest manchen Ausführungsbeispielen kann das Kontrollmodul 24 ausgebildet sein, um die Mehrzahl von Fahrzeugen 100a; 100b aus einer Gruppe von Fahrzeugen auszuwählen. Beispielsweise kann das Kontrollmodul 24 eine Datensammlung, beispielsweise eine
Datenbank oder eine sortierte oder unsortierte Gruppe, mit Information über die Gruppe von Fahrzeugen umfassen. Beispielsweise kann das Auswählen eines auszuwählenden Fahrzeugs für die Mehrzahl der Fahrzeuge auf zumindest einem Element der Gruppe von
Systemauslastung eines Berechnungsmoduls des auszuwählenden Fahrzeugs,
Energiekapazität des auszuwählenden Fahrzeugs, Leistungsfähigkeit des Berechnungsmoduls des auszuwählenden Fahrzeugs, Konnektivität des auszuwählenden Fahrzeugs, Position des auszuwählenden Fahrzeugs, voraussichtliche Verfügbarkeit des auszuwählenden Fahrzeugs für ein Berechnen einer Teilaufgabe, vorherige Verarbeitung einer Teilaufgabe durch das auszuwählende Fahrzeug und Priorisierung des auszuwählenden Fahrzeugs für Berechnungen basieren.
Beispielsweise kann die Datensammlung zumindest ein Element der Gruppe von Information über die Systemauslastung des Berechnungsmoduls des auszuwählenden Fahrzeugs, Information über die Energiekapazität des auszuwählenden Fahrzeugs, Information über die Leistungsfähigkeit des Berechnungsmoduls des auszuwählenden Fahrzeugs, Information über die Konnektivität des auszuwählenden Fahrzeugs (etwa zum Bevorzugen von auszuwählenden Fahrzeugen mit einer größeren Übertragungsgeschwindigkeit), Information über die Position des auszuwählenden Fahrzeugs (etwa für Nächste-Nachbarn-Kommunikation), Information über die voraussichtliche Verfügbarkeit des auszuwählenden Fahrzeugs für das Berechnen der Teilaufgabe, Information über die vorherige Verarbeitung einer Teilaufgabe durch das auszuwählende Fahrzeug und Information über die Priorisierung des auszuwählenden
Fahrzeugs für Berechnungen.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um zumindest ein Element der Gruppe von Information über die Systemauslastung des Berechnungsmoduls des
auszuwählenden Fahrzeugs, Information über die Energiekapazität des auszuwählenden Fahrzeugs, Information über die Leistungsfähigkeit des Berechnungsmoduls des
auszuwählenden Fahrzeugs, Information über die Konnektivität des auszuwählenden
Fahrzeugs, Information über die Position des auszuwählenden Fahrzeugs, Information über die voraussichtliche Verfügbarkeit des auszuwählenden Fahrzeugs für das Berechnen der Teilaufgabe, Information über die vorherige Verarbeitung einer Teilaufgabe durch das auszuwählende Fahrzeug und Information über die Priorisierung des auszuwählenden
Fahrzeugs für Berechnungen von der Mehrzahl von Fahrzeugen für die Datensammlung zu Empfangen und in der Datensammlung zu speichern. Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um Information über eine
Aktivierung der Vorrichtung 10 für ein Fahrzeug von der Mehrzahl von Fahrzeugen zu erhalten. Die Information über die Aktivierung der Vorrichtung 10 für ein Fahrzeug kann beispielsweise Information über eine Einwilligung eines Halters des Fahrzeugs zum Berechnen von
Teilaufgaben umfassen. Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um das Auswählen des Fahrzeugs auf der Information über die Aktivierung des Fahrzeugs zu basieren. Das Berechnungsmodul 14 kann ausgebildet sein, die Information über die
Aktivierung bereitzustellen.
Für die Auswahl der Fahrzeuge, die eine Aufgabe abarbeiten sollen, können beispielsweise verschiedene Strategien genutzt werden. Wesentlich kann sein, dass (lediglich) Fahrzeuge ausgewählt werden, für die der Compute Unit Dienst aktiviert ist. Dafür kann der TSP in zumindest manchen Ausführungsbeispielen eine Datenbank (Datensammlung) mit nutzbaren Fahrzeugen umfassen, die auch weitere Zusatzinformationen umfassen kann.
Auswahlstrategien können beispielsweise sein:
Fahrzeugen können regelmäßig die aktuelle Systemauslastung ihrer relevanten
Steuergeräte melden, der TSP kann bevorzugt dann die Fahrzeuge, die zuletzt eine geringe Systemauslastung gemeldet haben, auswählen
Fahrzeuge können Informationen zu ihrer derzeitigen Energiekapazität schicken, sodass etwa Elektrofahrzeuge mit einer verbleibenden, geringen Reichweite nicht aufwendige Berechnungen durchführenden müssen
Die Auswahl kann beispielsweise anhand der verfügbaren Hardware, z.B. durch
Bevorzugung leistungsfähigerer Steuergeräte, erfolgen
Die Auswahl kann anhand der Konnektivität erfolgen, beispielsweise durch Bevorzugung von Fahrzeugen, die via WLAN (Wireless Local Area Network, Kabelloses lokales Netzwerk) angebunden sind oder eine gemessene, schnelle Verbindung mit geringer Latenz haben
Die Auswahl von Fahrzeugen kann anhand ihres per GPS bestimmten Standortes in Kombination mit einer digitalen Karte erfolgen, die die GPS-Position auf die
Mobilfunkabdeckung abbildet
Es können die Fahrzeuge ausgewählt werden, bei denen die Wahrscheinlichkeit hoch ist, dass sie noch einige Zeit online sind (z.B. weil sie gerade an der Steckdose geladen werden oder das Navigationssystem noch eine lange Restfahrzeit meldet)
Es können auch die Fahrzeuge bevorzugt werden, die aufgrund einer vorherigen
Aufgabe schon einen Teil der zu verarbeitenden Daten besitzen Fahrzeuge könnten durch Flags (Markierungen) priorisiert werden, um etwa Versuchsträger oder im Rahmen von Boni bevorzugte Fahrzeuge häufiger zu wählen
Die Auswahl kann auch durch einen„Round Robin" Ansatz (Rundlauf-Verfahren)
erfolgen, d.h. jedes Fahrzeug wird irgendwann mal ausgewählt, um nicht immer dieselben Fahrzeuge auszuwählen
Beispielsweise kann auch eine Kombination mehrerer Strategien genutzt werden.
Beispielsweise kann die Aufgabe (Datenverarbeitung) selbst die Unterteilung des Programms (in Teilaufgaben) vorgeben, sodass sich der TSP nicht selbst darum kümmern muss, das Programm zu parallelisieren. In manchen Ausführungsbeispielen kann die Aufgabe
Anforderungen hinsichtlich der Anzahl der erforderlichen Compute Units stellen, der TSP kann die erforderliche Anzahl von Fahrzeugen auswählen. Da es sich bei den Fahrzeugen aber um Compute Units mit geringer Verfügbarkeit (z.B. aufgrund von instabiler Netzwerkverbindung, plötzlich höheren Lastanforderungen der Steuergeräte) handeln kann, kann beispielsweise eine größere Anzahl an Fahrzeugen ausgewählt werden, um den„Ausfall" von Compute Units (schneller) zu kompensieren. So könnte entweder jede einzelne Berechnungsaufgabe
(Teilaufgabe) und die zugehörigen Daten mehrfach verteilt werden oder es kann eine Logik eingesetzt werden, die die kritischen Berechnungsaufgaben auswählt (z.B. solche die besonders viele Daten verarbeiten), um diese redundant berechnen zu lassen. Weiterhin kann die Mehrfachverteilung auch bei stochastisch geprägten Berechnungen genutzt werden, um so parallel mehrere Variationen zu berechnen und gleichzeitig eine Redundanz durch mehrfache Berechnung durch unterschiedliche Fahrzeuge zu haben.
Sind die Fahrzeuge ausgewählt, kann der TSP einen Job an diese Fahrzeuge senden.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, das Bereitstellen der Teilaufgaben auf das Auswählen der Fahrzeuge für die Mehrzahl von Fahrzeugen zu basieren.
Weiterhin kann der TSP über den Job-Mechanismus auch das Abbrechen der Berechnung einer Aufgabe anstoßen. Das Kontrollmodul 24 kann ausgebildet sein, um Information über ein Abbrechen der Berechnung für die Mehrzahl von Fahrzeugen bereitzustellen.
In zumindest manchen Ausführungsbeispielen kann das Kontrollmodul 24 ausgebildet sein, um die Teilaufgaben mehrfach oder gegenseitig überlappend der Mehrzahl von Fahrzeugen 100a; 100b bereitzustellen. Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um eine Teilmenge von rechenintensiven oder besonders relevanten Teilaufgaben mehrfach der Mehrzahl von Fahrzeugen bereitzustellen. Alternativ oder zusätzlich kann das Kontrollmodul 24 ausgebildet sein, jedem Fahrzeug der Mehrzahl von Fahrzeugen mehrere Teilaufgaben bereitzustellen, und jede Teilaufgabe an mehr als ein Fahrzeug bereitzustellen.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um Teilaufgaben, die nicht innerhalb eines Zeitfensters von einem Fahrzeug der Mehrzahl von Fahrzeugen 100a; 100b berechnet werden, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen 100a; 100b zum Berechnen bereitzustellen. Beispielsweise kann das Zeitfenster zumindest 20% länger (oder zumindest 50% länger, zumindest 100% länger) als eine durchschnittliche Berechnungsdauer der Teilaufgaben sein.
Alternativ oder zusätzlich kann das Kontrollmodul 24 ausgebildet sein, um eine Teilaufgabe, die einem Fahrzeug bereitgestellt wurde, das zumindest vorübergehend nicht verfügbar ist, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen 100a; 100b zum Berechnen bereitzustellen, beispielsweise basierend auf einem Heartbeat oder basierend auf eine Benachrichtigung über eine Verfügbarkeit/nicht-Verfügbarkeit eines Fahrzeugs zum Berechnen. Das Kontrollmodul 24 kann ausgebildet sein, Information über den Heartbeat oder die Benachrichtigung über die Verfügbarkeit/nicht-Verfügbarkeit des Fahrzeugs zum Berechnen von Fahrzeugen der Mehrzahl von Fahrzeugen zu empfangen.
Nachdem ein Fahrzeug seine Berechnung abgeschlossen hat, kann es ausgebildet sein die Ergebnisse an die URL des Compute Unit Dienstes zu senden. Der TSP kann anhand der ebenfalls verfügbaren Fahrzeuginformationen wissen, welche Arbeitspakete abgearbeitet worden sind. Sobald für alle Arbeitspakete eine Rückmeldung vorliegt, kann er diese
zusammenstellen an das Computersystem zur Aufgabeneinspeisung weiter, das dann wiederum die Aggregation der Daten zu einem Gesamtergebnis vornimmt bzw. vornehmen lässt. In einem weiteren Ausführungsbeispiel könnte der TSP die Ergebnisse für das
Zusammenstellen selbst aggregieren bevor er diese an das Computersystem zur
Aufgabeneinspeisung weiterreicht.
Beispielsweise kann das Kontrollmodul 24 ausgebildet sein, um zum Zusammenstellen der Ergebnisse die Ergebnisse in eine Datenstruktur zu speichern und die Datenstruktur
bereitzustellen. Alternativ kann das Kontrollmodul 24 ausgebildet sein, um zum
Zusammenstellen der Ergebnisse einen Inhalt der Ergebnisse in ein vorgegebenen Format zu aggregieren. Beispielsweise können die zusammengestellten Ergebnisse nicht die
Empfangenen Ergebnisse umfassen. Die Zentralstelle 200 kann beispielsweise einem Server, einer Rechnerarchitektur, einer Rechnerinfrastruktur, einer virtuellen Serverinstanz oder einem Rechenzentrum entsprechen.
In Ausführungsbeispielen kann die Kontrolleinrichtung bzw. das Kontrollmodul 24 einem beliebigen Controller oder Prozessor oder einer programmierbaren Hardwarekomponente entsprechen. Beispielsweise kann das Kontroll-Modul 24 auch als Software realisiert sein, die für eine entsprechende Hardwarekomponente programmiert ist. Insofern kann das
Kontrollmodul 24 als programmierbare Hardware mit entsprechend angepasster Software implementiert sein. Dabei können beliebige Prozessoren, wie Digitale Signalprozessoren (DSPs) zum Einsatz kommen. Ausführungsbeispiele sind dabei nicht auf einen bestimmten Typ von Prozessor eingeschränkt. Es sind beliebige Prozessoren oder auch mehrere Prozessoren zur Implementierung des Kontrollmoduls 24 denkbar.
Mehr Details und Aspekte der Vorrichtung 20 und des Verfahrens für die Zentralstelle werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher (z.B. Fig. 1 bis 1 a) beschrieben wurden. Das Verfahren und/oder die Vorrichtung 20 kann bzw. können ein oder mehrere zusätzliche optionale Merkmale umfassen, die ein oder mehreren Aspekten des vorgeschlagenen Konzepts oder der beschriebenen Beispiele entsprechen, wie sie vorher oder nachher beschrieben wurden.
Fig. 3 zeigt ein Flussdiagramm eines Verfahrens für eine Zentralstelle. Beispielsweise kann die Zentralstelle (TSP) einen Auftrag (auch engl. Job) zur Berechnung (einer Datenverarbeitung erhalten (310). Das TSP kann die zu nutzenden Fahrzeuge bestimmen und Daten und
Algorithmus verteilen (320). Ferner kann das TSP die Ergebnisse von den Fahrzeugen einsammeln und dem Anfragenden zurückgeben (330).
Mehr Details und Aspekte des Verfahrens werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher (z.B. Fig. 1 bis 2a) beschrieben wurden. Das Verfahren kann ein oder mehrere zusätzliche optionale Merkmale umfassen, die ein oder mehreren Aspekten des vorgeschlagenen Konzepts oder der beschriebenen Beispiele entsprechen, wie sie vorher oder nachher beschrieben wurden.
Fig. 4 zeigt ein Flussdiagramm eines Systems zum Berechnen einer Datenverarbeitung durch eine Mehrzahl von Fahrzeugen. Das System umfasst ein Fahrzeug 100 mit leistungsfähigen Steuergeräten und einer Internetanbindung. Das System umfasst ferner ein Backend (Zentralstelle) 200, das mit einer Datenbank 420 mit Fahrzeuginformationen (Datensammlung) gekoppelt ist. Das System umfasst ferner ein Computersystem 410 zur Aufgaben-Einspeisung.
Über das Computersystem 410, etwa ein Portal, eine Datenbank, etc. können über eine
Schnittstelle (etwa das Kommunikationsmodul 22) Aufgaben (etwa Datenverarbeitungen) an den TSP geschickt werden (Aufgabeneinspeisung). Die Zentralstelle 200 kann ausgebildet sein, um Information über die Datenverarbeitung von dem Computersystem zu erhalten. Die
Aufgaben können parallelisierbar sein, etwa durch Nutzung des Map-Reduce- Programmierparadigmas (Abbilden-Reduzieren-Programmierparadigma) und rechenaufwendig, dazu aber relativ wenige Daten benötigen. Zwar kann auch mit einer größeren Datenmenge gearbeitet werden, jedoch kann die Übertragung aufgrund der Internetanbindung via Mobilfunk oder WLAN mehr Zeit benötigen, als es bei klassischen Computerclustern der Fall ist.
Zusätzlich kann die Aufgabe (etwa die Datenverarbeitung) auch weitere Informationen umfassen, z.B. eine Priorität oder die Anzahl benötigter Compute Units, wobei hierfür auch ein Quota-System genutzt werden kann. Der TSP kann diese Aufgabe unter einer ID
(Identifikationsnummer) speichern und kann Ressourcen allokieren.
In einem beispielhaften Ausführungsbeispiel stellt das Computersystem 410 dem Backend 200 das Programm und zu verarbeitende Daten (die Datenverarbeitung) bereit. Das Backend ruft mögliche Fahrzeuge (als Compute Unit) von der Daten 420 ab und stellt basierend darauf einer Mehrzahl von Fahrzeugen, beispielsweise dem Fahrzeug 100 einen Job zum Abruf von
Programm und Daten bereit. Das Fahrzeug 100 berechnet das Programm und stellt Ergebnisse des Programms (das Ergebnis der Teilaufgabe) dem Backend 200 bereit. Das Backend 200 stellt dem Computersystem 410 die Ergebnisse aller Fahrzeuge (Compute Units) bereit.
Mehr Details und Aspekte des Systems werden in Verbindung mit dem Konzept oder Beispielen genannt, die vorher (z.B. Fig. 1 bis 3) beschrieben wurden. Das System kann ein oder mehrere zusätzliche optionale Merkmale umfassen, die ein oder mehreren Aspekten des
vorgeschlagenen Konzepts oder der beschriebenen Beispiele entsprechen, wie sie vorher oder nachher beschrieben wurden.
Ein weiteres Ausführungsbeispiel ist ein Computerprogramm zur Durchführung zumindest eines der oben beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer, einem Prozessor oder einer programmierbaren Hardwarekomponente abläuft. Ein weiteres
Ausführungsbeispiele ist auch ein digitales Speichermedium, das maschinen- oder
computerlesbar ist, und das elektronisch lesbare Steuersignale aufweist, die mit einer programmierbaren Hardwarekomponente so zusammenwirken können, dass eines der oben beschriebenen Verfahren ausgeführt wird.
Die in der vorstehenden Beschreibung, den nachfolgenden Ansprüchen und den beigefügten Figuren offenbarten Merkmale können sowohl einzeln wie auch in beliebiger Kombination für die Verwirklichung eines Ausführungsbeispiels in ihren verschiedenen Ausgestaltungen von Bedeutung sein und implementiert werden.
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein
entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein
Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-Ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einer programmierbaren Hardwarekomponente derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird.
Eine programmierbare Hardwarekomponente kann durch einen Prozessor, einen
Computerprozessor (CPU = Central Processing Unit), einen Grafikprozessor (GPU = Graphics Processing Unit), einen Computer, ein Computersystem, einen anwendungsspezifischen integrierten Schaltkreis (ASIC = Application-Specific Integrated Circuit), einen integrierten Schaltkreis (IC = Integrated Circuit), ein Ein-Chip-System (SOC = System on Chip), ein programmierbares Logikelement oder ein feldprogrammierbares Gatterarray mit einem Mikroprozessor (FPGA = Field Programmable Gate Array) gebildet sein.
Das digitale Speichermedium kann daher maschinen- oder computerlesbar sein. Manche Ausführungsbeispiele umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem oder einer programmierbare Hardwarekomponente derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird. Ein Ausführungsbeispiel ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das
Programm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Programm, Firmware, Computerprogramm oder Computerprogrammprodukt mit einem Programmcode oder als Daten implementiert sein, wobei der Programmcode oder die Daten dahin gehend wirksam ist bzw. sind, eines der Verfahren durchzuführen, wenn das Programm auf einem Prozessor oder einer programmierbaren Hardwarekomponente abläuft. Der Programmcode oder die Daten kann bzw. können beispielsweise auch auf einem maschinenlesbaren Träger oder Datenträger
gespeichert sein. Der Programmcode oder die Daten können unter anderem als Quellcode, Maschinencode oder Bytecode sowie als anderer Zwischencode vorliegen.
Ein weiteres Ausführungsbeispiel ist ferner ein Datenstrom, eine Signalfolge oder eine Sequenz von Signalen, der bzw. die das Programm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom, die Signalfolge oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, um über eine Datenkommunikationsverbindung, beispielsweise über das Internet oder ein anderes Netzwerk, transferiert zu werden. Ausführungsbeispiele sind so auch Daten repräsentierende
Signalfolgen, die für eine Übersendung über ein Netzwerk oder eine
Datenkommunikationsverbindung geeignet sind, wobei die Daten das Programm darstellen.
Ein Programm gemäß einem Ausführungsbeispiel kann eines der Verfahren während seiner Durchführung beispielsweise dadurch umsetzen, dass dieses Speicherstellen ausliest oder in diese ein Datum oder mehrere Daten hinein schreibt, wodurch gegebenenfalls Schaltvorgänge oder andere Vorgänge in Transistorstrukturen, in Verstärkerstrukturen oder in anderen elektrischen, optischen, magnetischen oder nach einem anderen Funktionsprinzip arbeitenden Bauteile hervorgerufen werden. Entsprechend können durch ein Auslesen einer Speicherstelle Daten, Werte, Sensorwerte oder andere Informationen von einem Programm erfasst, bestimmt oder gemessen werden. Ein Programm kann daher durch ein Auslesen von einer oder mehreren Speicherstellen Größen, Werte, Messgrößen und andere Informationen erfassen, bestimmen oder messen, sowie durch ein Schreiben in eine oder mehrere Speicherstellen eine Aktion bewirken, veranlassen oder durchführen sowie andere Geräte, Maschinen und
Komponenten ansteuern. Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und
Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den
Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen
Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.
Bezugszeichenliste
Vorrichtung für ein Fahrzeug
Kommunikationsmodul
Berechnungsmodul
Vorrichtung für eine Zentralstelle
Kommunikationsmodul
Kontrollmodul
Fahrzeug
Empfangen einer Teilaufgabe
Berechnen der Teilaufgabe
Bereitstellen eines Ergebnisses der Teilaufgabe
Zentralstelle
Bereitstellen von Teilaufgaben
Empfangen von Ergebnissen
Zusammenstellen der Ergebnisse
TSP erhält Job zur Berechnung
TSP bestimmt die zu nutzenden Fahrzeuge und verteilt Daten und Algorithmus
TSP sammelt die Ergebnisse von Fahrzeugen ein und gibt sie Anfragenden zurück
Computersystem
Datenbank

Claims

Patentansprüche
1 . Vorrichtung (10) für ein Fahrzeug (100), umfassend ein Kommunikationsmodul (12), ausgebildet zu einer Kommunikation mit einer
Zentralstelle (200); und ein Berechnungsmodul (14), ausgebildet zum:
Steuern des Kommunikationsmoduls (12),
Empfangen einer Teilaufgabe einer verteilten Datenverarbeitung von der Zentralstelle (200), wobei die verteilte Datenverarbeitung einer parallelisierbaren Datenverarbeitung eines verteilten Maschinenlern-Algorithmus oder einer Simulation entspricht und wobei Teilaufgaben der verteilten Datenverarbeitung mehrfach oder gegenseitig überlappend von der Zentralstelle (200) einer Mehrzahl von Fahrzeugen bereitgestellt werden, Berechnen der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe, und
Bereitstellen des Ergebnisses der Teilaufgabe für die Zentralstelle (200).
2. Die Vorrichtung (10) gemäß Anspruch 1 , wobei das Berechnungsmodul (14) ausgebildet ist, eine Benachrichtigung über eine nicht- Verfügbarkeit des Fahrzeugs (100) zum Berechnen der Teilaufgabe für die Zentralstelle (200) bereitzustellen, falls die
Vorrichtung (10) deaktiviert wird, bevor die Teilaufgabe berechnet ist.
3. Die Vorrichtung (10) gemäß einem der vorhergehenden Ansprüche, wobei das
Berechnungsmodul (14) ausgebildet ist, die Teilaufgabe basierend auf einer Architektur mit einer Instruktion für mehrere Datensätze oder basierend auf einem Stream- Prozessor zu berechnen.
4. Die Vorrichtung (10) gemäß einem der vorhergehenden Ansprüche, wobei das
Berechnungsmodul (14) ferner ausgebildet ist, über das Kommunikationsmodul (12) mit ein oder mehreren weiteren Fahrzeugen zu kommunizieren zum Austausch von
Ergebnissen von Teilaufgaben mit den ein oder mehreren weiteren Fahrzeugen.
5. Vorrichtung (20) für eine Zentralstelle (200), umfassend ein Kommunikationsmodul (22), ausgebildet zur Kommunikation mit einer Mehrzahl von Fahrzeugen (100a; 100b); und ein Kontrollmodul (24), ausgebildet zum:
Steuern des Kommunikationsmoduls (22),
Bereitstellen von Teilaufgaben einer verteilten Datenverarbeitung für die Mehrzahl von Fahrzeugen (100a; 100b) für eine verteilte Berechnung der verteilten Datenverarbeitung, wobei die verteilte Datenverarbeitung einer parallelisierbaren Datenverarbeitung eines verteilten Maschinenlern-Algorithmus oder einer Simulation entspricht,
Empfangen von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von Fahrzeugen (100a; 100b), und
Zusammenstellen der Ergebnisse der verteilten Datenverarbeitung basierend auf den Ergebnissen der Teilaufgaben,
wobei das Kontrollmodul (24) ausgebildet ist, die Teilaufgaben mehrfach oder gegenseitig überlappend der Mehrzahl von Fahrzeugen (100a; 100b) bereitzustellen.
Die Vorrichtung (20) gemäß Anspruch 5, wobei das Kontrollmodul (24) ausgebildet ist, um die Mehrzahl von Fahrzeugen (100a; 100b) aus einer Gruppe von Fahrzeugen auszuwählen, wobei das Auswählen eines auszuwählenden Fahrzeugs für die Mehrzahl der Fahrzeuge auf zumindest einem Element der Gruppe von Systemauslastung eines Berechnungsmoduls des auszuwählenden Fahrzeugs, Energiekapazität des
auszuwählenden Fahrzeugs, Leistungsfähigkeit des Berechnungsmoduls des auszuwählenden Fahrzeugs, Konnektivität des auszuwählenden Fahrzeugs, Position des auszuwählenden Fahrzeugs, voraussichtliche Verfügbarkeit des auszuwählenden Fahrzeugs für ein Berechnen einer Teilaufgabe, vorherige Verarbeitung einer
Teilaufgabe durch das auszuwählende Fahrzeug und Priorisierung des auszuwählenden Fahrzeugs für Berechnungen basiert.
Die Vorrichtung (20) gemäß einem der Ansprüche 5 oder 6, wobei das Kontrollmodul (24) ausgebildet ist, um Teilaufgaben, die nicht innerhalb eines Zeitfensters von einem Fahrzeug der Mehrzahl von Fahrzeugen (100a; 100b) berechnet werden, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen (100a; 100b) zum Berechnen bereitzustellen,
und/oder wobei das Kontrollmodul (24) ausgebildet ist, um eine Teilaufgabe, die einem Fahrzeug bereitgestellt wurde, das zumindest vorübergehend nicht verfügbar ist, einem anderen Fahrzeug der Mehrzahl von Fahrzeugen (100a; 100b) zum Berechnen bereitzustellen.
8. Die Vorrichtung (20) gemäß einem der Ansprüche 5 bis 7, wobei das Kontrollmodul (24) ausgebildet ist, zum Initiieren des Bereitstellens der Teilaufgaben für die Fahrzeuge der Mehrzahl von Fahrzeugen (100a; 100b) die Fahrzeuge der Mehrzahl von Fahrzeugen zu kontaktieren,
oder wobei Kontrollmodul (24) ausgebildet ist, zum Initiieren des Bereitstellens einer Teilaufgabe für ein Fahrzeug der Mehrzahl von Fahrzeugen (100a; 100b) eine Anfrage des Fahrzeugs zu empfangen.
9. Die Vorrichtung (20) gemäß einem der Ansprüche 5 bis 8, wobei die Teilaufgaben
Instruktionen umfassen, die unabhängig von einer spezifischen Hardware-Architektur einer Berechnungseinheit eines Fahrzeugs der Mehrzahl von Fahrzeugen (100a; 100b) ausführbar sind.
10. Verfahren für ein Fahrzeug (100), umfassend
Empfangen (1 10) einer Teilaufgabe einer verteilten Datenverarbeitung von einer Zentralstelle (200) wobei die verteilte Datenverarbeitung einer parallelisierbaren
Datenverarbeitung eines verteilten Maschinenlern-Algorithmus oder einer Simulation entspricht und wobei Teilaufgaben der verteilten Datenverarbeitung mehrfach oder gegenseitig überlappend von der Zentralstelle (200) einer Mehrzahl von Fahrzeugen bereitgestellt werden;
Berechnen (120) der Teilaufgabe der verteilten Datenverarbeitung zum Erhalten eines Ergebnisses der Teilaufgabe; und
Bereitstellen (130) des Ergebnisses der Teilaufgabe für die Zentralstelle (200).
1 1. Verfahren für eine Zentralstelle (200), umfassend
Bereitstellen (210) von Teilaufgaben einer verteilten Datenverarbeitung für eine
Mehrzahl von Fahrzeugen (100a; 100b) für eine verteilte Berechnung einer verteilten Datenverarbeitung, wobei die verteilte Datenverarbeitung einer parallelisierbaren Datenverarbeitung eines verteilten Maschinenlern-Algorithmus oder einer Simulation entspricht und wobei die Teilaufgaben mehrfach oder gegenseitig überlappend der Mehrzahl von Fahrzeugen (100a; 100b) bereitgestellt werden;
Empfangen (220) von Ergebnissen der Teilaufgaben der verteilten Datenverarbeitung von der Mehrzahl von Fahrzeugen (100a; 100b); und
Zusammenstellen (230) der Ergebnisse der verteilten Datenverarbeitung basierend auf den Ergebnissen der Teilaufgaben.
12. Programm mit einem Programmcode zum Durchführen zumindest eines der Verfahren gemäß einem der vorhergehenden Ansprüche, wenn der Programmcode auf einem Computer, einem Prozessor, einem Kontrollmodul oder einer programmierbaren Hardwarekomponente ausgeführt wird.
EP17791319.1A 2016-10-20 2017-10-17 Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle Pending EP3529723A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016220619 2016-10-20
PCT/EP2017/076447 WO2018073230A1 (de) 2016-10-20 2017-10-17 Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle

Publications (1)

Publication Number Publication Date
EP3529723A1 true EP3529723A1 (de) 2019-08-28

Family

ID=60190815

Family Applications (1)

Application Number Title Priority Date Filing Date
EP17791319.1A Pending EP3529723A1 (de) 2016-10-20 2017-10-17 Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle

Country Status (3)

Country Link
US (1) US11327482B2 (de)
EP (1) EP3529723A1 (de)
WO (1) WO2018073230A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018218098A1 (de) 2018-10-23 2020-04-23 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Abstrahieren eines Datensatzes
EP3697111A1 (de) * 2019-02-15 2020-08-19 Volkswagen Aktiengesellschaft System, fahrzeug, vorrichtungen, verfahren und computerprogramme für benutzergerät und für eine basisstation in einem mobilkommunikationssystem
DE102021208360A1 (de) 2021-08-02 2023-02-02 Volkswagen Aktiengesellschaft Verfahren und System zum Betreiben einer Steuervorrichtung eines Kraftfahrzeugs als Datenspeicher für eine elektronische Sicherungskopie

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5922040A (en) * 1995-05-17 1999-07-13 Mobile Information System, Inc. Method and apparatus for fleet management
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US7113864B2 (en) * 1995-10-27 2006-09-26 Total Technology, Inc. Fully automated vehicle dispatching, monitoring and billing
EP1209643A1 (de) * 2000-11-23 2002-05-29 Telefonaktiebolaget L M Ericsson (Publ) Verkehrsverwaltungsystem auf der Basis von Paketvermittlung
JP2002190091A (ja) * 2000-12-20 2002-07-05 Pioneer Electronic Corp 走行時間設定方法および装置並びにこれを利用した経路計算方法および装置
DE10144780B4 (de) * 2001-09-11 2007-07-12 Robert Bosch Gmbh Steuervorrichtung
US7373243B2 (en) * 2004-03-31 2008-05-13 Nissan Technical Center North America, Inc. Method and system for providing traffic information
US9076332B2 (en) * 2006-10-19 2015-07-07 Makor Issues And Rights Ltd. Multi-objective optimization for real time traffic light control and navigation systems for urban saturated networks
US9864957B2 (en) * 2007-06-29 2018-01-09 Concaten, Inc. Information delivery and maintenance system for dynamically generated and updated data pertaining to road maintenance vehicles and other related information
US8275522B1 (en) * 2007-06-29 2012-09-25 Concaten, Inc. Information delivery and maintenance system for dynamically generated and updated data pertaining to road maintenance vehicles and other related information
US20090093952A1 (en) * 2007-10-03 2009-04-09 Lassiter Sr James C National Radio Network for Ground Vehicle Traffic Management
US20120253551A1 (en) 2009-01-30 2012-10-04 Sammy Halimi Systems and Methods for Providing Telematic Services to Vehicles
US8122282B2 (en) 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
US9094436B2 (en) 2010-05-27 2015-07-28 Ford Global Technologies, Llc Methods and systems for interfacing with a vehicle computing system over multiple data transport channels
US20120320204A1 (en) * 2011-06-20 2012-12-20 3M Innovative Properties Company Asset assessment system
DE102011120402A1 (de) * 2011-12-03 2013-06-06 Robert Bosch Gmbh Verfahren und Vorrichtung zum Koordinieren einer Transportlogistik sowie Transportlogistiksystem
US9147297B2 (en) * 2012-03-14 2015-09-29 Flextronics Ap, Llc Infotainment system based on user profile
US9146603B2 (en) 2012-05-08 2015-09-29 William Reber, Llc Cloud computing system, vehicle cloud processing device and methods for use therewith
DE102012020018A1 (de) * 2012-10-12 2014-04-17 Audi Ag Verfahren zum Bereitstellen eines Reiseplans
US9412271B2 (en) * 2013-01-30 2016-08-09 Wavetronix Llc Traffic flow through an intersection by reducing platoon interference
DE102013106445A1 (de) 2013-06-20 2014-12-24 I-vector Innovationsmanagement GmbH Verfahren zum sicheren Betrieb fahrzeugnaher Applikationen
US9231998B2 (en) 2014-01-22 2016-01-05 Ford Global Technologies, Llc Vehicle-specific computation management system for cloud computing
CN104464274B (zh) * 2014-11-27 2016-09-28 中国联合网络通信集团有限公司 合乘打车方法及服务器
US9865110B2 (en) * 2015-05-22 2018-01-09 M2MD Technologies, Inc. Method and system for securely and automatically obtaining services from a machine device services server
US9691275B2 (en) * 2015-11-06 2017-06-27 International Business Machines Corporation Adjusting vehicle timing in a transportation network
US9842263B2 (en) * 2015-11-10 2017-12-12 Ford Global Technologies, Llc Inter-vehicle authentication using visual contextual information

Also Published As

Publication number Publication date
US11327482B2 (en) 2022-05-10
US20190258243A1 (en) 2019-08-22
WO2018073230A1 (de) 2018-04-26

Similar Documents

Publication Publication Date Title
DE102017201789B4 (de) Verfahren zum Betrieb eines Kraftfahrzeugs und Kraftfahrzeug
DE102020101704A1 (de) Verfahren und vorrichtung zur zuweisung von automobilcomputeraufgaben an vernetzte vorrichtungen mit heterogenen fähigkeiten
DE202015009252U1 (de) Diagnose und Optimierung von Cloud-Freigabepipelines
WO2018073230A1 (de) Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle
DE102017102936A1 (de) Prädiktive Fahrzeugaufgabenzeitplanung
DE102019122260A1 (de) Kraftstoffverbrauchbasiertes fahrverhalten-scoring
DE112017007989T5 (de) Anwendungsprioritätsbasierte energieverwaltung für eine computervorrichtung
DE112021004024T5 (de) Angemessenes erkennen und lokalisieren von anomalien
DE102020122616A1 (de) Automatisierte bereitstellung eines fahrzeugprofilpakets
DE102018206720A1 (de) Verfahren zum Durchführen eines Softwareupdates in einem Steuergerät eines Kraftfahrzeugs sowie entsprechend eingerichtetes Kraftfahrzeug
DE112019002392T5 (de) Fahrzeugsteuergerät, verfahren zur verwaltung von interruptinformationen und programm zur verwaltung von interruptinformationen
DE102013007676A1 (de) Dynamische App-Rechenlast-Verteilung und nahtlose Netzwerkausfallverarbeitung zwischen Smartphone, Fahrzeug und Cloud
DE102018206762A1 (de) Feature-Development-Framework und Feature-Integration-Framework zum Implementieren physikalischer Funktionsfeatures in einem Zielgerät
DE102017206808A1 (de) Verfahren und Vorrichtung zur Zuweisung von Rechenaufgaben
DE102023112746A1 (de) Elektronische steuervorrichtung, softwareaktualisierungsverfahren, softwareaktualisierungsprogramm und elektronisches steuersystem
DE102021108285A1 (de) Nutzen von fahrzeughardwarebeschleuniger- und gpu-rechenfähigkeiten im leerlauf
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102022113922A1 (de) Ota-master, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
CN112148481B (zh) 一种执行仿真测试任务的方法、系统、设备及介质
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102020111877A1 (de) Verbesserte verwendbarkeit und funktionalität von bordeigener hardware und software von fahrzeugen
US9916700B2 (en) Asset-agnostic framework with asset-specific module for alternate bus parameter calculation
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
DE102022126494A1 (de) System und verfahren, die eine validierung als dienst für die kontinuierliche validierung fortschrittlicher fahrerassistenzsysteme und autonomer fahrzeuge ermöglichen
DE102021123926A1 (de) Verteiltes fahrzeugrechnen für zusätzliche rechenverarbeitung bei bedarf

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20190520

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

RIN1 Information on inventor provided before grant (corrected)

Inventor name: MEIER, ANDREAS

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20201012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS