← Back to team overview

dorsal team mailing list archive

Re: PETSc found, but not found

 

On Wed, Sep 1, 2010 at 11:13 AM, Harish Narayanan
<harish.mlists@xxxxxxxxx> wrote:
> On 9/1/10 2:35 PM, Harish Narayanan wrote:
>> On 9/1/10 2:09 PM, Johannes Ring wrote:
>>> On Wed, Sep 1, 2010 at 9:17 AM, Johannes Ring <johannr@xxxxxxxxx> wrote:
>>>> On Wed, Sep 1, 2010 at 8:39 AM, Harish Narayanan
>>>> <harish.mlists@xxxxxxxxx> wrote:
>>>>> On 9/1/10 12:02 PM, Harish Narayanan wrote:
>>>>>> On 9/1/10 2:44 AM, Marie Rognes wrote:
>>>>>>> On 31. aug. 2010 22:56, Anders Logg wrote:
>>>>>>>> On Tue, Aug 31, 2010 at 04:28:32PM +0200, Marie Rognes wrote:
>>>>>>>>
>>>>>>>>> On 31. aug. 2010 16:22, Johannes Ring wrote:
>>>>>>>>>
>>>>>>>>>> On Tue, Aug 31, 2010 at 4:13 PM, Marie Rognes <meg@xxxxxxxxx> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> I having some issues with PETSc (surprise) as of today.
>>>>>>>>>>>
>>>>>>>>>>> Dorsal tells me that (full log attached):
>>>>>>>>>>>
>>>>>>>>>>> [\snip]
>>>>>>>>>>>
>>>>>>>>>>> -- The following optional packages were found:
>>>>>>>>>>> -- (OK) MPI
>>>>>>>>>>> -- (OK) PETSC
>>>>>>>>>>> -- (OK) SLEPC
>>>>>>>>>>> -- (OK) UMFPACK
>>>>>>>>>>>
>>>>>>>>>>> [\snap]
>>>>>>>>>>>
>>>>>>>>>>> But:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>>> from dolfin import *
>>>>>>>>>>>>>> has_la_backend("PETSc")
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>> False
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>>> A = PETScMatrix()
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>>   File "<stdin>", line 1, in <module>
>>>>>>>>>>> NameError: name 'PETScMatrix' is not defined
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>> Help?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> There is no -DHAS_PETSC in your log. Try to clean up/remove the
>>>>>>>>>> dorsal_build_dir inside the DOLFIN source directory.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Removed. Check.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Then rerun Dorsal
>>>>>>>>>> and see if the PETSc test passes.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> -- The following optional packages were found:
>>>>>>>>> -- (OK) MPI
>>>>>>>>> -- (OK) PETSC
>>>>>>>>> -- (OK) SLEPC
>>>>>>>>> -- (OK) UMFPACK
>>>>>>>>> -- (OK) PARMETIS
>>>>>>>>> -- (OK) GMP
>>>>>>>>> -- (OK) CGAL
>>>>>>>>> -- (OK) ZLIB
>>>>>>>>> -- (OK) PYTHON
>>>>>>>>> -- The following optional packages could not be found:
>>>>>>>>> -- (**) TRILINOS
>>>>>>>>> -- (**) MTL4
>>>>>>>>> -- (**) CHOLMOD
>>>>>>>>> -- (**) SCOTCH
>>>>>>>>> -- Configuring done
>>>>>>>>> -- Generating done
>>>>>>>>> -- Build files have been written to: /home/meg/local/dorsal_downloads/dolfin
>>>>>>>>> make: *** No rule to make target `install'.  Stop.
>>>>>>>>> Failure with exit status: 2
>>>>>>>>> Exit message: There was a problem building dolfin.
>>>>>>>>>
>>>>>>>> I had the same problem (I think). It turned out to be a problem with my
>>>>>>>> PETSC_ARCH variable which was set to linux-gnu-c-opt instead of
>>>>>>>> linux-gnu-cxx-opt.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> Doesn't solve the problem for me :(
>>>>>>>
>>>>>>> - My PETSC_ARCH is set to linux-gnu-cxx-opt (cf gentoo.platform)
>>>>>>> - cmake reports: -- PETSC_ARCH is linux-gnu-cxx-opt
>>>>>>> - Still get same problem.
>>>>>>>
>>>>>>>> I think this changed in Dorsal at some point recently.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> Everything updated as of 20 seconds ago ...
>>>>>>
>>>>>> I too am now seeing strange things such as this:
>>>>>>
>>>>>>
>>>>>> .
>>>>>> .
>>>>>> .
>>>>>>
>>>>>> -- PETSC_DIR is /Users/harish/Work/FEniCS/dev/src/petsc-3.1-p4
>>>>>> -- PETSC_ARCH is darwin10.0.0-cxx-opt
>>>>>> -- Found petscconf.h
>>>>>> -- PETSc test failed
>>>>>> -- PETSc could not be found. Be sure to set PETSC_DIR and PETSC_ARCH.
>>>>>> (missing:  PETSC_TEST_RUNS)
>>>>>>
>>>>>> .
>>>>>> .
>>>>>> .
>>>>>>
>>>>>> -- (OK) MPI
>>>>>> -- (OK) MTL4
>>>>>> -- (OK) UMFPACK
>>>>>> -- (OK) CHOLMOD
>>>>>> -- (OK) SCOTCH
>>>>>> -- (OK) PARMETIS
>>>>>> -- (OK) GMP
>>>>>> -- (OK) CGAL
>>>>>> -- (OK) ZLIB
>>>>>> -- (OK) PYTHON
>>>>>> -- The following optional packages could not be found:
>>>>>> -- (**) PETSC
>>>>>> -- (**) SLEPC
>>>>>> -- (**) TRILINOS
>>>>>
>>>>> Following which (and independently), CMake fails catastrophically:
>>>>>
>>>>> Building CXX object dolfin/CMakeFiles/dolfin.dir/ale/HarmonicSmoothing.cpp.o
>>>>> [  1%] cd /foo/dolfin/dorsal_build_dir/dolfin && /opt/local/bin/c++
>>>>> -Ddolfin_EXPORTS -DPACKAGE_VERSION=\"0.9.8\" -DBOOST_UBLAS_NDEBUG
>>>>> -DHAS_MTL4 -DMTL_HAS_BLAS -DHAS_UMFPACK -DHAS_CHOLMOD -DHAS_SCOTCH
>>>>> -DHAS_PARMETIS -DHAS_CGAL -DHAS_GMP -DHAS_ZLIB -DHAS_CPPUNIT -DHAS_MPI
>>>>> -DMPICH_IGNORE_CXX_SEEK -frounding-math;-D_REENTRANT -O2 -g -fPIC
>>>>> -I/foo/dolfin -I/opt/local/include/libxml2
>>>>> -I/Users/harish/Work/FEniCS/dev/include -I/opt/local/include
>>>>> -I/Users/harish/Work/FEniCS/dev/src/mtl4 -I/opt/local/include/ufsparse
>>>>> -I/opt/local/include/cppunit   -o
>>>>> CMakeFiles/dolfin.dir/ale/HarmonicSmoothing.cpp.o -c
>>>>> /foo/dolfin/dolfin/ale/HarmonicSmoothing.cpp
>>>>> i686-apple-darwin10-g++-4.2.1: no input files
>>>>> i686-apple-darwin10-g++-4.2.1: no input files
>>>>> Building CXX object
>>>>> dolfin/CMakeFiles/dolfin.dir/ale/TransfiniteInterpolation.cpp.o
>>>>> cd /foo/dolfin/dorsal_build_dir/dolfin && /opt/local/bin/c++
>>>>> -Ddolfin_EXPORTS -DPACKAGE_VERSION=\"0.9.8\" -DBOOST_UBLAS_NDEBUG
>>>>> -DHAS_MTL4 -DMTL_HAS_BLAS -DHAS_UMFPACK -DHAS_CHOLMOD -DHAS_SCOTCH
>>>>> -DHAS_PARMETIS -DHAS_CGAL -DHAS_GMP -DHAS_ZLIB -DHAS_CPPUNIT -DHAS_MPI
>>>>> -DMPICH_IGNORE_CXX_SEEK -frounding-math;-D_REENTRANT -O2 -g -fPIC
>>>>> -I/foo/dolfin -I/opt/local/include/libxml2
>>>>> -I/Users/harish/Work/FEniCS/dev/include -I/opt/local/include
>>>>> -I/Users/harish/Work/FEniCS/dev/src/mtl4 -I/opt/local/include/ufsparse
>>>>> -I/opt/local/include/cppunit   -o
>>>>> CMakeFiles/dolfin.dir/ale/TransfiniteInterpolation.cpp.o -c
>>>>> /foo/dolfin/dolfin/ale/TransfiniteInterpolation.cpp
>>>>> Building CXX object dolfin/CMakeFiles/dolfin.dir/common/real.cpp.o
>>>>> /bin/sh: -D_REENTRANT: command not found
>>>>> /bin/sh: -D_REENTRANT: command not found
>>>>
>>>> I made a fix for this yesterday. Maybe you just need to clean up the
>>>> CMake cache (remove the dorsal_build_dir folder)?
>>>
>>> My fix was reverted but it should be fixed again now.
>>
>> This problem is fixed, leaving only the petsc/slepc error.
>
> I spoke too soon. I now receive the following during the linking stage
> (too).
>
> Undefined symbols:
>  "_METIS_mCPartGraphRecursive2", referenced from:
>      _ParMETIS_V3_PartKway in libparmetis.a(kmetis.o)
>      _PartitionSmallGraph__ in libparmetis.a(weird.o)
>      _Mc_InitPartition_RB__ in libparmetis.a(initpart.o)
>      _Mc_InitPartition_RB__ in libparmetis.a(initpart.o)
>      _Balance_Partition__ in libparmetis.a(initbalance.o)
>      _Balance_Partition__ in libparmetis.a(initbalance.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [dolfin/libdolfin.0.9.8.dylib] Error 1
> make[1]: *** [dolfin/CMakeFiles/dolfin.dir/all] Error 2
> make: *** [all] Error 2

I also got this on the Mac buildbot. The problem is that there is a
file /opt/local/lib/libmetis.dylib that is used instead of the one
that comes with ParMETIS (that Dorsal builds). I worked around this by
configuring DOLFIN with
-DMETIS_LIBRARY=/Users/fenicsslave2/Work/FEniCS/lib/libmetis.a (the
one that Dorsal installed with ParMETIS).

This problem only shows up when PETSc is not found because
PETSC_LIBRARIES contains the correct link flags (-L/path/to/libmetis.a
-lmetis).

Johannes



Follow ups

References