Adopt Technologies

Adopting Intel® Technologies

After successfully porting software to Intel architecture and ensuring that the code executes correctly on one Intel architecture core (part one, detailed on the previous page in steps 1-3), part two of the conversion process is to apply multi-core software design updates and optimize the code for power and multi-core Intel architecture performance.  The steps below are required only if adopting Intel® technologies. 

Step 1: Apply Multi-core Design Updates

Goal:   Ensure target design adopts benefits from multi-core capabilities.

Guidance:   Some architecture migrations may start from a serial designed code base. The target software design should identify  and implement the solution to meet the migration requirements. Adding parallelism  (SMP) can improve application performance  for CPU intensive code and can scale with # of processors, but can be difficult to redesign serial code for SMP. 

Collateral:   Refer to Intel technologies

Step 1 Flow:

1.1. Will the target software solution implement AMP, SMP, or virtualization?

  • AMP:   Choose AMP if the migration requirements specify that no changes can be made to the application or OS.
  • SMP:   Choose SMP if one operating system will be run, using all of the cores as equal processing resources, and the applications can be parallelized to benefit from SMP systems. SMP affinity can sometimes improve cache hit rates on multiprocessor systems by pinning tasks to certain cores to improve data locality.
  • Is the code already parallelized?
    • Yes:    Go to Step 1.2.
    • No:   Redesign the software for multi-core / parallelism.
  • Virtualization:   Choose virtualization for system consolidation, OS co-location, and the additional benefits of features such as security, QoS, HA, and load distribution. Refer to Intel architecture technologies.

1.2. Build, test, and debug the code until it executes correctly on one Intel architecture core.

fpo

Step 2: Optimize Code for Power and Multi-core Performance 

Goal:   Ensure target design maximizes multi-core power and performance benefits to meet migration requirements.

Guidance:   Mutli-core sw designs require specialized SW development tools.  SMP/multi-core tools help identify and implement parallelism into the code. And pinpoint threading issues.

References:   Refer to Power and Performance Tuning, Software Development Tools

Step 2 Flow:

2.1. The tuning methodology is the same as for uniprocessor in Step 3, except that the goal is to correctly and efficiently execute multiple processes or threads simultaneously across multiple cores.  Remember to create a baseline first, then introduce only one change at a time, and test and analyze the results before introducing another change.

  • Understand the power and performance requirements prior to tuning, and stop making changes once the requirements are met.
  • Update libraries and drivers before application changes.
  • Refer to Tuning Methodology for guidance.

2.2. Build, test, and debug the code until it executes correctly on one Intel architecture core.

Intel Architecture Migration Resources