Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

Question about the Token Order in Pipeline.


Hello everyone~

Could anybody explain how the TOKEN ORDER is mainteined in pipeline?

Dothey restrictedlypass each filter by the order they were generated?

What particular manner should we use to maintein the order??

For instance,refer tothe pipeline example in official turtorial, textfilter, on page27/68.

The Buffer order is not explained, ifa buffer, takes a significant long time to process in the middle transforming filter than any other buffer, and it reach the last output filter later than other buffer that generated after it from the input filter.In this case, will therebe a protential error in output?

If such error never occurs, please explain why, thank you.

BTW, the tutorial does explain why it is safe without checking whether the buffer is in use or not[page 31], but the order issue has not been explained.

0 Kudos
1 Reply

The order of tokens is set by the first serial filter encountered as the tokens pass through the pipeline. So if the very first filter is serial, then the token generation order is used. All subsequent serial filters process the tokens exactly in that order; and you should do nothing for that, except forproperly classifying filters as serial or parallel.

Is this level of explanation enough, or you would like to see more details?

By the way it is said in the tutorial that

in the current implementation the is_serial parameter is ignored for the first stage, though this may change in later versions".
This is not true anymore; in the latest development updates the first stage will recognize the filter type like any other stage. The documentation will be soon updated.

0 Kudos