IBM Support

LI80905: -QSMP=OMP CAUSING INCORRECT OUTPUT AT RUNTIME

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • The exe generated from the resulting test case produces
    incorrect output when compiled with -qsmp=omp:
    
    ===== COMPILE COMMAND:
    xlC -qsmp=omp test.cpp
    
    $ cat test.cpp
    #include <iostream>
    using namespace std;
    
    int main(int argc, char **argv)
    {
      int size = 4;
      int dim = 3;
      float in[12], out[12];
      float * __restrict__ x = out;
      float * __restrict__ y = out + 4;
      float * __restrict__ z = out + 8;
      for(int i=0; i<size*dim; i++)
        in[i] = out[i] = 0.0f;
      in[3] = in[4] = in[5] = 1.6f;
      #pragma omp simd
      for(int i=0; i<size; i++)
      {
        x[i] = in[i*dim];
        y[i] = in[i*dim+1];
        z[i] = in[i*dim+2];
      }
      cout << "check out " << out[1] << " " << out [5] << " " << out
    [9] << std::endl;
      return 0;
    }
    $
    
    
    
    ===== ACTUAL OUTPUT:
    $ ./a.out
    check out 0 0 1.6
    $
    
    
    ===== EXPECTED OUTPUT:
    $ ./a.out
    check out 1.6 1.6 1.6
    $
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Clients using -qsmp=omp maybe affected by this issue
    
    PROBLEM DESCRIPTION:
    An internal optimization causing certain variables to be
    privatized was causing an incorrect output at runtime
    

Problem conclusion

  • This optimization has now been fixed to handle this scenario
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI80905

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5725C7300

  • Reported release

    G11

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2019-06-11

  • Closed date

    2019-08-20

  • Last modified date

    2019-08-20

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IJ16748

Fix information

  • Fixed component name

    XL C/C++ LINUX

  • Fixed component ID

    5725C7310

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"G11","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
20 August 2019