Hi,
I am running a coarray fortran application with intel fortran compiler ifort (IFORT) 13.0.1 20121010, and after some transfers between images, the code crashes with the error:
Fatal error in MPI_Win_create: Other MPI error, error stack:
MPI_Win_create(153)...........: MPI_Win_create(base=0x23ec030, size=8224, disp_unit=1, MPI_INFO_NULL, comm=0x84000000, win=0x2c92650) failed
MPID_Win_create(37)...........:
MPIDI_Win_create(92)..........:
MPIR_Comm_dup_impl(55)........:
MPIR_Comm_copy(1070)..........:
MPIR_Get_contextid(543).......:
MPIR_Get_contextid_sparse(834): Too many communicators
It seems to me that the compiler is translating each sync images/daa transfer into a different MPI communicators, and therefore the program runs very fast out of communicators.
The code crashes after a fixed number of calls to a subroutine that reads:
subroutine copybnd_su2_id(U,latt, id, ieo)
type (SU2_field), intent (inout) :: U
type (lattice), intent (in) :: latt
integer, intent (in) :: id, ieo
integer :: imx, j, ifc, kt, ipr, isrc, iofs
complex (kind=DPC), allocatable :: zbuf(:,:)[:], zloc(:,:)
iofs = 0
imx = maxval(latt%iface(:))/2+1
allocate(zbuf(imx,2)[*], zloc(imx,2))
...
Any ideas about how to overcome this issue?