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