IBM Support

IV31593: PERFORMANCE PROBLEM WITH XLSMPOPTS BINDING OPTION

Fixes are available

November 2012 PTF for XL C for AIX, V12.1
November 2012 PTF for XL C/C++ for AIX, V12.1
March 2013 PTF for XL C for AIX, V12.1
March 2013 PTF for XL C/C++ for AIX, V12.1
March 2013 PTF for XL Fortran Runtime for AIX, V14.1
XL C/C++ for AIX Fix Pack 4 (June 2013 PTF) for 12.1
XL C/C++ for AIX Fix Pack 5 (September 2013 PTF) for 12.1
XL Fortran Runtime for AIX Fix Pack 5 (September 2013 PTF) for 14.1
XL C/C++ for AIX Fix Pack 7 (January 2014 PTF) for 12.1
XL C for AIX Fix Pack 8 (March 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 8 (March 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 11 (February 2015 PTF) for 12.1
XL C for AIX Fix Pack 12 (May 2015 PTF) for 12.1
XL C/C++ for AIX Fix Pack 12 (May 2015 PTF) for 12.1
XL Fortran for AIX Fix Pack 11 (May 2015 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 11 (May 2015 PTF) for 14.1
XL C/C++ for AIX Fix Pack 13 (August 2015 Update) for 12.1
XL Fortran for AIX Fix Pack 12 (August 2015 Update) for 14.1
XL C/C++ for AIX Fix Pack 14 (December 2015 Update) for 12.1
XL C for AIX Fix Pack 15 (April 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 15 (April 2016 Update) for 12.1
XL Fortran for AIX Fix Pack 15 (April 2016 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 15 (April 2016 Update) for 14.1
XL C for AIX Fix Pack 16 (July 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 16 (July 2016 Update) for 12.1
XL Fortran for AIX Fix Pack 16 (July 2016 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 16 (July 2016 Update) for 14.1
XL C/C++ for AIX Fix Pack 17 (November 2016 Update) for 12.1
XL C for AIX Fix Pack 17 (November 2016 Update) for 12.1
XL Fortran for AIX Fix Pack 17 (November 2016 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 17 (November 2016 Update) for 14.1
XL C for AIX Fix Pack 18 (February 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 18 (February 2017 Update) for 12.1
XL Fortran for AIX Fix Pack 18 (February 2017 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 18 (February 2017 Update) for 14.1
XL C for AIX Fix Pack 19 (August 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 19 (August 2017 Update) for 12.1
XL Fortran for AIX Fix Pack 19 (August 2017 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 19 (August 2017 Update) for 14.1
XL C for AIX Fix Pack 20 (March 2018 Update) for 12.1
XL C/C++ for AIX Fix Pack 20 (March 2018 Update) for 12.1
November 2012 PTF for XL Fortran for AIX, V14.1
November 2012 PTF for XL Fortran Runtime for AIX, V14.1
March 2013 PTF for XL Fortran for AIX, V14.1
XL C for AIX Fix Pack 4 (June 2013 PTF) for 12.1
XL Fortran for AIX Fix Pack 4 (June 2013 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 4 (June 2013 PTF) for 14.1
XL C for AIX Fix Pack 5 (September 2013 PTF) for 12.1
XL Fortran for AIX Fix Pack 5 (September 2013 PTF) for 14.1
XL C for AIX Fix Pack 6 (December 2013 PTF) for 12.1
XL C/C++ for AIX Fix Pack 6 (December 2013 PTF) for 12.1
XL Fortran for AIX Fix Pack 6 (December 2013 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 6 (December 2013 PTF) for 14.1
XL C for AIX Fix Pack 7 (January 2014 PTF) for 12.1
XL Fortran for AIX Fix Pack 7 (March 2014 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 7 (March 2014 PTF) for 14.1
XL C for AIX Fix Pack 9 (July 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 9 (July 2014 PTF) for 12.1
XL Fortran for AIX Fix Pack 8 (July 2014 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 8 (July 2014 PTF) for 14.1
XL C for AIX Fix Pack 10 (October 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 10 (October 2014 PTF) for 12.1
XL Fortran for AIX Fix Pack 9 (October 2014 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 9 (October 2014 PTF) for 14.1
XL C for AIX Fix Pack 11 (February 2015 PTF) for 12.1
XL Fortran for AIX Fix Pack 10 (February 2015 PTF) for 14.1
XL Fortran Runtime for AIX Fix Pack 10 (February 2015 PTF) for 14.1
XL C for AIX Fix Pack 13 (August 2015 Update) for 12.1
XL Fortran Runtime for AIX Fix Pack 12 (August 2015 Update) for 14.1
XL C for AIX Fix Pack 14 (December 2015 Update) for 12.1
XL Fortran for AIX Fix Pack 14 (December 2015 Update) for 14.1
XL Fortran Runtime for AIX Fix Pack 14 (December 2015 Update) for 14.1
XL C/C++ for AIX Fix Pack 21 (January 2019 Update) for 12.1
XL C for AIX Fix Pack 21 (January 2019 Update) for 12.1

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A runtime performance degradation is seen when using the
    XLSMPOPTS binding option as follows:
    
    =====Compile Line:
    xlf_r -O -q64 -qsmp=omp matmul.f -o matmul.exe
    
    =====Testcase:
    $ cat matmul.f
         program matmul1
          implicit none
          real*8, allocatable, dimension(:,:,:) :: a,b,c
          integer, parameter :: n = 4000
          integer i
    
          allocate(a(n,n,0:1),b(n,n,0:1),c(n,n,0:1))
          a = 1.d0
          b = 1.d0
    !$OMP parallel do private(i)
          do i = 0,1
           c(:,:,i) = matmul(a(:,:,i),b(:,:,i))
          enddo
          deallocate(a,b,c)
          end
    $
    
    ====Runtime output:
    #!/bin/ksh
    set -x
    export XLFRTEOPTS=intrinthds=1
    export XLSMPOPTS=parthds=2
    time ./matmul.exe
    export XLSMPOPTS=parthds=2:bindlist=proc=0,2
    time ./matmul.exe
    
    The following are from a Power7 booted in SMT-2 mode (3.56GHz)
    
    $ ./run
    + export XLFRTEOPTS=intrinthds=1
    + export XLSMPOPTS=parthds=2
    + ./matmul.exe
    
    real    0m27.04s
    user    0m45.03s
    sys     0m0.00s
    + export XLSMPOPTS=parthds=2:bindlist=proc=0,2
    + ./matmul.exe
    
    
    
    real    1m6.88s
    user    0m57.23s
    sys     0m0.00s
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users using the bind and bindlist options of XLSMPOPTS are
    potentially affected by this issue.
    
    PROBLEM DESCRIPTION:
    When using the bind or bindlist options of XLSMPOPTS, the
    compiler does not respect it and binds all threads to one CPU
    causing a performance degradation during runtime.
    

Problem conclusion

  • The issue was in the binding code within the compiler that binds
    threads to different CPUs. This has been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV31593

  • Reported component name

    XL SMP AIX

  • Reported component ID

    5725C7401

  • Reported release

    310

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-11-07

  • Closed date

    2012-11-28

  • Last modified date

    2012-11-28

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

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

Fix information

  • Fixed component name

    XL SMP AIX

  • Fixed component ID

    5725C7401

Applicable component levels

  • R310 PSY

       UP

[{"Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH4D","label":"XL Fortran for AIX"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"14.1"}]

Document Information

Modified date:
01 October 2021