User Guide

Contents

Reducing Scheduler Overhead using Lightweight Policy

The Flow Graph API allows you to apply
lightweight policy
for computational nodes such as function node, multifunction node, continue node, and async node. Enabling the lightweight policy helps reduce scheduling overhead. It can limit parallel execution of tasks, so apply this policy on a per-node basis after careful evaluation.
The lightweight policy indicates that the body of a node contains a small amount of work and, if possible, should be executed without the overhead of scheduling a task. By default, the async node has the lightweight policy enabled because it has small computation weight. All other computational nodes do not have the lightweight policy enabled when they are dragged and dropped into the canvas.
Use the lightweight policy in the following cases:
  • Node weight is less than 1 microsecond when no trace information is available.
  • Node average time is less than 1 microsecond if the graph is loaded into context with trace data.
When validating a graph, the graph rule check automatically identifies nodes that can use the lightweight policy. If the above conditions are not met but the lightweight policy is set, the graph rule check recommends removing the lightweight policy for the corresponding node.
To display recommendations for applying the lightweight policy:
  1. Click the graph rule check icon on the toolbar to run the check.
  2. Go to the
    Analytics Report
    tab to see the results.
  3. Based on the results, set or disable the lightweight policy for certain nodes.
  • To set or disable the lightweight execution policy for a
    single
    node:
    1. Click the node to display the node properties on the right pane.
    2. Set the
      Execution policy
      property to
      none
      to disable lightweight policy or to
      lightweight
      to enable lightweight policy.
  • To set or disable the lightweight execution policy for
    all
    the nodes listed by graph rule check:
    1. Multi-select the report lines that say
      Consider enabling lightweight policy for small computational or async node
      or
      Consider disabling lightweight policy for small computational or async node
      to highlight all nodes in the canvas and display the common properties for all the selected nodes.
    2. Set the
      Execution policy
      property to
      none
      to disable lightweight policy or to
      lightweight
      to enable lightweight policy.
    For example, to enable the lightweight policy for multiple nodes:
Another important attribute related to node execution policy is a
buffer policy
:
  • If you set the buffer policy to
    queueing
    when lightweight policy is enabled, the Flow Graph Analyzer adds
    queueing_lightweight
    to the policy parameter of the node declaration during C++ code generation.
  • If you set buffer policy to
    rejecting
    , the Flow Graph Analyzer adds
    rejecting_lightweight
    to the policy parameter of the node declaration during C++ code generation.
For example, by default, the async node is set to
queueing_lightweight
, and the Flow Graph Analyzer does not add any policy during code generation for async node. Setting buffer policy to
rejecting
for the async node adds
rejecting_lightweight
to the policy parameter of async node declaration during code generations.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserverd for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804