Sensors Distribution
Distribution sensors between different machines are the advantage of the cluster simulation. Distributed simulation synchronizes sensors' transforms between every cluster machine. One sensor can be simulated only on one machine, but one machine can still simulate multiple sensors.
Sensor Setup top#
Sensors distributed to the clients will not be simulated on the main, those sensors will not affect the simulation (for example manual control sensor has to be simulated on the main) and API requests callbacks will be delayed. Due to these restrictions distribution is disabled by default and enabling it requires additional setup. Every sensor which can be distributed to clients has to override the MainOnly value of the DistributionType
property with MainOrClient or ClientOnly value.
Sensors Load Balancing top#
The current load balancing algorithm divides sensors into groups by their DistributionType
type. Main distributes sensors by counting overhead sum and assigning each next sensor to the least overloaded machine available for the selected distribution type. Sensors can override the PerformanceLoad
property to determine their load. The value 0.0 means that the sensor will not impact the performance at all, and the value 1.0 means that that the distributed simulation will try to simulate this sensor on a dedicated machine if possible, default value is 0.5.
Example sensors configurations are listed below:
- 1.0
PerformanceLoad
for sensors likeLiDAR
, which parses the camera images and performs complex maths operations, should be classified under ClientOnlyDistributionType
type. - 0.2
PerformanceLoad
for sensors likeRadarSensor
, which performs complex maths operations, should be classified under MainOrClientDistributionType
type. - 0.05
PerformanceLoad
for sensors likeGpsSensor
, which performs simple maths operations, should be classified under MainOrClientDistributionType
type. - Sensors like
KeyboardControlSensor
, which control objects in a simulation, have to be classified under MainOnlyDistributionType
type.
As the main machine requires more resources it starts the algorithm with 0.15 overhead.