[MPICH] build MPICH2 on Windows

Ruini Xue xueruini at gmail.com
Thu Oct 25 01:44:49 CDT 2007


Hi Krishna,

Thank you for you patient replies, and I tried it again according to your
advice.

Finally, I build it successfully without fortran module. My steps:

   1. run winconfigrue.wsf --cleancode
   - if --remove-fortran is enabled, the MPICH2Installer project will
      disappear after configure, which is required by "Installer"
configuration to
      create MSI for win32. That to say, we can not creat the right
installation
      package in makewindist.bat (devenv.com mpich2.sln /build
      Installer). I am afraid this is a bug of winconfigure.wsf. Have
      you ever tested it with "--remove-fortran" enabled?
      - I am using ActivePerl. The "Could not open src\pmi" error is
      always overthere. But If I run "perl maint\extracterrmsgs
      -skip=src\util/multichannel/mpi.c src\mpi src\nameserv src\util
      src\binding src\include src\mpid src\pmi"  in command line, the
      error disappears (When "-debug" option is enabled, the output
      log is about 18MB, so I attached the result without "-debug").
      However, even with this error, we can still build MPICH2
successfully.  In
      order to make sure what's the root of this error, I installed cygwin and
      rerun "winconfigure.wsf". To my surprise, the error
      disappears!!! Does this means a bug of ActivePerl or a bug of
      winconfigure.wsf? But still I can not enbale the
      "--remove-fortran" option, otherwise, the MPICH2Installer project will
      disappear after configure.
      2. open mpich2.sln and configure MPICH2Installer project
      - remove shm, ssm, fortran, mpe, and log related files (I only
      want channel sock)
      3. change makewindist.bat to reflect the changes in
mpich2.sln(MPICH2Installer)
      - remove everything but ch3sockRelease between :BUILD_RELEASEand
      :BUILD_ERROR. This is the main part of makewindist.bat after
      modifing.
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      :BUILD_RELEASE
      devenv.com mpich2.sln /build ch3sockRelease > make.log
      if %errorlevel% NEQ 0 goto BUILDERROR
      devenv.com mpich2.sln /project mpich2s /build ch3sockRelease >>
      make.log
      if %errorlevel% NEQ 0 goto BUILDERROR
      devenv.com mpich2.sln /build Release >> make.log
      if %errorlevel% NEQ 0 goto BUILDERROR
      devenv.com mpich2.sln /project cxx /build Debug >> make.log
      if %errorlevel% NEQ 0 goto BUILDERROR
      devenv.com examples\examples.sln /project cpi /build Release
      if %errorlevel% NEQ 0 goto BUILDERROR
      devenv.com mpich2.sln /build Installer
      if %errorlevel% NEQ 0 goto BUILDERROR
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      - remove call makegcclibs.bat (I do not need libxxx.a for
      cygwin)
      4. run makewindist.bat --with-curdir
   5. now we got mpich2.msi in maint/ReleaseMSI

Hope this would be helpful for anyone else who wants to build MPICH2 from
the source.


Best

Andrew Xue

On 10/24/07, Jayesh Krishna <jayesh at mcs.anl.gov > wrote:

>  Hi,
>  You can remove the ssm project from makewindist.bat without affecting the
> compilation of other projects. Also if you are not planning to use MPE to
> profile your applications you can also remove the "*P*" projects (eg:
> ch3sockPRelease... ). You can remove the projects fortRelease, gfortRelease,
> sfortRelease & fmpe from makewindist.bat if you do not need fortran
> specific components. You can try building the source on a multi-core
> system to speed things up.
>


