Skip to content

parallelize microsim #4767

@namdre

Description

@namdre

The current feature --threads is not recommended (#17057). The main problem (negligible speedup) is discussed in #9278
Help (i.e. on cache issues for multi-core code) is solicited.

  • planMove

    • remove order-dependency from CRLL (caused by setApproaching / open)
    • remove order dependency from RNG calls (using lane-specific rngs)
    • removePassedDriveItems must be handled in setApproachingForAllLinks
      • handle non-actionStep removal of passedDrive items in setApproachingForAllLinks
  • executeMove

    • remove order dependency from stopping place registration
    • synchronized access to MSMoveReminder - detectors (when it spans multiple lanes)
    • remove order dependency parkingArea occupancy check
    • remove order dependency from removeApproaching() - alternative resolution for linkstateEqual circular dependency
    • concurrent access to MSStopOut
    • remove order dependency on foe vehicle speed when computing zipper speed (foe speed must be stored in ApproachingVehicleInformation / DriveProcessItem)
  • laneChange

    • compute change decision for all vehicles without executing them (can be done in parallel). Change decision can be encoded as a direction (default), distance (sublane model)
    • in a seperate phase, execute changes serially. Recheck if changing on an edge with more than 2 lanes. Reject decision if the target lane has been blocked by a change from the other direction

known issues

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions