Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

Debugging Fortran MPI codes in VS2012 and Intel MPI

Wee_Beng_T_
Beginner
821 Views

Hi,

Before this I was using VS2008 with ifort 11 and MPICH.

I folllowed the 1st mtd (by attaching to a currently running process (one VS window for all selected MPI processes)) from:

http://wiki.rac.manchester.ac.uk/community/MPI/VisualStudio_mpich2_howto

It worked but fails for np >= 4. Seems to be MPICH problem.

However, using the new setup, I can't get it to work, even with np = 1 or 2. Error is:

[-1:10644]ERROR:execvp error on file: C:\Obj_tmp\ibm3d_IIB_mpi\Debug\ibm3d_IIB_mpi_vs2012.exe, The filename, directory name, or volume label syntax is incorrect.

[-1:10644]ERROR:execvp error on file: C:\Obj_tmp\ibm3d_IIB_mpi\Debug\ibm3d_IIB_mpi_vs2012.exe, The filename, directory name, or volume label syntax is incorrect.

Tried to solve this problem but the mtds do not work in my case.

Is there any solution? Or is there a proper or better way to debug Fortran MPI codes in VS2012 and Intel MPI?

Btw, running thru command line works.

Thanks

 

 

 

0 Kudos
5 Replies
Wee_Beng_T_
Beginner
821 Views

Btw,

I also got this error if I run my code using wmpiexec GUI:

Error while connecting to host, No connection could be made because the target machine actively refused it. (10061)
Connect on sock (host=dell-work, port=8676) failed, exhaused all end points
Unable to connect to 'dell-work:8676',
sock error: Error = -1

 

 

 

0 Kudos
Steve_H_Intel1
Employee
821 Views

 

Questions:

1) What version of Intel MPI Library are you using?

2) From a command-line session, what does the command "smpd -status" generate?

3) For the diagnostic error messages:

[-1:10644]ERROR:execvp error on file: C:\Obj_tmp\ibm3d_IIB_mpi\Debug\ibm3d_IIB_mpi_vs2012.exe, The filename, directory name, or volume label syntax is incorrect.

[-1:10644]ERROR:execvp error on file: C:\Obj_tmp\ibm3d_IIB_mpi\Debug\ibm3d_IIB_mpi_vs2012.exe, The filename, directory name, or volume label syntax is incorrect.

what happens when you issue the command:

     C:\Obj_tmp\ibm3d_IIB_mpi\Debug\ibm3d_IIB_mpi_vs2012.exe  ...

outside of using the "mpiexec" harness? Please note that "..." represents command-line options for the executable, along with appropriate input and output file names, if necessary.

Thank you,

-Steve

0 Kudos
Wee_Beng_T_
Beginner
821 Views

Hi Steve,

I'm using ver 5 update 3 (5.0.3?)

C:\Program Files (x86)\Intel\Composer XE 2015>smpd -status
smpd running on dell-work

I do not have any command line options. But my input file is in dir "C:\Obj_tmp\ibm3d_IIB_mpi" and the exe is in "C:\Obj_tmp\ibm3d_IIB_mpi\Debug".

So I have to run inside the dir "C:\Obj_tmp\ibm3d_IIB_mpi" in order for it to read the input file, which gives

  0.000000000000000E+000   1.00000000000000       0.000000000000000E+000
  0.000000000000000E+000  0.000000000000000E+000  0.250000000000000
   1.00000000000000       0.400000000000000                0     -400000
 myid,jsta,jend,ksta,kend,ijk_sta,ijk_end           0           1           8
           1          10           1         320
 myid,num_procs_xyz,start_ijk_ghost,width_ijk,end_ijk_ghost           0
           1           1           1           1           1           1
           4           8          10           4           8          10
 body_cg_ini  0.253609021328458      -1.443433881779463E-003
   6.99946888939671
        1094  surfaces with correct vertex ordering...

the correct output

 

 

 

 

0 Kudos
Steve_H_Intel1
Employee
821 Views

 
For your Visual Studio 2012 installation, does it have restrictions similar to what is documented at the URL:

         http://wiki.rac.manchester.ac.uk/community/MPI/VisualStudio_mpich2_howto

where it points out the following for MS Visual Studio 2008 with Intel Visual Fortran 11.0.047 running mpich2:

"For the 64 bit test system, care has to be taken regarding compatibility of components one wishes to use together. Given only a 32 bit Visual Studio (VS) 2008 is available for free to Univ of Manchester researchers, a 32 bit version of mpich2 is used. We downloaded the 32 bit Windows binary from the mpich2 web site. (Using 64 bit mpich2 gives link time errors.)".

If you have a version of Visual Studio 2012 that has similar restrictions to that of the Visual Studio 2008 package that is referenced above, then Intel MPI Library for Windows OS may not work properly within your Visual Studio 2012 environment.

However, if you are working with a non-restricted version of Visual Studio 2012, then please follow the "Compiling and Linking" instructions referenced at the URL:

       https://software.intel.com/sites/default/files/managed/af/09/User_Guide.pdf

The section titled, "Debugging and Testing" from  the above web-based documentation refers to the Intel® MPI Library support for the Message Queue Debugger functionality available in Microsoft* MPI Windows Debugger* Extension (MS-MPI v6 WinDbg Debugger* Extension and later).

>I also got this error if I run my code using wmpiexec GUI:
>
>
>Error while connecting to host, No connection could be made because the target machine actively refused it. (10061)
>Connect on sock (host=dell-work, port=8676) failed, exhaused all end points
>Unable to connect to 'dell-work:8676',
>sock error: Error = -1

Regarding the "wmpiexec" GUI, for the destination server that you are trying to connect to, and using a "Command Prompt" window, please type the command:

     netstat -a | findstr LISTEN

For the diagnostics generated, you want to look for the digit sequence 8676 on that system, and determine what that port is doing. Searching for the digit sequence 8676 is based on the diagnostic message "Unable to connect to 'dell-work:8676".

Thank you,

-Steve

 

0 Kudos
Wee_Beng_T_
Beginner
821 Views

Hi,

Thanks for the help Steve

I finally found my problem. mpiexec by default runs the file ibm3d_IIB_mpi_vs2012.exe but in my VS setup, the output file uses ibm3d_IIB_mpi.exe, hence the error. 

wmpiexec is also working now.

 

0 Kudos
Reply