User Guide

  • 2020
  • 06/18/2020
  • Public Content
Contents

Problem Solving Strategies

Data Sharing Problem Types describes the kinds of problems that can occur when tasks access the same memory locations. Two common strategies are used to deal with the following sharing problems:
  • Incidental sharing
    :
    If a memory location is shared, but it is not used to communicate data between tasks, then you can eliminate the sharing by giving each task its own copy of the shared memory. This rarely causes significant increases in execution time or memory consumption. See Eliminating Incidental Sharing .
  • Independent updates
    : If the reads and writes of the memory location occur in updates which can be done in any order, then you can add synchronization code to guarantee that the updates and related code in different tasks cannot be intermingled. This can increase execution time because only one task at a time can be accessing the shared memory location. This limits parallel execution. See Synchronizing Independent Updates .
If neither of these applies, you might be able to restructure your program to avoid the sharing problem; otherwise you may have to change your task structure. See Difficult Problems: Choosing a Different Set of Tasks .

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 reserved 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