[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