[petsc-users] petsc with hypre on Windows

Dominik Szczerba dominik at itis.ethz.ch
Thu Jul 29 19:06:26 CDT 2010


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/1f0a42d7/attachment.htm>


More information about the petsc-users mailing list