[petsc-users] petsc with hypre on Windows

Dominik Szczerba dominik at itis.ethz.ch
Fri Jul 30 04:12:53 CDT 2010


As Satish noted, I am using the expected version 2.6b. I could not see any
changes in the latest hypre tarball and the automatically downloaded linux
version that compiles properly. But I have sent the diff to the maint list.

I am compiling hypre natively on Windows 7 64 bit using Visual Studio 2008
compiler and linker. Dumpbin does not complain anymore as before, reporting
a valid library. I can compile hypre examples (NOT following their
apparently broken way described in the documentation) and I can
independently link to this library myself using the native cl.exe/link.exe
compiler/linker. The created executables do not reveal any dependencies to
Cygwin, according to the Dependency Walker. I see no reason whatsoever to
assume something is wrong here.

So as far as I can tell the problem is with Petsc. I am glad to offer any
testing needed.

PS. Actually, the libraries are being created despite the compilation
failure (see below). Is there a way to quickly check the validity of the
hypre part?

 Directory of C:\Users\Dominik\Programs\petsc-3.1-p3\win64-msvc-release\lib

30.07.2010  02:01    <DIR>          .
30.07.2010  02:01    <DIR>          ..
30.07.2010  01:32         1'233'774 libf2cblas.lib
30.07.2010  01:34        13'624'086 libf2clapack.lib
30.07.2010  01:35           554'358 libmetis.lib
30.07.2010  01:35           473'324 libparmetis.lib
30.07.2010  02:01        17'916'714 libpetsc.lib
               5 File(s)     33'802'256 bytes
               2 Dir(s)  831'127'900'160 bytes free

Regards,
Dominik


On Fri, Jul 30, 2010 at 2:40 AM, Satish Balay <balay at mcs.anl.gov> wrote:

