IBM Streams 4.2.1

Operator fusion in parallel regions

In IBM® Streams Version 4.2.1, fusion of operators into PEs happens at submission time, after the parallel transformations have been done. Fusion can be controlled either manually, through the use of placement configs such as partitionColocation, or automatically by letting the IBM Streams runtime decide how best to fuse operators.

IBM Streams Version 4.2.1 introduces some new intrinsic functions to help with manual fusion. The byChannel() intrinsic function, when used with the partitionColocation config, can be used to fuse operators together with other operators in the same parallel channel. The byReplica() intrinsic function fuses cousin operators from a given parallel region.
In addition, the fusionType parameter defined at submission time that gives direction to the IBM Streams runtime about how to fuse operators from parallel regions.
Note: These rules do not apply if you select the legacy fusion scheme to submit your application.
Valid values for the fusionType parameter are:
  1. Do not treat parallel regions differently (noChannelInfluence): Inclusion in a parallel region does not have impact on how the operators are fused. This is the default behavior.
  2. Fuse operators in the same channel (channelIsolation): Operators in a channel are fused only with operators in the same channel. They can be fused in to one or more PEs, depending on the target PE settings of the fusion scheme. Additionally, if you explicitly co-locate an operator in a channel with an operator that is in a different channel or outside the parallel region, the operators are fused in their own PE.
  3. Prevent fusion across channels (channelExlocation): Operators in different channels are not fused in the same PE. However, the operators can be fused with operators outside of the parallel region. Additionally, if you explicitly co-locate operators from different channels in the parallel region, the operators are fused in their own PE.
Any fusing specified manually is always respected. For more information about the fusionType parameter, see Specifying how operators are fused when you submit a job.