Status Update: 2022-04-27 #23
Replies: 3 comments 3 replies
-
Design ChangesWe decided on a new naming convention for light-weight and heavy-weight operators. We also updated our design diagram and the dataflow configuration format to include both operator types. New Names
In our design documentation, we describe the differences between operators and custom nodes in the following way:
Special Handling for Python OperatorsSince Python still uses a global interpreter lock, which effectively limits the possible concurrency across threads, we need some special handling for operators written in Python. Instead of running multiple Python operators on the same node, we spawn a separate runtime subprocess for them. The runtime subprocesses communicate with the parent process via shared memory, so the overhead should be negligible. Updated Design DiagramChanges to Dataflow Config FormatWe updated the YAML format for specifying nodes and operators. Nodes: - id: some-unique-id
name: Human-Readable Node Name
description: An optional description of the node's purpose.
# EITHER:
operators:
- id: operator-1
# ... (see below)
- id: operator-2
# ... (see below)
# OR:
custom:
run: path/to/timestamp
env:
- ENVIRONMENT_VARIABLE_1: true
working-directory: some/path
inputs:
input_1: operator_2/output_4
input_2: custom_node_2/output_4
outputs:
- output_1 Operators: - id: unique-operator-id
name: Human-Readable Operator Name
description: An optional description of the operators's purpose.
inputs:
input_1: source_operator_2/output_1
input_2: custom_node_1/output_1
outputs:
- output_1
## ONE OF:
shared_library: "path/to/shared_lib.so"
python: "path/to/python_file.py"
wasm: "path/to/wasm_file.wasm" New VisualizationWe updated our dataflow visualization code to take runtime nodes and operators into account: flowchart TB
timer[\timer/]
camera[\camera/]
subgraph node-1[__node1]
node-1/operator-1[operator-1]
node-1/operator-2[operator-2]
end
printer[/printer\]
camera -- image --> node-1/operator-1
node-1/operator-1 -- processed --> node-1/operator-2
timer -- time --> node-1/operator-2
node-1/operator-2 -- processed --> printer
timer -- time --> printer
|
Beta Was this translation helpful? Give feedback.
-
State Management and KV StoreWe discussed state management and potential access to key-value stores a bit. Our current plan is the following:
Decision: Postpone implementation of recovery and shared state for now, focus on other things first. |
Beta Was this translation helpful? Give feedback.
-
Implementation ProgressWe made good progress on both Pylot and the Rust runtime in the past two weeks. Pylot AdvancementWorking E2E pipeline! 🚀 The graph flow look as follows: flowchart TB
carla_source_node[\carla_source_node/]
perfect_detection_node
obstacles_location_node
planning_node
pid_control_node
control_node
influxdb_node[/influxdb_node\]
carla_source_node -- depth_frame --> perfect_detection_node
carla_source_node -- position --> perfect_detection_node
carla_source_node -- segmented_frame --> perfect_detection_node
carla_source_node -- depth_frame --> obstacles_location_node
perfect_detection_node -- obstacles_without_location --> obstacles_location_node
carla_source_node -- position --> obstacles_location_node
obstacles_location_node -- obstacles --> planning_node
carla_source_node -- position --> planning_node
carla_source_node -- position --> pid_control_node
planning_node -- waypoints --> pid_control_node
pid_control_node -- control --> control_node
carla_source_node -- vehicle_id --> control_node
control_node -- control_status --> influxdb_node
obstacles_location_node -- obstacles --> influxdb_node
carla_source_node -- position --> influxdb_node
Added
Changed
Fixed
Runtime
|
Beta Was this translation helpful? Give feedback.
-
In this discussion, we describe our recent progress and the main topics that we would like to discuss in today's meeting. We use a separate post for each topic to keep the discussion focused. Feel free to create new posts for topics that are not mentioned yet.
Beta Was this translation helpful? Give feedback.
All reactions