FYI.

Begin forwarded message:

From: "Benjamin Réveillé" <[EMAIL PROTECTED]>
Date: May 2, 2006 7:44:38 AM PDT
To: [EMAIL PROTECTED]
Subject: Problem with OpenMP Reduction Clause

Hello

I've stumbled onto a problem with the OpenMP REDUCTION clause

Here is the reduced code array_reduction.f90


##########################################
program array_reduction
  implicit none
  integer, parameter :: n=10,m=1000
  integer :: i
  integer, dimension(n) :: sumarray
  !
  call foo(n,m,sumarray)
  do i=1,n
     print*,sumarray(i)
  end do
end program array_reduction

subroutine foo(n,m,sumarray)
  use omp_lib, only : omp_get_thread_num
  implicit none
  integer, intent(in) :: n,m
  integer, dimension(n), intent(out) :: sumarray
  !
  integer :: i,j
  !
  sumarray(:)=0
!$OMP PARALLEL DEFAULT(shared)
  print*,'hello from thread ',omp_get_thread_num()
!$OMP DO PRIVATE(j,i), REDUCTION(+:sumarray)
  do j=1,m
     do i=1,n
        sumarray(i)=sumarray(i)+i
     end do
  end do
!$OMP END DO
!$OMP END PARALLEL
end subroutine foo
##########################################


pgi 6.1 and xlf10.1 both compile and execute with the following correct output:
hello from thread  1
hello from thread  0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000


Intel 9.1 compiles but [Abort]s on execution.

gfortran
Using built-in specs.
Target: i386-linux
Configured with: ../gcc/configure
--prefix=/cosmic/coudert/tmp/gfortran-20060502/irun
--enable-languages=c,fortran --host=i386-linux
--with-gmp=/cosmic/coudert/tmp/gfortran-20060502/gfortran_libs
Thread model: posix
gcc version 4.2.0 20060502 (experimental)

gfortran segfault on compile (gfortran -fopenmp array_reduction.f90)
with the following message:
arrayreduction.f90: In function 'foo':
arrayreduction.f90:14: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

My understanding (from following the mailing list) is that the
segfault itself is a gfortran bug...
Should I therefore file one ?

My 2nd question is is the coding valid ??? From reading page 83 of the
OpenMP 2.5 Specifications
(http://www.openmp.org/drupal/mp-documents/spec25.pdf) I tend to think
that sumarray is a valid array for the REDUCTION clause. I wonder
still since INTEL compilers seem to have a problem with it too.

Thanks for your help

Reply via email to