> The log says its hypre-2.6.0b. [which is correct for petsc-3.1]
>
> So I suspect either petsc sources or hypre sources were modified - thus
> causing
> this breakage in compile.
>
> Satish
>
> -----
> Configure Options: --configModules=PETSc.Configure
> --optionsModule=PETSc.compilerOptions
> PETSC_DIR=/cygdrive/c/Users/Dominik/Programs/petsc-3.1-p3
> PETSC_ARCH=win64-msvc-release --download-c-blas-lapack=1
> --with-mpi-dir=/cygdrive/c/MPICH2
> --with-hypre-dir=/cygdrive/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/
> --with-parmetis=1 --download-parmetis=1 --with-x=0 --with-debugging=0
> --with-cc="win32fe cl" --with-cxx="win32fe cl" --with-fc=0 --useThreads=0
>
>
>
> On Thu, 29 Jul 2010, Barry Smith wrote:
>
> >
> >   Are you sure the version of hypre you installed is the version that
> works with the version of PETSc you are installing. Check
> config/PETSc/packages/hypre.py for the version that it needs
> >
> >    Barry
> >
> > On Jul 29, 2010, at 7:06 PM, Dominik Szczerba wrote:
> >
> > > I have now managed to properly compile hypre natively and petsc
> configures correctly with it.
> > > However, I get errors during building.
> > > As requested I am sending win64-msvc-release/conf/configure.log to
> petsc-maint at mcs.anl.gov
> > > Any hints are appreciated.
> > >
> > > Dominik
> > >
> > > mhyp.c
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(165) :
> error C2143: syntax error : missing ';' before 'type'
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(166) :
> error C2275: 'hypre_AuxParCSRMatrix' : illegal use of this type as an
> expression
> > >
> C:\Users\Dominik\Programs\HYPRE-~1.0B\src\hypre\include\_hypre_IJ_mv.h(82) :
> see declaration of 'hypre_AuxParCSRMatrix'
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(166) :
> error C2065: 'aux_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(167) :
> error C2275: 'hypre_CSRMatrix' : illegal use of this type as an expression
> > >
> c:\users\dominik\programs\hypre-2.6.0b\src\hypre\include\seq_mv.h(62) : see
> declaration of 'hypre_CSRMatrix'
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(167) :
> error C2065: 'hdiag' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(167) :
> error C2065: 'hoffd' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(167) :
> error C2100: illegal indirection
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(176) :
> error C2065: 'par_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(176) :
> warning C4047: '=' : 'int' differs in levels of indirection from
> 'hypre_ParCSRMatrix *'
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(177) :
> error C2065: 'aux_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(177) :
> warning C4047: '=' : 'int' differs in levels of indirection from
> 'hypre_AuxParCSRMatrix *'
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(178) :
> error C2065: 'hdiag' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(178) :
> error C2065: 'par_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(178) :
> error C2223: left of '->diag' must point to struct/union
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(179) :
> error C2065: 'hoffd' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(179) :
> error C2065: 'par_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(179) :
> error C2223: left of '->offd' must point to struct/union
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(185) :
> error C2065: 'hdiag' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(185) :
> error C2223: left of '->i' must point to struct/union
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(185) :
> warning C4022: 'PetscMemcpy' : pointer mismatch for actual parameter 2
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(185) :
> error C2198: 'PetscMemcpy' : too few arguments for call
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(186) :
> error C2065: 'hdiag' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(186) :
> error C2223: left of '->j' must point to struct/union
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(186) :
> warning C4022: 'PetscMemcpy' : pointer mismatch for actual parameter 2
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(186) :
> error C2198: 'PetscMemcpy' : too few arguments for call
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(187) :
> error C2065: 'hdiag' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(187) :
> error C2223: left of '->data' must point to struct/union
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(187) :
> warning C4022: 'PetscMemcpy' : pointer mismatch for actual parameter 2
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(187) :
> error C2198: 'PetscMemcpy' : too few arguments for call
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(189) :
> error C2065: 'aux_matrix' : undeclared identifier
> > > C:\Users\Dominik\Programs\PETSC-~3.1-P\src\dm\da\utils\mhyp.c(189) :
> error C2223: left of '->need_aux' must point to struct/union
> > > LINK : fatal error LNK1181: cannot open input file 'mhyp.o'
> > >
> > >
> > >
> > > On Mon, Jul 26, 2010 at 2:00 PM, Wee-Beng TAY <zonexo at gmail.com>
> wrote:
> > > Hi all,
> > >
> > > I actually tried compiling hypre 2.6b using windows. I can't remember
> which version I'm using (Vs2005, 2008) but I followed the instructions
> carefully and it worked. Compiling, linking in IDE are also ok. However,
> only the C code work. The fortran code just can't work, even after much help
> from the developers.
> > >
> > > Only the 2.6b version works with windows. However, I have not tried
> using both hypre and PETSc in windows.
> > > Thank you very much and have a nice day!
> > >
> > > Yours sincerely,
> > >
> > > Wee-Beng Tay
> > >
> > > On 7/26/2010 5:12 PM, Matthew Knepley wrote:
> > >>
> > >> This is what we mean when we say that Hypre does not support Windows.
> It really doesn't. You
> > >> can try mailing their list, but I do not anticipate a response other
> than "We do not support Windows".
> > >> The build system is completely broken for this platform, as you have
> experienced. So, my conclusion
> > >> would be to
> > >>
> > >>   a) switch packages to something that does support Windows
> > >>
> > >> or
> > >>
> > >>   b) switch platforms to something that Hypre supports
> > >>
> > >>   Thanks,
> > >>
> > >>      Matt
> > >>
> > >> On Mon, Jul 26, 2010 at 6:40 PM, Dominik Szczerba <
> dominik at itis.ethz.ch> wrote:
> > >> I just reinstalled MPICH to C: (and not the default location Program
> FIles). I also followed Barry and added --with-cxx="win32fe cl"
> > >>
> > >> Now I am getting errors when linking to hypre. BOTH hypre and petsc
> are compiled with MSVC 2008 64bit (configured with cygwin). The library is
> called libHYPRE.a, and as I watched it compile 'cl' was used for
> compilation. It failed to link (*.lib not found) as *.a so I renamed it to
> libHYPRE.lib. Now the error is:
> > >>
> > >> Executing:
> /cygdrive/c/Users/Dominik/Programs/petsc-3.1-p3/bin/win32fe/win32fe cl  -o
> conftest.exe    -MT -wd4996  conftest.o
>  -L/cygdrive/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/lib -L/cygdri
> > >> ve/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/lib -lHYPRE
> /cygdrive/c/MPICH2/lib/fmpich2.lib /cygdrive/c/MPICH2/lib/fmpich2g.lib
> /cygdrive/c/MPICH2/lib/mpi.lib -L/cygdrive/c/Users/Dominik/Program
> > >> s/petsc-3.1-p3/win64-msvc-release/lib
> -L/cygdrive/c/Users/Dominik/Programs/petsc-3.1-p3/win64-msvc-release/lib
> -lf2clapack
> -L/cygdrive/c/Users/Dominik/Programs/petsc-3.1-p3/win64-msvc-release/lib
> -L/c
> > >> ygdrive/c/Users/Dominik/Programs/petsc-3.1-p3/win64-msvc-release/lib
> -lf2cblas Ws2_32.lib
> > >> sh: C:\Users\Dominik\Programs\HYPRE-~1.0B\src\hypre\lib\libHYPRE.lib :
> warning LNK4003: invalid library format; library ignored
> > >>
> > >> I configured with:
> > >> --with-mpi-dir=/cygdrive/c/MPICH2/
> --with-hypre-dir=/cygdrive/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/
> > >>
> > >> but:
> > >>
> > >> $ ls -la /cygdrive/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/lib
> > >> total 8624
> > >> drwxr-xr-x+ 1 Dominik None       0 2010-07-26 10:17 .
> > >> drwxr-xr-x+ 1 Dominik None       0 2010-07-23 23:07 ..
> > >> -rw-r--r--+ 1 Dominik None 8830476 2010-07-23 23:13 libHYPRE.lib
> > >>
> > >> How can I go on from here?
> > >>
> > >> Regards,
> > >> Dominik
> > >>
> > >> On Sun, Jul 25, 2010 at 11:10 PM, Dominik Szczerba <
> dominik at itis.ethz.ch> wrote:
> > >> Hi,
> > >>
> > >> I am able to build petsc-3.1-p3 on Windows 7 64bit using native
> compiler (MSVC 2008) with:
> > >>
> > >> ./config/configure.py PETSC_DIR=$PWD PETSC_ARCH=win64-msvc-release
> --download-c-blas-lapack=1 --with-parmetis=1 --download-parmetis=1
> --with-x=0 --with-debugging=0 --with-cc='win32fe cl' --with-fc=0
> > >>
> > >> I also managed to build hypre-2.6.0b separately myself using the same
> compiler. Now the last problem is to build petsc with this external package
> (--download-hypre will fail). I add to the above configure line:
> > >>
> > >>
> --with-hypre-dir=/cygdrive/c/Users/Dominik/Programs/hypre-2.6.0b/src/hypre/
> > >>
> > >> but the configuration fails with:
> > >>
> > >>
> *******************************************************************************
> > >>          UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log
> for details):
> > >>
> -------------------------------------------------------------------------------
> > >> C++ error! mpi.h could not be located at: ['/cygdrive/c/Program
> Files/MPICH2/include']
> > >>
> *******************************************************************************
> > >>
> > >> This error is clearly wrong as:
> > >>
> > >> $ ls -la '/cygdrive/c/Program Files/MPICH2/include'
> > >> total 309
> > >> drwx------+ 1 SYSTEM SYSTEM  4096 2010-07-21 15:54 .
> > >> drwx------+ 1 SYSTEM SYSTEM  4096 2010-07-21 15:54 ..
> > >> -rwx------+ 1 SYSTEM SYSTEM  4776 2007-11-02 15:50 clog_commset.h
> > >> -rwx------+ 1 SYSTEM SYSTEM   696 2007-11-02 15:50 clog_const.h
> > >> -rwx------+ 1 SYSTEM SYSTEM   731 2010-02-22 16:22 clog_inttypes.h
> > >> -rwx------+ 1 SYSTEM SYSTEM  1272 2007-11-02 15:50 clog_uuid.h
> > >> -rwx------+ 1 SYSTEM SYSTEM   437 2007-11-02 15:50 mpe.h
> > >> -rwx------+ 1 SYSTEM SYSTEM 11021 2008-01-28 13:59 mpe_log.h
> > >> -rwx------+ 1 SYSTEM SYSTEM  1833 2007-11-02 15:50 mpe_logf.h
> > >> -rwx------+ 1 SYSTEM SYSTEM  1159 2007-11-02 15:50 mpe_misc.h
> > >> -rwx------+ 1 SYSTEM SYSTEM 55623 2010-02-22 16:22 mpi.h
> > >> -rwx------+ 1 SYSTEM SYSTEM  2439 2010-02-22 17:11 mpi.mod
> > >> -rwx------+ 1 SYSTEM SYSTEM 14731 2010-02-22 17:11 mpi_base.mod
> > >> -rwx------+ 1 SYSTEM SYSTEM 35003 2010-02-22 17:11 mpi_constants.mod
> > >> -rwx------+ 1 SYSTEM SYSTEM  8417 2010-02-22 17:11 mpi_sizeofs.mod
> > >> -rwx------+ 1 SYSTEM SYSTEM 97301 2010-02-22 16:22 mpicxx.h
> > >> -rwx------+ 1 SYSTEM SYSTEM 18610 2010-02-22 16:22 mpif.h
> > >> -rwx------+ 1 SYSTEM SYSTEM 16765 2010-02-22 16:22 mpio.h
> > >>
> > >> Inspecting the log file shows:
> > >>
> > >> Executing: g++ -c -o conftest.o  -Wall -Wwrite-strings
> -Wno-strict-aliasing -O    -I/cygdrive/c/Program\ Files/MPICH2/include
> conftest.cc
> > >>
> > >> I think the error is in the white space in "Program Files". I failed
> to convince hypre to use the default system installation of MPICH. I *had*
> to make a hardcopy in C: to avoid the white space.
> > >>
> > >> I am sending the log to the maintainters, just in case, because I saw
> more errors there too.
> > >>
> > >> Any help is greatly appreciated.
> > >>
> > >> Regards,
> > >> Dominik
> > >>
> > >>
> > >>
> > >>
> > >> --
> > >> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> > >> -- Norbert Wiener
> > >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20100730/c580e451/attachment-0001.htm>


More information about the petsc-users mailing list