On Thu, 3 Jul 2014, Baros Vladimir wrote: > So it could be that the external packages were using OpenMP because compiled > applications from my build require an openmp dll. > > With this build I compiled a static version of pthreads-win32 from here: > https://www.sourceware.org/pthreads-win32/ > > and PETSc compiled with those libs. Also configuration stage passed without > problems. > > But at the end the tests failed with the unresolved > PetscThreadCommCreate_PThread
I'm not sure how you are building petsc [logs?] but PetscThreadCommCreate_PThread should not be refered to unless PETSC_HAVE_PTHREADCLASSES is defined. And if this flag is defined PetscThreadCommCreate_PThread() would also be compield in. But then configure disables --with-pthreadclasses option for petsc-3.4, petsc-3.5 balay@asterix /home/balay/petsc (maint) $ git grep PetscThreadCommCreate_PThread src/sys/threadcomm/impls/pthread/tcpthread.c:#define __FUNCT__ "PetscThreadCommCreate_PThread" src/sys/threadcomm/impls/pthread/tcpthread.c:PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_PThread(PetscThreadComm tcomm) src/sys/threadcomm/impls/pthread/tcpthreadimpl.h:PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_PThread(PetscThreadComm); src/sys/threadcomm/interface/threadcommregi.c:PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_PThread(PetscThreadComm); src/sys/threadcomm/interface/threadcommregi.c: ierr = PetscThreadCommRegister(PTHREAD, PetscThreadCommCreate_PThread);CHKERRQ(ierr); Satish > > > Vladimir > > -----Original Message----- > From: Jed Brown [mailto:[email protected]] > Sent: Thursday, July 03, 2014 15:26 > To: Baros Vladimir; [email protected] > Cc: Shrirang G. Abhyankar > Subject: Re: [petsc-dev] PETSc 3.5.0 compilation on Windows and OpenMP with > pthread > > Baros Vladimir <[email protected]> writes: > > previously I successfully built PETSc with Intel compiler (the last > > successful build was 3.4.4) using OpenMP libraries. > > > > In version 3.5.0, OpenMP package depends on pthread library which > > doesn't exist on Windows. Why this new requirement and what do you > > recommend to use on Windows? > > Your old Windows configuration of PETSc was not actually using OpenMP. > > > The threaded implementations use a "thread communicator" which was activated > by the optional package "pthreadclasses". OpenMP is not used by PETSc > without "threadcomm" and we are refactoring the whole thing so please don't > use it at this time. >
