[petsc-users] Compilation error in petsc 3.1-p8 with ParMetis

Matthew Knepley knepley at gmail.com
Tue Jul 26 22:48:52 CDT 2011


On Wed, Jul 27, 2011 at 3:43 AM, Mohammad Mirzadeh <mirzadeh at gmail.com>wrote:

> Hi all,
>
> I am having trouble configuring PETSc 3.1-p8 with ParMetis 3.2 and below (I
> have tried all of their versions). What I can understand from the
> configure.log (attached below) is that for some reason PETSc cannot find the
> libs . I have tried the flag --download-parmetis=/path/to/tar.gz and also
> tried compiling ParMetis myself and using
> --with-parmetis-dir=/path/to/build_dir and none seem to work. In the latter
> case, ParMetis compiles just fine but it does not put the libs and header
> files under /build_dir/include or /buid_dir/lib.
>
> Does using --with-parmetis-include and --with-parmetis-lib work with
> multiple directory locations? I tried putting all the hear files in one
> directory but there are multiple header files with the same name and I do
> not know which one I should use. Any help is greatly appreciated.
>

We have to fix the ParMetis build system, which is very limited. Thus you
cannot download their tarball and use it. You must let us download it,
or use the one from the PETSc ftp.

   Matt


> Thanks,
> Mohammad
>
>
>
> ================================================================================
> TEST configureLibrary from
> PETSc.packages.ParMetis(/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py:370)
> TESTING: configureLibrary from
> PETSc.packages.ParMetis(config/BuildSystem/config/package.py:370)
>   Find an installation and check if it can work with PETSc
>
> ==================================================================================
>       Checking for a functional ParMetis
>               Found a copy of PARMETIS in ParMetis-3.2.0
>                 Pushing language C
>                 Popping language C
> Have to rebuild ParMetis, make.inc !=
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
>
> ===============================================================================
>                       Compiling & installing Parmetis; this may take
> several minutes
>
> ===============================================================================
>
> sh: cd
> /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0; make
> clean; make lib; make minstall; make clean
> Executing: cd
> /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0; make
> clean; make lib; make minstall; make clean
> sh: (cd METISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> rm -f ../Graphs/ptest3.2.0
> rm -f ../Graphs/mtest3.2.0
> rm -f ../Graphs/parmetis3.2.0
> rm -f ../Graphs/pometis3.2.0
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> (cd METISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> rm -f ../Graphs/ptest3.2.0
> rm -f ../Graphs/mtest3.2.0
> rm -f ../Graphs/parmetis3.2.0
> rm -f ../Graphs/pometis3.2.0
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
>
> ********Output of running make on ParMetis follows *******
> (cd METISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> rm -f ../Graphs/ptest3.2.0
> rm -f ../Graphs/mtest3.2.0
> rm -f ../Graphs/parmetis3.2.0
> rm -f ../Graphs/pometis3.2.0
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> (cd METISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/METISLib'
> (cd ParMETISLib ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> rm -f *.o
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/ParMETISLib'
> (cd Programs ; make clean )
> make[1]: Entering directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> rm -f *.o ;\
> rm -f ../Graphs/ptest3.2.0
> rm -f ../Graphs/mtest3.2.0
> rm -f ../Graphs/parmetis3.2.0
> rm -f ../Graphs/pometis3.2.0
> make[1]: Leaving directory
> `/home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/Programs'
> make: *** No rule to make target `lib'.  Stop.
> make: *** No rule to make target `minstall'.  Stop.
> ********End of Output of running make on ParMetis *******
> sh: cp -f
> /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/make.inc
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
> Executing: cp -f
> /home/mohammad/soft/petsc-3.1-p8-debug/externalpackages/ParMetis-3.2.0/make.inc
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/conf/ParMetis
> sh:
>       Checking for library in Download PARMETIS:
> ['/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib/libparmetis.a',
> 'libmetis.a']
>
> ================================================================================
> TEST check from
> config.libraries(/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/libraries.py:133)
> TESTING: check from
> config.libraries(config/BuildSystem/config/libraries.py:133)
>   Checks that the library "libName" contains "funcs", and if it does
> defines HAVE_LIB"libName"
>        - libDir may be a list of directories
>        - libName may be a list of library names
>           Checking for functions ['ParMETIS_V3_PartKway'] in library
> ['/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib/libparmetis.a',
> 'libmetis.a'] ['libnsl.a', 'librt.a']
>             Pushing language C
> sh: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc -c
> -o conftest.o  -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.c
> Executing:
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc -c -o
> conftest.o  -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.c
> sh:
>                     Pushing language C
>                     Popping language C
> sh: /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o
> conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o
>  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis
> -lmetis -lnsl -lrt -lmpichcxx -lstdc++
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3
> -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl
> Executing:
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o
> conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o
>  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis
> -lmetis -lnsl -lrt -lmpichcxx -lstdc++
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3
> -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl
> sh:
> Possible ERROR while running linker: /usr/bin/ld: cannot find -lparmetis
> collect2: ld returned 1 exit status
>  output: ret = 256
> error message = {/usr/bin/ld: cannot find -lparmetis
> collect2: ld returned 1 exit status
> }
>                         Pushing language C
>                         Popping language C
>  in /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/bin/mpicc  -o
> conftest    -Wall -Wwrite-strings -Wno-strict-aliasing -g3  conftest.o
>  -Wl,-rpath,/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib -lparmetis
> -lmetis -lnsl -lrt -lmpichcxx -lstdc++
> -L/home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug/lib
> -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.3
> -L/usr/lib/x86_64-linux-gnu -ldl -lmpich -lpthread -lrt -lgcc_s -ldl
> Source:
> #include "confdefs.h"
> #include "conffix.h"
> /* Override any gcc2 internal prototype to avoid an error. */
> char ParMETIS_V3_PartKway();
>
> int main() {
> ParMETIS_V3_PartKway()
> ;
>   return 0;
> }
>             Popping language C
>
> *******************************************************************************
>          UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for
> details):
>
> -------------------------------------------------------------------------------
> Downloaded parmetis could not be used. Please check install in
> /home/mohammad/soft/petsc-3.1-p8-debug/linux-gnu-c-debug
>
> *******************************************************************************
>   File "./config/configure.py", line 257, in petsc_configure
>     framework.configure(out = sys.stdout)
>   File
> "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/framework.py",
> line 944, in configure
>     child.configure()
>   File
> "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py",
> line 456, in configure
>     self.executeTest(self.configureLibrary)
>   File
> "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/base.py",
> line 97, in executeTest
>     ret = apply(test, args,kargs)
>   File
> "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py",
> line 395, in configureLibrary
>     for location, directory, lib, incl in self.generateGuesses():
>   File
> "/home/mohammad/soft/petsc-3.1-p8-debug/config/BuildSystem/config/package.py",
> line 210, in generateGuesses
>     raise RuntimeError('Downloaded '+self.package+' could not be used.
> Please check install in '+d+'\n')
>



-- 
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/20110727/720a2c03/attachment-0001.htm>


More information about the petsc-users mailing list