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

17.0 update 1 coarrays on Windows 10 x64

IanH
Honored Contributor II
557 Views

I cannot successfully run any coarray program using the Intel 64 target compiler on 17.0 update one with VS2015.  Even the simplest program (just an END statement) results in an indefinite deadlock in WaitForSingleObjectEx across all processes created as part of running the coarray program. 

17.0 initial release works, 17.0 update one IA-32 works.

The call chain from the executable to the WaitForSingleObjectEx in the call include libicaf.dll (17.0-001) and impimt.dll (2017.00.1.0), that were built in October, so I presume they are from update one.  The call stack for the primary process has gone via for_rtl_ICAF_LAUNCH, while the secondary processes have gone via main then for_rtl_init. 

I am stumped.
 

0 Kudos
7 Replies
Steven_L_Intel1
Employee
557 Views

How very interesting. I can reproduce this - we'll investigate.

0 Kudos
Steven_L_Intel1
Employee
557 Views

Escalated as DPD200416079. So far, I haven't been able to figure out which piece changing triggers the problem. I can take a 17.0.1-built EXE and run it in a 17.0.0 build environment, and it works fine. But if I add the paths to the Fortran and MPI DLLs from 17.0.0 to a 17.0.1 environment, it hangs. We'll get to the bottom of this soon.

0 Kudos
jimdempseyatthecove
Honored Contributor III
557 Views

Steve,

Is there a similar issue with the Linux distribution?
 

Jim Dempsey

0 Kudos
Steven_L_Intel1
Employee
557 Views

Um... yes, it would seem!

0 Kudos
Steven_L_Intel1
Employee
557 Views

On Windows, at least, if you replace the impimt.dll in the 17.0.1 folder (C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2017.1.143\windows\mpi\intel64\bin) with the one from 17.0.0, it fixes the hang issue. You'll also want to replace the one in C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64_win\mpirt

I am extremely puzzled that we didn't catch this during our usual product verification testing and am asking some pointed questions right now...

The same general workaround probably works on Linux as well (it would be a .so file).

0 Kudos
Martyn_C_Intel
Employee
557 Views

A fixed library is targeted for Intel MPI 2017.0.2 and for the Intel Fortran Compiler 17.0.2 in the appropriate editions of Intel Parallel Studio XE 2017 update 2.

It will be some weeks before it's available for download, though. In the meantime, you should be able to set the environment variable

     I_MPI_COLL_INTRANODE=pt2pt

as a workaround.

0 Kudos
Steve_Lionel
Honored Contributor III
557 Views

Update 2 fixed this problem for me.

0 Kudos
Reply