<< Click to Display Table of Contents >> Navigation: Advanced Features > Node System > Pulse(s): Polling, Push and Pull |
•Pulses are the heart of a Node System: A Pulse defines the timing with which the data of all Nodes is processed
•There is a basic Pulse, called a Poll (respectively Polling)
•Some Nodes are able to Push their data into a chain of Nodes or to Pull data from a chain of Nodes
•Throttling gives you the option to slow down specific parts of your Node System and save performance
•A Node System has to collect and sync several data flows between Nodes.
•Data for each Node has to be calculated and, above all, it has to be ensured that the correct data is available at each Node into a chain at all times.
•A Node System works with a basic Pulse - called "Polling" - that defines the timing for the whole Node System. On every Poll, the data of all Nodes into a Node System is calculated.
•Some Nodes are able to generate their own Pulse. Some can push their data into a chain of Nodes behind. Some Nodes are able to pull data from a chain of Nodes ahead.
Too much theory?
We deliver VERTEX with default values for the 3 types of Pulses. These are basic values for timing and there are default settings for push and pull with which you can simply start working. If you don't want and don't need to, you don't have to deal with complicated settings.
However, with larger projects and a lot of data, the pulse setting options allow you to adjust the system load and also the signal chains very precisely.
•There are settings for Push and Pull with which you are able to build different chains of Nodes in a Node System that work with their own Pulse. For example in some cases you need more precise data, in other cases a slower Pulse is sufficient and saves performance.
•For advanced users, there are adjusting screws for the behaviour of every Node. This is how you can keep a good performance also for the largest and most complex Node Systems .
•Each Node System works with a basic "Pulse", an internal timing with which data into a Node System is sampled and processed.
•This basic Pulse of a Node System in VERTEX is called "Polling".
•Some Nodes are able to push their data from their output to a chain of upcoming Nodes.
•With the "Pulse Mode" settings you are able do define the behaviour of a Node and how this Node generates its own Pulse.
•Use Throttling to for example slow down the pulse and save performance on calculating all data.
•Some Nodes are able to pull their data from a chain of Nodes ahead to their Input.
•With the "Pulse Mode" settings you are able do define the behaviour of a Node and how this Node generates its own Push Pulse.
•Use Throttling to for example slow down the pulse and save performance on calculating all data.
•Each Node System works with a basic "Pulse", an internal timing with which data into a Node System is sampled and processed
•This basic Pulse of a Node System in VERTEX is called "Polling"
You are able to change the Polling time for each Node System in the Inspector.
Default Value for Polling Interval
The default value for the polling of a Node System is based on the default FPS of a sequence (25 FPS = 40 ms).
•The Pulse Mode determines how data is processed from a Node.
•The Pulse Mode and the available options depend on the Node type and the way how a Node internally works with its data
Passive Nodes - Filter and mathematical operations
Mathematical Nodes that only manipulate incoming data into a chain do not have a Pulse Mode setting. They are only passive and just manipulate or filter incoming data with a defined rule set.
•Nodes with an available Pulse Mode option are able to generate own Pulses. In this case all data in the chain will be processed according to the pulse of this Node.
There are basically two different Pulse Mode types for Nodes:
1.Push
This kind of Nodes pushes its data into a chain chain of Nodes that is connected to its output
2.Pull
This kind of Nodes is actively requesting data on its Input(s).
Data is pulled from a chain of Nodes that is connected to the Input.
•For Nodes that are able to generate their own Pulse, you are able to set an own timing, an own Pulse Interval.
•"Throttled" means that the Node and its data is not processed more times than specified by the defined interval
•Events occurring in the meantime are ignored
Default Values for Throttling Interval
The default value for the Throttling Interval for a Node is set to 250 ms
Throttling saves system performance
Throttling gives you a lot of adjusting screws to optimize the performance of large Node System.
Into a Chain of Nodes you have the possibility to save performance and reduce calculations.
Depending on your Project this could be on different places: less CPU usage because throttling brings less calculation, less Network traffic, less GPU usage.....
Simplified Example:
An UDP Device should receive a status from an UDP-sending 3rd-party Device. This status should be displayed as label of a ControlView. Because the status only changes between " i am here" and " i am off" - it is sufficient to calculate and change it for e.g. every second. In this case it make sense to throttle the Node from the TCP receiver. This Node should push the data throttled with an interval of 1000ms.
For more detailed options, please also read the follow up chapter "Settings".
For Push or Pull there are different settings, to fine adjust the Pulse Mode
Push
Do Not Push:
This Node does not trigger a Push
Push:
This Node triggers a Push (default setting)
Push changes only:
This Node triggers a Push, but only if the output values have been changed
Push throttled:
This Node triggers a Push but only with the throttled interval that is set
Push throttled changes only:
This Node triggers a Push with the throttled interval that is set and only when the values on its output has been changed
Pull
Always:
Process this Node and always execute - regardless of changes and without any throttling
Changes only:
Process this Node but only execute, if the the resulting output values have changed
Throttled changes only:
Process and execute this node with the throttling interval but only if the resulting output values have been changed
Throttled:
Process and execute this node with the throttling interval
Pull:
This Node triggers a Pull request with the Interval that was set (--> throttling interval)
Pull Changes only:
This Node triggers a Pull request but only if the resulting output values have changed
•For Advanced users there are options to define a Node's behavior for each o the three Pulse types: Polling, Push and Pull
•Your are able to set, if and how a Node should be processed for those three Pulse cases
Process Polling:
Defines the behaviour of a Node on the main polling pulse
Process Push:
Defines the behaviour of a Node for Pushes
Process Push:
Defines the behaviour of a Node for Pulls
Settings:
No: This Node will not be processed
Yes: This node is processed, but its input values (if connected to outputs of other nodes) are not updated.
Update: This node will be processed - but it specifies that its inputs will be updated first, by processing upstream nodes as well.