Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29235 Discussions

fort run out of comunicators with coarray fortran

Alberto_R_
Beginner
318 Views

 

  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?

     

    0 Kudos
    1 Reply
    Steven_L_Intel1
    Employee
    318 Views

    We don't use individual communicators, so I am not sure what is causing that error. I see that you're using an old Fortran version - can you try it with a newer one? (15.0 is current). If you can provide a self-contained test case we'd be glad to take a look.

    0 Kudos
    Reply