IBM Support

IV26399: PERFORMANCE ISSUE WITH XLSMPOPTS BINDING OPTION

Fixes are available

August 2012 PTF for XL C for AIX, V12.1
August 2012 PTF for XL C/C++ for AIX, V12.1
August 2012 IBM XL C++ Runtime for AIX, V12.1
September 2012 PTF for XL Fortran for AIX, V12.1
September 2012 PTF for XL Fortran Runtime for AIX, V12.1
November 2012 PTF for XL C for AIX, V12.1
November 2012 PTF for XL C/C++ for AIX, V12.1
January 2013 PTF for XL C for AIX, V10.1
January 2013 PTF for XL C/C++ for AIX, V10.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 18 (July 2013 PTF) for 10.1
IBM XL C++ Runtime for AIX Fix Pack 2 (July 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++ Runtime for AIX Fix Pack 3 (September 2013 PTF) for 12.1
XL C/C++ for AIX Fix Pack 19 (October 2013 PTF) for 10.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 C++ Runtime for AIX Fix Pack 4 (August 2015 PTF) for 12.1
XL Fortran for AIX Fix Pack 12 (August 2015 Update) for 14.1
XL C/C++ for AIX Fix Pack 21 (October 2015 PTF) for 10.1
XL C++ Runtime for AIX Fix Pack 5 (October 2015 PTF) for 12.1
XL C for AIX Fix Pack 21 (October 2015 PTF) for 10.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
August 2012 PTF for XL Fortran for AIX, V14.1
August 2012 PTF for XL Fortran Runtime for AIX, V14.1
September 2012 PTF for XL C for AIX, V10.1
September 2012 PTF for XL C/C++ for AIX, V10.1
November 2012 PTF for XL Fortran for AIX, V14.1
November 2012 PTF for XL Fortran Runtime for AIX, V14.1
January 2013 PTF for XL Fortran for AIX, V12.1
January 2013 PTF for XL Fortran Runtime for AIX, V12.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 18 (July 2013 PTF) for 10.1
XL Fortran for AIX Fix Pack 18 (July 2013) for 12.1
XL Fortran Runtime for AIX Fix Pack 18 (July 2013 PTF) for 12.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 Fortran for AIX Fix Pack 19 (October 2013) for 12.1
XL Fortran Runtime for AIX Fix Pack 19 (October 2013 PTF) for 12.1
XL C for AIX Fix Pack 19 (October 2013 PTF) for 10.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 20 (October 2014 PTF) for 10.1
XL C/C++ for AIX Fix Pack 20 (October 2014 PTF) for 10.1
XL Fortran for AIX Fix Pack 20 (October 2014 PTF) for 12.1
XL Fortran Runtime for AIX Fix Pack 20 (October 2014 PTF) for 12.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

  • There appears to be a performance problem when using the bind
    and bindlist options to XLSMPOPTS:
    
    $ 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
    $
    
    $ xlf_r -O -q64 -qsmp=omp matmul.f -o matmul.exe
    
    
    #!/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
    
    /u/pdemo/bind_bug $ ./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 who bind with the XLSMPOPTS option may be affected by this
    issue.
    
    ====Problem Description:
    This is a problem with the binding code that causes all threads
    to be bound to a single CPU 0. This causes a performance
    bottle-neck and leads to the degradation.
    

Problem conclusion

  • The binding code has been fixed so that not all threads get
    bound to the same CPU.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV26399

  • 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-08-17

  • Closed date

    2012-08-17

  • Last modified date

    2012-08-17

  • 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

[{"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:
03 October 2021