Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Glenn Morris (gmorris_at_[hidden])
Date: 2006-01-18 00:18:06


Don't know if this will be of help, but on further investigation the
problem seems to be some code that essentially does the following:

!$OMP PARALLEL DO
do i=1,n
  do j=1,m
    call sub(arg1,...)
  end do
end do
!$OMP END PARALLEL DO

where subroutine sub allocates a temporary array:

subroutine sub(arg1,...)
   real, intent(in) :: arg1
   real, dimension(:), allocatable :: u

   allocate(u(1:arg1))

   ...

   deallocate(u)

end subroutine

The only backtrace I can get is:

Thread received signal SEGV
__cfree () in /lib/tls/libc-2.3.2.so
(idb) bt
#0 0x008a91f6 in __cfree () in /lib/tls/libc-2.3.2.so
#1 0x081bdf46 in opal_mem_free_free_hook () in <executable>

If I change the subroutine to make u have a fixed size larger than the
largest possible required value, it runs OK past that point (but then
tends to crash further on in the code with a similar sounding problem
in __cfree or somesuch).