[petsc-dev] [petsc-maint] Updating PETSc to support Elemental 0.80

Satish Balay balay at mcs.anl.gov
Mon Jun 24 13:31:09 CDT 2013


On Mon, 24 Jun 2013, Jack Poulson wrote:

> On Mon, Jun 24, 2013 at 9:39 AM, Satish Balay <balay at mcs.anl.gov> wrote:
> 
> > On Sun, 16 Jun 2013, Jack Poulson wrote:
> >
> > > On Sun, Jun 16, 2013 at 4:37 PM, Jack Poulson <jack.poulson at gmail.com
> > >wrote:
> > >
> > > > On Sun, Jun 16, 2013 at 4:09 PM, Satish Balay <balay at mcs.anl.gov>
> > wrote:
> > > >
> > > > On Sun, 16 Jun 2013, Jack Poulson wrote:
> > > >>
> > > >> > I have been experimenting with having Clique checkout both
> > pkg-metis and
> > > >> > pkg-parmetis as part of its build system and it seems that a few
> > things
> > > >> > need to be added to the parmetis CMakeLists.txt for it to function
> > > >> > correctly (please correct me if I am missing something!).
> > > >> >
> > > >> > The two main problems are the inclusion of gklib_tls.h and
> > gklib_defs.h,
> > > >> > where the former is generated by the metis build system, usually in
> > > >> > metis/include in the installation directory, and the latter is is in
> > > >> > metis/libmetis/ in the source directory. While setting METIS_PATH
> > to the
> > > >> > metis installation directory would pick up gklib_tls.h since
> > > >> > ${METIS_PATH}/include is added to the include directories of the
> > > >> parmetis
> > > >> > CMakeLists.txt, I do not see any corresponding include_directories
> > > >> > statement for the libmetis directory containing gklib_defs.h.
> > > >>
> > > >> Its also installed in CMAKE_INSTALL_PREFIX/include?
> > > >>
> > > >>
> > > >>
> > https://bitbucket.org/petsc/pkg-metis/commits/7352fdb4f3027f2330d69896c938fc4996f66461
> > > >>
> > > >
> > > > Apparently so. but I am trying to build metis and parmetis as part of
> > the
> > > > build (my CMakeLists.txt checks out the pkg-metis and pkg-parmetis
> > > > repositories). I would prefer to be able to do things this way instead
> > of
> > > > requiring metis to have been installed previously. I should have been
> > more
> > > > clear with my previous language: when I said 'installation' directory,
> > I
> > > > should have said 'build' directory.
> > > >
> > > >
> > > Additionally, pkg-metis does not seem to be iinstalling enough header
> > files
> > > for parmetis to be successfully built. In particular, it is not
> > installing
> > > the headers from the GKlib folder:
> > >
> > > poulson at poulson-ThinkPad-E520:~/Source/External/pkg-metis/build$ make
> > > install
> > > [100%] Built target metis
> > > Install the project...
> > > -- Install configuration: ""
> > > -- Up-to-date: /home/poulson/Source/Install/include/metis.h
> > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_tls.h
> > > -- Up-to-date: /home/poulson/Source/Install/lib/libmetis.a
> > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_defs.h
> > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_rename.h
> > >
> > > What is the recommended means of coupling pkg-metis and pkg-parmetis?
> >
> > I don't understand the issue here.
> >
> > When PETSc is building metis/parmetis - things appear to be installed
> > correctly.
> >
> > Satish
> >
> >
> parmetislib.h internally includes GKlib.h, which is not installed by
> pkg-metis. However, there is a GKlib.h header in pkg-parmetis/headers,
> though the headers/ directory is not searched by CMake. Perhaps an
> 'include_directories(headers)' statement should be added to line 26 of
> pkg-parmetis/CMakeLists.txt.

Looks like parmetis.py is using the cmake option
'-DGKLIB_PATH=../headers' to set the path to GKlib.h

[I'm not sure if this is prefereable to changing
pkg-parmetis/CMakeLists.txt as you've indicated]

> Is PETSc using these CMakeLists.txt files? I can now build pkg-parmetis on
> top of a pkg-metis install if I make the above change (and uncomment out
> lines 9-13 of pkg-parmetis/CMakeLists.txt and actually search for MPI).

Hm - PETSc configure sets up MPI correctly before building
parmetis. So it should't automatically be searching for MPI.

Satish




More information about the petsc-dev mailing list