[mpich-discuss] cygwin & mingw64 & windows 7 (64bits)

Jean-Michel Beuken jean-michel.beuken at uclouvain.be
Mon Nov 8 14:46:45 CST 2010


Hello Jayesh,

thank you for ypur quick answer...
>   Mingw does not provide the POSIX runtime environment that Nemesis/sock needs. Try compiling your code with gcc (from mingw package) and MPICH2 (64-bit) installed using the windows installers (mpich2-1.3-win-x86-64.msi).
I had installed this package but I'm not a windows specialist

customarily, on linux, the compilation of mpich2 produces some wrappers ( like mpif90 ) and the link is made easily...

after installation of the msi package under Windows , there are :

------------------------------------------------------------------------------
$ ls /cygdrive/c/lib/
TraceInput.lib    cxx.lib  fmpich2.lib  fmpich2g.lib  irlog2rlog.lib  mpe.lib  mpi.lib  rlog.lib

$ ls /cygdrive/c/include/
clog_commset.h    clog_inttypes.h  mpe.h        mpe_logf.h    mpi.h     mpi_base.mod        mpi_sizeofs.mod  mpif.h
clog_const.h    clog_uuid.h     mpe_log.h  mpe_misc.h    mpi.mod  mpi_constants.mod  mpicxx.h         mpio.h
------------------------------------------------------------------------------

tried with the f90 example found in mpich2 : pi3f90.f90

under linux :
------------------------------------------------------------
[root at shiva f90]# mpif90 -show
gfortran -I/usr/local/mpich2_gcc45/include -L/usr/local/mpich2_gcc45/lib -lmpichf90 -lmpich -lopa -lmpl -lrt -lpthread

[root at shiva f90]# echo $LD_LIBRARY_PATH
/usr/local/gcc45/lib64:/usr/local/gcc45/lib:/usr/local/lib:/usr/local/lib64:/usr/local/mpich2_gcc45/lib

[root at shiva f90]# make
../../bin/mpif90  -c pi3f90.f90
../../bin/mpif90   -o pi3f90 pi3f90.o -lrt -lpthread

------------------------------------------------------------

under cygwin  with the MINGW :
------------------------------------------------------------
$ x86_64-w64-mingw32-gfortran.exe -I/cygdrive/c/include/ -c pi3f90.f90
pi3f90.f90:25.8:

  use mpi
         1
Fatal Error: File 'mpi.mod' opened at (1) is not a GFORTRAN module file
------------------------------------------------------------

then, I comment the 'use mpi' and add

include 'mpif.h'   in pi3f90.f90

------------------------------------------------------------
$ x86_64-w64-mingw32-gfortran.exe -I/cygdrive/c/include/ -c pi3f90.f90  -fno-range-check  -fsecond-underscore

$ x86_64-w64-mingw32-gfortran.exe  -o pi3f90 pi3f90.o -L/cygdrive/c/lib -lfmpich2 -lfmpich2g -lmpi -static-libgcc -static-libgfortran

------------------------------------------------------------

I must put "-fno-range-check" because error :

------------------------------------------------------------
mpif.h:340.42:
     Included at pi3f90.f90:26:

        PARAMETER (MPI_FLOAT_INT=2348810240)
                                           1
Error: Integer too big for its kind at (1). This check can be disabled with the option -fno-range-check
------------------------------------------------------------

in bash, I start smpd ( I verify then the service runs )  and start :

/cygdrive/c/bin/mpiexec.exe -n 4 pi3f90

but nothing :-(

with wmpiconfig, I see the exitcode  for the 4 processes = -1073741819

the  mpich2-1.3-win-x86-64.msi  has been compiled  with which compilers ?

regards

jmb









More information about the mpich-discuss mailing list