[petsc-users] petsc on windows

Matthew Knepley knepley at gmail.com
Thu Aug 29 15:28:21 CDT 2019


On Thu, Aug 29, 2019 at 4:02 PM Sam Guo <sam.guo at cd-adapco.com> wrote:

> Thanks for the quick response. Attached please find the configure.log
> containing the configure error.
>

Executing: /home/xianzhongg/petsc-3.11.3/lib/petsc/bin/win32fe/win32fe cl
-c -o /tmp/petsc-6DsCEk/config.libraries/conftest.o
-I/tmp/petsc-6DsCEk/config.compilers
-I/tmp/petsc-6DsCEk/config.setCompilers
-I/tmp/petsc-6DsCEk/config.utilities.closure
-I/tmp/petsc-6DsCEk/config.headers
-I/tmp/petsc-6DsCEk/config.utilities.cacheDetails
-I/tmp/petsc-6DsCEk/config.types -I/tmp/petsc-6DsCEk/config.atomics
-I/tmp/petsc-6DsCEk/config.functions
-I/tmp/petsc-6DsCEk/config.utilities.featureTestMacros
-I/tmp/petsc-6DsCEk/config.utilities.missing
-I/tmp/petsc-6DsCEk/PETSc.options.scalarTypes
-I/tmp/petsc-6DsCEk/config.libraries  -MD -wd4996 -Z7
 /tmp/petsc-6DsCEk/config.libraries/conftest.c
stdout: conftest.c
Successful compile:
Source:
#include "confdefs.h"
#include "conffix.h"
/* Override any gcc2 internal prototype to avoid an error. */
char MPI_Init();
static void _check_MPI_Init() { MPI_Init(); }
char MPI_Comm_create();
static void _check_MPI_Comm_create() { MPI_Comm_create(); }

int main() {
_check_MPI_Init();
_check_MPI_Comm_create();;
  return 0;
}
Executing: /home/xianzhongg/petsc-3.11.3/lib/petsc/bin/win32fe/win32fe cl
 -o /tmp/petsc-6DsCEk/config.libraries/conftest.exe    -MD -wd4996 -Z7
/tmp/petsc-6DsCEk/config.libraries/conftest.o
 /home/xianzhongg/dev/star/lib/win64/intel18.3vc14/lib/StarMpiWrapper.lib
Ws2_32.lib
stdout:
LINK : C:\cygwin64\tmp\PE81BA~1\CONFIG~1.LIB\conftest.exe not found or not
built by the last incremental link; performing full link
conftest.obj : error LNK2019: unresolved external symbol MPI_Init
referenced in function _check_MPI_Init
conftest.obj : error LNK2019: unresolved external symbol MPI_Comm_create
referenced in function _check_MPI_Comm_create
C:\cygwin64\tmp\PE81BA~1\CONFIG~1.LIB\conftest.exe : fatal error LNK1120: 2
unresolved externals
Possible ERROR while running linker: exit code 2
stdout:
LINK : C:\cygwin64\tmp\PE81BA~1\CONFIG~1.LIB\conftest.exe not found or not
built by the last incremental link; performing full link
conftest.obj : error LNK2019: unresolved external symbol MPI_Init
referenced in function _check_MPI_Init
conftest.obj : error LNK2019: unresolved external symbol MPI_Comm_create
referenced in function _check_MPI_Comm_create
C:\cygwin64\tmp\PE81BA~1\CONFIG~1.LIB\conftest.exe : fatal error LNK1120: 2
unresolved externals

The link is definitely failing. Does it work if you do it by hand?

  Thanks,

     Matt


> Regarding our dup, our wrapper does support it. In fact, everything works
> fine on Linux. I suspect on windows, PETSc picks the system mpi.h somehow.
> I am investigating it.
>
> Thanks,
> Sam
>
> On Thu, Aug 29, 2019 at 3:39 PM Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Thu, Aug 29, 2019 at 3:33 PM Sam Guo via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>>
>>> Dear PETSc dev team,
>>>    I am looking some tips porting petsc to windows. We have our mpi
>>> wrapper (so we can switch different mpi). I configure petsc using
>>> --with-mpi-lib and --with-mpi-include
>>>  ./configure --with-cc="win32fe cl" --with-fc=0 --download-f2cblaslapack
>>> --with-mpi-lib=/home/xianzhongg/dev/star/lib/win64/intel18.3vc14/lib/StarMpiWrapper.lib
>>> --with-mpi-include=/home/xianzhongg/dev/star/base/src/mpi/include
>>> --with-shared-libaries=1
>>>
>>> But I got error
>>>
>>> ===============================================================================
>>>              Configuring PETSc to compile on your system
>>>
>>> ===============================================================================
>>> TESTING: check from
>>> config.libraries(config/BuildSystem/config/libraries.py:154)
>>> *******************************************************************************
>>>          UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log
>>> for details):
>>>
>>> -------------------------------------------------------------------------------
>>> --with-mpi-lib=['/home/xianzhongg/dev/star/lib/win64/intel18.3vc14/lib/StarMpiWrapper.lib']
>>> and
>>> --with-mpi-include=['/home/xianzhongg/dev/star/base/src/mpi/include']
>>> did not work
>>>
>>> *******************************************************************************
>>>
>>
>> Your MPI wrapper should pass the tests here. Send the configure.log
>>
>>
>>> To fix the configuration error,  in
>>> config/BuildSystem/config/package.py, I removed
>>>  self.executeTest(self.checkDependencies)
>>>  self.executeTest(self.configureLibrary)
>>>  self.executeTest(self.checkSharedLibrary)
>>>
>>> To link, I add my mpi wrapper
>>> to ${PTESTC_ARCH}/lib/petsc/conf/petscvariables:
>>> PCC_LINKER_FLAGS =    -MD -wd4996 -Z7
>>> /home/xianzhongg/dev/star/lib/win64/intel18.3vc14/lib/StarMpiWrapper.lib
>>>
>>> I got libpetstc.dll and libpetstc.lib. When I try to test it inside our
>>> code, PETSc somehow crates a duplicate of communicator with only 1 MPI
>>> process and PETSC_COMM_WORLD is set to 2. If I set PETSC_COMM_WORLD to 1
>>> (our MPI_COMM_WORLD), PETSc is hanging.
>>>
>>
>> We do dup the communicator on entry. Shouldn't that be supported by your
>> wrapper?
>>
>>   Thanks,
>>
>>      Matt
>>
>>
>>> I am wondering if you could give me some tips how to debug this problem.
>>>
>>> BR,
>>> Sam
>>>
>>
>>
>> --
>> 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
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190829/101a0507/attachment.html>


More information about the petsc-users mailing list