Developer Guide

  • 2021.1
  • 11/03/2021
  • Public
Contents

Developer Workflow Overview

There are two main phases to working with the tool:
Definition of preproduction and production:
In this guide, you will encounter the terms
preproduction environment
and
production environment
.
The
production environment
refers to the computing hardware and software you will employ to execute your use case that results in revenue generation. An example is an Intel processor with Linux* OS and software to perform parts manufacturing using lathe machinery.
The
preproduction environment
is expected to be the same as the production environment minus the actual machinery. The interfaces to the machinery are typically simulated (for example, send a signal for movement, sense actual movement that occurred). In addition, the preproduction environment is expected to have testing, debugging, and analysis tools which are not necessarily a part of the final product. Typically all capabilities are tested in the preproduction environment to confirm their functionality, and only then deployed to the production environment.

Preproduction Phase

First, you will use the tool in your preproduction environment to identify a suitable tuning configuration and validate it provides the needed tuning.
For validation, you will need to provide a workload. The workload can be any application that you run on the Intel platform (target system) to understand whether your real-time performance requirements are being met. You will use your workload to see whether the data streams optimizer can sufficiently optimize the target system to meet your requirements. You can also use any combination of applications that can potentially validate different aspects of performance.
For accurate tuning, the target system must be a working non-production environment that matches the production environment setup including hardware, software, and the applications that run on the machine. The end result of the preproduction phase is to arrive at the final tuning configuration that you will deliver to your customers.
At a high level, the preproduction steps are as follows:
Steps:
  1. Create the required inputs for the data streams optimizer:
    • Workload validation script: A program that runs your workload and validates the performance requirements in a way that the tool can read.
    • Requirements file: A JSON file that contains requirements for data streams, which the tool uses to select a tuning configuration. You can choose to tune one or more streams listed in Data Streams Supported.
    • Environment file: A JSON file that contains information needed to automate the tool workflow.
  2. Run the data streams optimizer with the inputs. The rest of the workflow is automated by the tool.
    In this release, ensure that RTCM is disabled before using the data streams optimizer for the first time and remains disabled afterward. For more details and instructions, see Real-Time Configuration Manager (RTCM). If you combine RTCM and data streams optimizer, you may experience system hang and various errors due to offline cores. To resolve the errors, you may need to reflash the BIOS. For more details, see Troubleshooting.
  3. The tool finds a tuning configuration based on the information in the requirements file.
  4. The tool applies the tuning configuration to the target system.
  5. The tool runs your workload validation script. The script tests whether the workload executed successfully having met your performance requirements, and accordingly returns success or failure.
  6. If the script returns failure, the tool selects another configuration. The tool repeats the configuration and validation process until the requirements are met or the tool is unable to identify any other configurations.
  7. If the requirements are met, the tool generates a tuning configuration file that specifies the selected configuration. You will use the file to clone the tuning configuration to your production systems.
The tool cannot provide a register-level description of the tuning configuration because some registers are proprietary. Instead, the tool provides a description of the tuning configuration in the form of messages. These messages describe the functional components affected by the tuning configuration, such as disabling C states or prioritizing traffic between PCIe and memory. For a complete list of messages, see Tuning Configurations.

Production Phase

After selecting the final tuning configuration in the preproduction phase, you will need to apply the configuration to the production environment.
At a high level, the steps are as follows:
Steps:
  1. Acquire the tuning configuration file from the preproduction phase.
  2. Run the data streams optimizer with the tuning configuration file as input.
    In this release, ensure that RTCM is disabled before using the data streams optimizer for the first time and remains disabled afterward. For more details and instructions, see Real-Time Configuration Manager (RTCM). If you combine RTCM and data streams optimizer, you may experience system hang and various errors due to offline cores. To resolve the errors, you may need to reflash the BIOS. For more details, see Troubleshooting.
  3. The tool applies the tuning configuration to the target system.

Next Steps

Start with the reference implementation described in Host-Target Reference Implementation.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.