Program Test_micCAF Implicit None Integer :: i Do i = 1,num_images() If (this_image() .EQ. i) Write(*,'(A,I4)') 'Hello from image',i SYNC ALL End Do End Program Test_micCAF
Interesting. Most of the MIC libraries are provided for building on Windows but not those. I will make inquiries of the developers on Monday. I do know that heterogenous Windows-MIC applications are not supported, but I see no reason why a native build couldn't be. Note that the article you reference shows building on Linux.
Thank you for the quick reply. I haven't been able to find much in the way of documentation for compiling on a Windows host for native execution, or for native execution of a coarray application for that matter.
Since my post this morning, I've made enough progress to get things running:
I've extracted the following files from the latest Linux Fortran Redistributable package and copied them to "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.3.207\windows\compiler\lib\intel64_win_mic\"
Compilation (ifort /Qmic -coarray micCAF.f90 -o micCAF.mic) is now successful but with a warning:
k1om-mpss-linux-ld.exe: warning: libmpi_mt.so.4, needed by C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.3.207\windows\compiler\lib\mic/libicaf.so, not found (try using -rpath or -rpath-link)
I copy the binary and needed libraries to a working directory on the MIC:
I also copy the contents of the /mpi/mic/bin folder from the Linux Redistributable to the /bin folder on the MIC. The program now runs.
I think there are two shortfalls here:
It's not my intent to invoke MPI between the host and the MIC, but the MIC does need MPI for a native coarray application regardless of the host OS (right?). Is the MIC file system missing the MPI files because it is loaded from the Windows host MPSS? Does a Linux hosted MPSS load a different default file system image to the MIC?
According to the MPSS User Guide, I can make changes to the file system that is loaded at MIC boot. I'll be doing this so that I don't need to copy the MPI files from the host to the MIC after every reset.
Intel Fortran applications that use coarrays need the Intel MPI runtime. Tim is correct that we don't support heterogeneous coarrays with a Windows host, but one should be able to use Windows to build a native MIC-only coarray application. I will ask why this isn't being provided. It might be an oversight.
At the moment, it appears that this was an oversight. I have filed issue DPD200413988 on this.
I'll note that it is generally required that you copy any dependent shared libraries to the MIC system before execution. Most are not included in the default MPSS configuration.