[mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 compilers

Arun Murthy arun.murthy at fluidyn.com
Tue Mar 8 01:28:45 CST 2011


Hi

I have noticed problems in running Fortran MPICH2 applications. 
Basically, the prints to standard output from a Fortran module don't 
seem to work properly. They appear after the program has exited. This 
problem doesn't exist with C program.

I did a test with "fpi.f" example. I have used MPICH2-1.3.3rc1 and 
mingw-w64-1.0-bin_i686-mingw_20101129 compiler. (I have tested it with 
GCC 4.5.2 provided by www.equation.com and the results are same.) Below 
are screen shots when I run fpi.exe using mpiexec and then directly:

------------------------------------------------------------------------
C:\tmp\mpi>*"C:\Program Files\MPICH2\bin"\mpiexec.exe -n 1 -localonly 
fpi.exe*

9
12
0
  Process            0  of            1  is alive
Enter the number of intervals: (0 quits)
   pi is approximately: 3.1426214565576127  Error is: 0.0010288029678196
Enter the number of intervals: (0 quits)
   pi is approximately: 3.1421713566497975  Error is: 0.0005787030600044
Enter the number of intervals: (0 quits)
------------------------------------------------------------------------
C:\tmp\mpi>*fpi.exe*
  Process            0  of            1  is alive
Enter the number of intervals: (0 quits)
9
   pi is approximately: 3.1426214565576127  Error is: 0.0010288029678196
Enter the number of intervals: (0 quits)
0

C:\tmp\mpi>
------------------------------------------------------------------------

I did not find any options for mpiexec to overcome this. Thanks for your 
help.

Best Regards
Arun


On 23-02-2011 10:14, Arun Murthy wrote:
> Hi Jayesh
>
> Thanks for your answer. For the moment, I will continue to work with 
> GCC V4.5.x.
>
> But, this raises one doubt in my mind. Perhaps, this is not the right 
> forum to raise this question. Nevertheless, I am counting on the 
> experience and knowledge of people at ANL and on this forum. What 
> happens when I migrate to a new GCC compiler, say V4.7 or V4.8 or even 
> V5. Will there be a backward compatibility with the MPICH2 libraries 
> or will I have to rebuild MPICH2 on the new compiler suite? I have 
> encountered several such backward compatibility problems with GCC on 
> Linux.
>
> Thanks for your answers
>
> Best Regards
> Arun
>
>
>
> On 22-02-2011 22:27, Jayesh Krishna wrote:
>> Hi,
>>   It is possible that mingw gcc version 4.4.3 is old (64-bit was in 
>> the nascent stage) and does not support 64-bit libs generated from 
>> Windows libraries. I test libmpi.a using mingw gcc version 4.6.0 .
>>
>> Regards,
>> Jayesh
>>
>> ----- Original Message -----
>> From: "Arun Murthy"<arun.murthy at fluidyn.com>
>> To: "Jayesh Krishna"<jayesh at mcs.anl.gov>
>> Cc: mpich-discuss at mcs.anl.gov
>> Sent: Tuesday, February 22, 2011 9:31:21 AM
>> Subject: Re: [mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 
>> compilers
>>
>> Hi Jayesh
>>
>> I am linking with libmpi.a. I am able to run the code after compiling it
>> with V4.5.3.
>>
>> With Best Regards
>> Arun
>>
>>
>> On 22-02-2011 20:55, Jayesh Krishna wrote:
>>> Hi,
>>>    Are you linking using libmpi.a or mpi.lib ? Are you able to run 
>>> your code after compiling it with V4.5.3 ?
>>>
>>> Regards,
>>> Jayesh
>>>
>>> ----- Original Message -----
>>> From: "Arun Murthy"<arun.murthy at fluidyn.com>
>>> To: mpich-discuss at mcs.anl.gov
>>> Sent: Tuesday, February 22, 2011 7:05:51 AM
>>> Subject: Re: [mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 
>>> compilers
>>>
>>>
>>> Hi
>>>
>>> I downloaded the MPICH2-1.3.2p1 Windows EM64T/AMD64 (binary) onto my 
>>> Windows-XP 64bit machine. I tried to use it with two GNU compilers: 
>>> V4.4.3 and V.4.5.3. Basically, I tried to link the icpi.c example 
>>> into an executable. With GCC V4.4.3, I get undefined symbols, while 
>>> with V4.5.3, it works well. Does it mean that, if I want to use GCC 
>>> V4.4.3, I need to rebuild MPICH2 from the source using the V4.4.3 
>>> compiler?
>>>
>>> The output details of my trials are below.
>>>
>>> Thanks for your help.
>>>
>>> With Best Regards
>>> Arun
>>>
>>> D:\tmp>"C:\Program Files\mingw_443\64bit\bin\gcc.exe" --ver
>>>
>>> Built by Equation Solution<http://www.Equation.com>   .
>>> Using built-in specs.
>>> Target: x86_64-pc-mingw32
>>> Configured with: ../gcc-4.4.3-mingw/configure 
>>> --host=x86_64-pc-mingw32 --build=x86_64-unknown-linux-gnu 
>>> --target=x86_64-pc-mingw32 
>>> --prefix=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gcc/4.4.3 
>>> --with-gmp=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gmp 
>>> --with-mpfr=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpfr --with-mpc=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpc 
>>> --with-sysroot=/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.4.3 
>>> --with-gcc --with-gnu-ld --with-gnu-as --disable-shared 
>>> --disable-nls --disable-tls --enable-libgomp 
>>> --enable-languages=c,fortran,c++ --enable-threads=win32 
>>> --disable-win32-registry
>>> Thread model: win32
>>> gcc version 4.4.3 (GCC)
>>>
>>> D:\tmp>"C:\Program Files\mingw_443\64bit\bin\gcc.exe" -I"C:\Program 
>>> Files\MPICH2\include" icpi.c -L"C:\Program Files\MPICH2"\lib -lmpi 
>>> -o icpi.exe
>>>
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x76): 
>>> undefined reference to `MPI_Init'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x87): 
>>> undefined reference to `MPI_Comm_size'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x98): 
>>> undefined reference to `MPI_Comm_rank'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0xab): 
>>> undefined reference to `MPI_Get_processor_name'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x142): 
>>> undefined reference to `MPI_Wtime'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x16c): 
>>> undefined reference to `MPI_Bcast'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x237): 
>>> undefined reference to `MPI_Reduce'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x2b4): 
>>> undefined reference to `MPI_Wtime'
>>> C:\DOCUME~1\ns\LOCALS~1\Temp\ccg2hczk.o:icpi.c:(.text+0x31b): 
>>> undefined reference to `MPI_Finalize'
>>> collect2: ld returned 1 exit status
>>>
>>> D:\tmp>"C:\Program Files\mingw-w64\bin\x86_64-w64-mingw32-gcc.exe" 
>>> --ver
>>>
>>> Using built-in specs.
>>> COLLECT_GCC=C:\Program Files\mingw-w64\bin\x86_64-w64-mingw32-gcc.exe
>>> COLLECT_LTO_WRAPPER=c:/program 
>>> files/mingw-w64/bin/../libexec/gcc/x86_64-w64-min
>>> gw32/4.5.3/lto-wrapper.exe
>>> Target: x86_64-w64-mingw32
>>> Configured with: ../../../build/gcc/src/configure 
>>> --target=x86_64-w64-mingw32 
>>> --prefix=/c/buildbot/mingw-w64/mingw32/mingw-x86-x86_64/build/build/root 
>>> --with-sysroot=/c/buildbot/mingw-w64/mingw32/mingw-x86-x86_64/build/build/root 
>>> --enable-languages=all,obj-c++ --enable-fully-dynamic-string 
>>> --disable-multilib
>>> Thread model: win32
>>> gcc version 4.5.3 20110207 (prerelease) (GCC)
>>>
>>> D:\tmp>"C:\Program Files\mingw-w64\bin\x86_64-w64-mingw32-gcc.exe" 
>>> -I"C:\Program Files\MPICH2\include" icpi.c -L"C:\Program 
>>> Files\MPICH2"\lib -lmpi -lfmpich2g -
>>> o icpi.exe
>>>
>>> SUCCESS
>>>
>>> D:\tmp>
>>>
>>>
>>> On 11-01-2011 18:53, Arun Murthy wrote:
>>>
>>> Hi Jayesh
>>>
>>> Yes, I linked icpi.o with mpi.lib. Happy to hear that Mingw64 
>>> support will be available this month. I can wait for a couple of 
>>> weeks for the next release. In the meantime, if you want me to test 
>>> the pre-release version, I would be happy to do that.
>>>
>>> Thanks for your help.
>>>
>>> Best regards
>>> Arun
>>>
>>>
>>> On 11-01-2011 17:10, Jayesh Krishna wrote:
>>>
>>>
>>> Hi,
>>> Are you trying to link your code with mpi.lib ? Mingw compilers may 
>>> not be playing nice with the windows libraries. AFAICT we added 
>>> support for mingw 64-bit compilers (*.a libraries compatible with 
>>> mingw 64-bit compilers) after 1.3.1 was released. It should be 
>>> available in the next release, 1.3.2, due this month.
>>>
>>> (PS: If you need it sooner than that let me know and I can get you a 
>>> custom build for development purposes)
>>> Regards,
>>> Jayesh
>>>
>>> ----- Original Message -----
>>> From: "Arun Murthy"<arun.murthy at fluidyn.com>
>>> To: "Jayesh Krishna"<jayesh at mcs.anl.gov>
>>> Cc: mpich-discuss at mcs.anl.gov
>>> Sent: Tuesday, January 11, 2011 2:12:01 AM
>>> Subject: Re: [mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 
>>> compilers
>>>
>>> Hi Jayesh
>>>
>>> I opened CMD with "Run as administrator" and did the following:
>>>
>>> C:\tmp>"C:\Program Files\MPICH2\bin"\mpiexec.exe -n 2 -localroot 
>>> c:\tmp\icpi.exe
>>>
>>> Job terminated with following error message:
>>>
>>> "
>>> Error posting writev, A request to send or receive data was 
>>> disallowed because the socket had already been shut down in that 
>>> direction with a previous shutdown call.(10058)
>>> unable to post a write for the next command,
>>> sock error: Error = 10058
>>>
>>> unable to post a write of the closed_request command to the parent 
>>> context.
>>> unable to close the stdin context.
>>> state machine failed.
>>> "
>>>
>>> C:\tmp>"C:\Program Files\MPICH2\bin"\mpiexec.exe -n 2 -localroot 
>>> -exitcodes c:\tmp\icpi.exe
>>>
>>> Job terminated with following error message:
>>>
>>> "
>>> rank: node: exit code
>>> 0: Arun-PC: -1073741819
>>> 1: Arun-PC: -1073741819
>>> "
>>>
>>> C:\tmp>"C:\Program Files\MPICH2\bin"\smpd -status
>>>
>>> "
>>> smpd running on Arun-PC
>>> "
>>>
>>> Thanks for your help.
>>> Best Regards
>>> Arun
>>> On 10-01-2011 22:08, Jayesh Krishna wrote:
>>>
>>> Hi,
>>> Can you try running the job from an administrator command prompt 
>>> (Note that opening a command prompt from an administrator account 
>>> does not give you an admin command prompt. Right-click on the 
>>> command prompt icon and select "Run as administrator" to get an 
>>> admin command prompt) and see if it works ?
>>> Can you also check the status of the MPICH2 process manager (Type 
>>> "smpd -status" at the command prompt)?
>>>
>>> Regards,
>>> Jayesh
>>> ----- Original Message -----
>>> From: Arun Murthy<arun.murthy at fluidyn.com>   To: Jayesh 
>>> Krishna<jayesh at mcs.anl.gov>   Cc: mpich-discuss at mcs.anl.gov Sent: 
>>> Mon, 10 Jan 2011 01:33:41 -0600 (CST)
>>> Subject: Re: [mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 
>>> compilers
>>>
>>> Hi Jayesh
>>>
>>> I tried that. It did not help. Here is the response:
>>>
>>> "
>>> C:\tmp>"C:\Program Files\MPICH2\bin"\mpiexec.exe -n 2 -localroot 
>>> icpi.exe
>>>
>>> Unable to open the HKEY_LOCAL_MACHINE\SOFTWARE\MPICH\SMPD\process\6308
>>> registry key, error 5, Access is denied.
>>> Unable to open the HKEY_LOCAL_MACHINE\SOFTWARE\MPICH\SMPD\process\808
>>> registry k ey, error 5, Access is denied.
>>> "
>>>
>>> When I killed the job by<CTRL>   C, the following messages appeared:
>>>
>>> "
>>> mpiexec aborting job...
>>> received suspend command for a pmi context that doesn't exist: 
>>> unmatched
>>> id = 1
>>>
>>> job aborted:
>>> rank: node: exit code[: error message]
>>> 0: Arun-PC: -1073741819: mpiexec aborting job
>>> 1: Arun-PC: -1073741819
>>> Terminate batch job (Y/N)? y
>>> "
>>>
>>> When I tried the same thing on the pre-built "cpi.exe", I get the same
>>> messages that I got with "icpi.exe", but it still works:
>>>
>>> "
>>> C:\tmp>"C:\Program Files\MPICH2\bin"\mpiexec.exe -n 2 -localroot cpi
>>>
>>> Unable to open the HKEY_LOCAL_MACHINE\SOFTWARE\MPICH\SMPD\process\4544
>>> registry key, error 5, Access is denied.
>>> Unable to open the HKEY_LOCAL_MACHINE\SOFTWARE\MPICH\SMPD\process\7288
>>> registry key, error 5, Access is denied.
>>>
>>> Enter the number of intervals: (0 quits) 9
>>> pi is approximately 3.1426214565576127, Error is 0.0010288029678196
>>> wall clock time = 0.000077
>>>
>>> Enter the number of intervals: (0 quits)
>>> "
>>>
>>> When I killed this job by<CTRL>   C, the following messages appeared:
>>>
>>> "
>>> mpiexec aborting job...
>>> SuspendThread failed with error 5 for process
>>> 0:33FB034C-A281-4d45-9189-9DDCDC33C941:'cpi'
>>> unable to suspend process.
>>> unable to read the cmd header on the pmi context, Error = -1.
>>> Error posting readv, An existing connection was forcibly closed by the
>>> remote host.(10054)
>>>
>>> SuspendThread failed with error 5 for process
>>> 1:33FB034C-A281-4d45-9189-9DDCDC33C941:'cpi'
>>> unable to suspend process.
>>> unable to read the cmd header on the pmi context, Error = -1.
>>> Error posting readv, An existing connection was forcibly closed by the
>>> remote host.(10054)
>>>
>>> received kill command for a pmi context that doesn't exist: 
>>> unmatched id = 0
>>>
>>> job aborted:
>>> rank: node: exit code[: error message]
>>> 0: Arun-PC: 123: process 0 exited without calling finalize
>>> 1: Arun-PC: 123: process 1 exited without calling finalize
>>> Terminate batch job (Y/N)? y
>>> "
>>>
>>> Does it have anything to do with an incorrect node (-1073741819) on
>>> which mpiexec is trying to launch the processes? Thanks for your help.
>>>
>>> Best Regards
>>> Arun
>>>
>>>
>>> On 07-01-2011 22:11, Jayesh Krishna wrote:
>>>
>>> Hi,
>>> Can you try running your program with the "-localroot" option and 
>>> let us know if it works for you (mpiexec -n 2 -localroot icpi.exe)?
>>>
>>> Regards,
>>> Jayesh
>>>
>>> ----- Original Message -----
>>> From: "Arun Murthy"<arun.murthy at fluidyn.com>   To: 
>>> mpich-discuss at mcs.anl.gov Sent: Friday, January 7, 2011 12:56:17 AM
>>> Subject: [mpich-discuss] MPICH2 On Windows 64 bit and Mingw-w64 
>>> compilers
>>>
>>> Hi
>>>
>>> I am trying to use MPICH2 on Windows 7 64bit (installed from
>>> mpich2-1.3.1-win-x86-64.msi) along with Mingw-w64 compiler suite
>>> (mingw-w64-1.0-bin_i686-mingw_20101129).
>>>
>>> I tried to compile-link the example "icpi.c" using following command:
>>>
>>> C:\MinGW\mingw-w64-1.0-bin_i686-mingw_20101129\bin\x86_64-w64-mingw32-gcc.exe 
>>>
>>> -I"C:\Program Files\MPICH2\include" icpi.c -L"C:\Program
>>> Files\MPICH2\lib" -lmpi -o icpi.exe
>>>
>>> I could get the executable, but it doesn't run with any number of
>>> processors. When run with mpiexec, it aborts without any message. I
>>> could run the pre-built "cpi.exe" with any number of CPU's. I don't 
>>> have
>>> MS Visual Studio on my machine. Can anyone help?
>>>
>>> By the way, the 32-bit version of MPICH1 (1.2.5 SDK.gcc) works well 
>>> with
>>> Mingw-w32 compiler suite.
>>>
>>> Thanks
>>> Arun
>>>
>>>
>>> _______________________________________________
>>> mpich-discuss mailing list mpich-discuss at mcs.anl.gov 
>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> mpich-discuss mailing list
>>> mpich-discuss at mcs.anl.gov
>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> mpich-discuss mailing list
>>> mpich-discuss at mcs.anl.gov
>>> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>>>
>>>
>>>
>>
>>
>>
>
> _______________________________________________
> mpich-discuss mailing list
> mpich-discuss at mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20110308/06c6ac01/attachment-0001.htm>


More information about the mpich-discuss mailing list