>   We had other users who built MPICH2 (1.0.6) on windows from the source
> (When I built the windows binaries for MPICH2 I used the source provided in
> the webpage.). Can you try building MPICH2 after removing the fortran
> related projs from makewindist.bat and let us know the results ? It would
> be great if you could also try running the extracterrmsgs script from
> command line and let us know the results (Run " perl maint\extracterrmsgs
> -skip=src\util/multichannel/mpi.c src\mpi src\nameserv src\util
> src\binding src\include src\mpid src\pmi" from command line. Also try
> running the extracterrmsgs script in debug mode as "perl
> maint\extracterrmsgs -debug -skip=src\util/multichannel/mpi.c src\mpi
> src\nameserv src\util src\binding src\include src\mpid src\pmi".)
>
>


>  (Note: Also make sure that you modify the MPICH2 installer project to
> reflect these changes -- i.e., no fortran libs, no MPE libs. We currently
> have only one installer project and hence we have not removed/disentangled
> the dependencies from makewindist.bat.)
>


>
> Regards,
> Jayesh
>
>  ------------------------------
> *From:* Ruini Xue [mailto:xueruini at gmail.com]
> *Sent:* Wednesday, October 24, 2007 2:28 AM
> *To:* Jayesh Krishna
> *Subject:* Re: [MPICH] build MPICH2 on Windows
>
>
>  Anyone has successfully build mpich2-1.0.6 on windows with the source
> downloaded from the web?
> I found the user guide is not so clear.
>
> e.g. after running
> winconfigure.wsf --remove-fortran --cleancode
> (ps: the "could not open src\pmi" error is still there)
>
> Is it necessary to remove fortran related project
> (fort/sfort/gfort/fpe) from makewindist.bat?
>
> I just want to compile the sock and shm channel, so can I remove the ssm
> project?
>
> The compiling is very very slow (it takes me more than 2 hours, and failed
> at last), how to speed it up?
>
> I want to know who built the MPICH2 binaries for windows on the web (the
> guy in anl?), and maybe he/she is good at these questions.
>
> Best
>
> Andrew
>
> On 10/24/07, Ruini Xue <xueruini at gmail.com> wrote:
> >
> >
> >
> > On 10/23/07, Jayesh Krishna <jayesh at mcs.anl.gov > wrote:
> >
> > >  Hi,
> > >  The "Unhandled definitions" is OK (These are definitions required for
> > > the unix part of the code -- platform dependent). Do you have the "src\pmi"
> > > directory in your source tree ? Can you try configuring without
> > > "--remove-fortran" ?
> > >
> >
> > I just downloaded the src from MPICH homepage, and the "src\pmi"
> > folder is right overthere. I have no fortran compiler so I want to remove
> > it.
> >
> > I try to configure it without "--remove-fortran", unfortunately, the
> > error is still there:
> >
> > ###################################################################
> >
> > D:\Dev\mpich2-1.0.6>winconfigure.wsf --cleancode
> > Microsoft (R) Windows Script Host Version 5.6
> > Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
> >
> > Creating src\include\win64\mpi.h
> > Creating src\include\win32\mpi.h
> > Creating src\include\win32\mpichtimer.h
> > Creating src\include\win64\mpichtimer.h
> > Creating src\include\mpich2info.h
> > Creating src\mpe2\src\logging\include\mpe_log_thread.h
> > Creating src\mpe2\src\callstack\include\mpe_callstack.h
> > Creating src\include\mpio.h
> > Creating src\mpi\romio\adio\include\romioconf.h
> > D:\Dev\mpich2-1.0.6\src\binding\cxx>perl buildiface -nosep
> > Creating src\include\mpicxx.h
> > modifying the comm, win datatype classes to handle unreferenced
> > variables.
> > D:\Dev\mpich2-1.0.6\src\binding\f77>perl buildiface
> > Creating src\include\win32\mpif.h
> > Creating src\include\win64\mpif.h
> > Creating src\binding\f77\fprotos.h
> > Creating file: D:\Dev\mpich2-1.0.6\src\binding\f77\accumulatefs.c
> > Creating file: D:\Dev\mpich2-1.0.6\src\binding\f77\allgatherfs.c
> > Creating file: D:\Dev\mpich2-1.0.6\src\binding\f77\allgathervfs.c
> >
> > ....
> >
> > Creating file: D:\Dev\mpich2-1.0.6\src\binding\f77\win_createfs.c
> > Creating src\binding\f77\setbotf.f
> > D:\Dev\mpich2-1.0.6\src\binding\f90>perl buildiface
> > D:\Dev\mpich2- 1.0.6>perl maint\extracterrmsgs
> > -skip=src\util/multichannel/mpi.c
> > src\mpi src\nameserv src\util src\binding src\include src\mpid src\pmi
> >
> > *Could not open src\pmi*
> >
> > Because of errors in extracting error messages, the file
> > src\mpi\errhan\defmsg.h
> >  was not updated.
> > Creating maint\extractstates
> > Creating maint\extractstrings
> > D:\Dev\mpich2-1.0.6>perl maint\extractstates
> > Creating test\mpi\maint\testmerge
> > D:\Dev\mpich2-1.0.6\test\mpi\cxx\io>perl ..\..\maint\testmerge
> > -defn=..\..\maint
> > \common.defn ioharness.defn ioharness.tlt
> > D:\Dev\mpich2-1.0.6\test\mpi\f77\io >perl ..\..\maint\testmerge
> > -defn=..\..\maint
> > \common.defn ioharness.defn ioharness.tlt
> > Creating src\include\win32\mpichconf.h
> >
> > .......
> >
> > Creating src\include\win64\type1aint.h
> > Creating bin\mpicc.wsf
> > Creating winbuild directory
> > Creating src\pm\smpd\smpd_version.h: 1.0.6
> > Unhandled definitions:
> > HAVE_PVFS2_CREATE_WITHOUT_LAYOUT
> > HAVE_DLSYM
> > HAVE_F90_TYPE_ROUTINES
> > HAVE_PTHREAD_CLEANUP_PUSH
> > HAVE_PTHREAD_CLEANUP_PUSH_MACRO
> > LINUX86_CYCLE_CPUID_RDTSC
> > LINUX86_CYCLE_RDTSC
> > LINUX86_CYCLE_RDTSCP
> > MPICH2_LIBDIR
> > MPICH_DEBUG_MEMARENA
> > MPICH_DEBUG_MUTEX
> > USE_ALLOCA
> > USE_DYNAMIC_LIBRARIES
> > USE_NOPOSIX_FOR_IFCONF
> >
> > ###################################################################
> > Best
> >
> > Andrew
> >
> >
> >
> > >
> > > Regards,
> > > Jayesh
> > >
> > >  ------------------------------
> > > *From:* owner-mpich-discuss at mcs.anl.gov [mailto:owner-mpich-discuss at mcs.anl.gov]
> > > *On Behalf Of *Ruini Xue
> > > *Sent:* Tuesday, October 23, 2007 9:00 AM
> > > *To:* mpich-discuss at mcs.anl.gov
> > > *Subject:* [MPICH] build MPICH2 on Windows
> > >
> > >
> > >  Hello,
> > >
> > > I download the src of MPICH2-1.0.6 and followed the user guide to
> > > build it:
> > >
> > >
> > > #############################################
> > > G:\mpich2-1.0.6>winconfigure.wsf --remove-fortran --cleancode
> > > Microsoft (R) Windows Script Host Version 5.6
> > > Copyright Reserved (C) Microsoft Corporation 1996-2001.
> > >
> > > Creating src\include\win64\mpi.h
> > > Creating src\include\win32\mpi.h
> > > Creating src\include\win32\mpichtimer.h
> > > Creating src\include\win64\mpichtimer.h
> > > Creating src\include\mpich2info.h
> > > Creating src\mpe2\src\logging\include\mpe_log_thread.h
> > > Creating src\mpe2\src\callstack\include\mpe_callstack.h
> > > Creating src\include\mpio.h
> > > Creating src\mpi\romio\adio\include\romioconf.h
> > > G:\mpich2-1.0.6\src\binding\cxx>perl buildiface -nosep
> > > Creating src\include\mpicxx.h
> > > modifying the comm, win datatype classes to handle unreferenced
> > > variables.
> > > G:\mpich2-1.0.6>perl maint\extracterrmsgs
> > > -skip=src\util/multichannel/mpi.c src\
> > > mpi src\nameserv src\util src\binding src\include src\mpid src\pmi
> > >
> > > Could not open src\pmi
> > >
> > > Because of errors in extracting error messages, the file
> > > src\mpi\errhan\defmsg.h
> > >  was not updated.
> > > Creating maint\extractstates
> > > Creating maint\extractstrings
> > > G:\mpich2-1.0.6>perl maint\extractstates
> > > Creating test\mpi\maint\testmerge
> > > G:\mpich2-1.0.6\test\mpi\cxx\io>perl ..\..\maint\testmerge
> > > -defn=..\..\maint\com
> > > mon.defn ioharness.defn ioharness.tlt
> > > G:\mpich2-1.0.6\test\mpi\f77\io>perl ..\..\maint\testmerge
> > > -defn=..\..\maint\com
> > > mon.defn ioharness.defn ioharness.tlt
> > > Creating src\include\win32\mpichconf.h
> > > Creating src\include\win64\mpichconf.h
> > >
> > > .....
> > >
> > > Creating src\include\win64\mpe_logging_conf.h
> > > Creating src\include\win32\mpe_wrappers_conf.h
> > > Creating src\include\win64\mpe_wrappers_conf.h
> > > Creating src\pm\smpd\smpd_version.h: 1.0.6
> > > Unhandled definitions:
> > > HAVE_PVFS2_CREATE_WITHOUT_LAYOUT
> > > HAVE_DLSYM
> > > HAVE_F90_TYPE_ROUTINES
> > > HAVE_PTHREAD_CLEANUP_PUSH
> > > HAVE_PTHREAD_CLEANUP_PUSH_MACRO
> > > LINUX86_CYCLE_CPUID_RDTSC
> > > LINUX86_CYCLE_RDTSC
> > > LINUX86_CYCLE_RDTSCP
> > > MPICH2_LIBDIR
> > > MPICH_DEBUG_MEMARENA
> > > MPICH_DEBUG_MUTEX
> > > USE_ALLOCA
> > > USE_DYNAMIC_LIBRARIES
> > > USE_NOPOSIX_FOR_IFCONF
> > > HAVE_GCC_ASM_SPARC_MEMBAR
> > > HAVE_GCC_ASM_SPARC_STBAR
> > > HAVE_SOLARIS_ASM_SPARC_MEMBAR
> > > HAVE_SOLARIS_ASM_SPARC_STBAR
> > > GCC_X86_CYCLE_CPUID_RDTSC
> > > GCC_X86_CYCLE_RDTSC
> > > GCC_X86_CYCLE_RDTSCP
> > > HAVE_LIBPTHREAD
> > > HAVE_MPI_INIT_THREAD
> > > HAVE_EXECINFO_H
> > > HAVE_FDOPEN
> > > HAVE_UCONTEXT_H
> > > NEEDS_FDOPEN_DECL
> > > HAVE_H_ADDR_LIST
> > >
> > > ERROR: 28 definitions not handled
> > > (61 instances of unhandled definitions)
> > > ######################################
> > >
> > > Why it complains "could not open src\pmi"?
> > >
> > > Best
> > >
> > > Andrew
> > >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20071025/b1bdb736/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: perl.log
Type: application/octet-stream
Size: 228951 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20071025/b1bdb736/attachment.obj>


More information about the mpich-discuss mailing list