Fixes are available
January 2010 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
August 2009 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
May 2010 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
August 2010 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
December 2010 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
April 2011 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
August 2011 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
December 2011 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
April 2012 Update for XL Fortran Advanced Edition for Blue Gene/P, V11.1
XL Fortran Advanced Edition for Blue Gene/P Fix Pack 17 (October 2013 Update) for 11.1
APAR status
Closed as program error.
Error description
When compiling and running the following testcase, the output is incorrect. The error is caused by using the MPI compiler invocation, -O3 and the -qautodbl=dbl4 option. Using the invocation 'xlf95_r' gives the correct output. Removing -qautodbl=dbl4 or -O3 or adding -qstrict gives the correct output. ===== TESTCASE ===== ===== COMPILE COMMAND: mpixlf95_r -O3 -o optim_O3 -qautodbl=dbl4 optim_test.F90 PROGRAM optim_test IMPLICIT NONE INTEGER :: vsp_dim, momnum, ln1,ln2 COMPLEX, DIMENSION(:,:), ALLOCATABLE :: infield COMPLEX, DIMENSION(:), ALLOCATABLE :: mom REAL, DIMENSION(:,:), ALLOCATABLE :: mat integer :: ierr,n ln1=1; ln2=1; vsp_dim = 32 ALLOCATE(infield(1:vsp_dim,ln1:ln2)) ALLOCATE(mat(1:vsp_dim,ln1:ln2)) ALLOCATE(mom(ln1:ln2)) mat = 3.0D0 infield = CMPLX(1.0d0,4.0d0) CALL calc_moments_perf(vsp_dim, infield,mat, mom) PRINT*,ln1,': ',mom(ln1) CONTAINS SUBROUTINE calc_moments_perf(vsp_dim,p_g_1,p_mat,p_mom) INTEGER, INTENT(in):: vsp_dim COMPLEX, DIMENSION(vsp_dim,ln1:ln2), INTENT(in):: p_g_1 REAL, DIMENSION(vsp_dim,ln1:ln2), INTENT(in):: p_mat COMPLEX, DIMENSION(ln1:ln2), INTENT(out):: p_mom COMPLEX, DIMENSION(vsp_dim):: temp INTEGER:: n temp = p_mat(:,ln1) * p_g_1(:,ln1) p_mom(ln1) = SUM(temp,1) END SUBROUTINE calc_moments_perf END PROGRAM optim_test
Local fix
n/a
Problem summary
USER AFFECTED: Users who make use of floating point code. PROBLEM DESCRIPTION: Incorrect output in applications with floating point code. A code optimization was not tracking a floating point register correctly thus resulting in an incorrect computation.
Problem conclusion
Dot product reduction was not properly tracking the secondary floating point register through a string of serialized computations. This meant that it did not correctly transform the computation. The method in which it tracks the secondary register has been corrected.
Temporary fix
Comments
APAR Information
APAR number
LI74650
Reported component name
XL FORTRAN AE B
Reported component ID
5799HJF00
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-06-09
Closed date
2009-10-01
Last modified date
2009-10-01
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 FORTRAN AE B
Fixed component ID
5799HJF00
Applicable component levels
RB10 PSY
UP
Document Information
Modified date:
17 October 2021