Pulse(s): Polling, Push and Pull

<< 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

Pulse

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.

 

productivityToo 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.

Advanced Options

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 .

Poll

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".

Push

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.

Pull

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.

Polling

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.

node-system-basics-pulse_03

informationDefault 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).
 

Pulse Mode

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

informationPassive 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.

 

Throttling

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

informationDefault Values for Throttling Interval
The default value for the Throttling Interval for a Node is set to 250 ms
 

 

node-system-basics-pulse-throttled

productivityThrottling 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".

Settings

For Push or Pull there are different settings, to fine adjust the Pulse Mode
 
Push

node-system-basics-pulse_01

 
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

node-system-basics-pulse_04

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

 

Advanced Settings

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.