[petsc-users] Compiling petsc with a user-defined MUMPS directory

Satish Balay balay at mcs.anl.gov
Thu Apr 14 10:41:44 CDT 2016


Configure Options: --configModules=PETSc.Configure --optionsModule=config.compilerOptions --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpif90 --with-ssl=0 --with-mpi=1 --with-debugging=1 --PETSC_ARCH=linux-metis --with-scalapack-lib=/usr/lib/libscalapack-openmpi.so --with-blacs-lib=/usr/lib/libblacs-openmpi.so --with-metis-lib="[~/dev/codeaster-prerequisites/v13/prerequisites/Metis_aster-510_aster/lib/libmetis.a,~/dev/codeaster-prerequisites/v13/prerequisites/Metis_aster-510_aster/lib/libGKlib.a]" --with-metis-include=~/dev/codeaster-prerequisites/v13/prerequisites/Metis_aster-510_aster/include

A couple of issues:
- there is no more blacs option [as latest scalapack bundles blacs inside scalapack]
- configure doesn't understsnad '~'


So Try:

--with-scalapack-lib="-lscalapack-openmpi -lblacs-openmpi"
--with-metis-lib="-L/home/H03755/dev/codeaster-prerequisites/v13/prerequisites/Metis_aster-510_aster/lib -lmetis.a -lGKlib"
--with-metis-include=/home/H03755/dev/codeaster-prerequisites/v13/prerequisites/Metis_aster-510_aster/include

You would also need the petsc configure option --with-shared-libraries=0
[to be able to build petsc with these static libraries that are not likely compiled with -fPIC option]

Satish

On Thu, 14 Apr 2016, Natacha BEREUX wrote:

> Hi Satish
> thanks a lot for the answer. Unfortunately, it does not work yet.
> More precisely :
>  --download-mumps works fine (and every --download-package option works
> perfectly). I am then able to compile a PETSc library.
> --with-package-lib=/usr/lib/libscalapack-openmpi.so or more generally
> --with-package-lib=libXXXX.so also works
> 
> But I would like to use  static librairies, preinstalled on my computer ...
> and  this fails.
> 
> For the moment I gave up compiling with MUMPS, and I am  instead trying to
> compile with Metis 5.
> I have a preinstalled version in a some directory lets say metis_dir
> I try
> -with-metis-lib=[metis_dir/lib/libmetis.a, metis_dir/lib/libGKlib.a]
> --with-metis-include=metis_dir/include
> this fails  (see the attached config.log)
> -with-metis-dir=metis_dir also fails
> Is there a problem with static librairies ?
> 
> Natacha
> 
> 
> On Tue, Apr 12, 2016 at 6:19 PM, Satish Balay <balay at mcs.anl.gov> wrote:
> 
> > On Tue, 12 Apr 2016, Natacha BEREUX wrote:
> >
> > > Hello,
> > > I am trying to compile Petsc  (3.6.3) with external packages (MUMPS and
> > its
> > > prerequisites).
> > > More precisely I would like PETSc to use a pre-installed version of
> > MUMPS.
> > >
> > > Petsc downloads and compiles the prerequisites (parmetis, scalapack etc)
> > :
> > > this works fine.
> >
> > What metis/parmetis/slcalapack is this MUMPS installed with?
> >
> > What version of MUMPS did you install?
> >
> > Why could you not use --download-mumps?
> >
> > Using a different metis/parmetis/slcalapack to install MUMPS - and
> > then specifying --download-metis --download-parmetis
> > --download-scalapack [i.e different versions/builds of the same
> > libraries] can result in conflcits.
> >
> > >
> > > I define MUMPS location by --with-mumps-dir=top-directory of MUMPS
> > install,
> > > but the
> > > configure step  fails with the followiing message:
> > >
> > > UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for
> > details):
> > > --with-mumps-dir=/home/H03755/Librairies/Mumps_MPI did not work
> > >
> > > I do not understand what is wrong.
> > > I have attached the configure.log file.
> > >
> > > Any hint would be greatly appreciated !
> >
> > >>>>
> > Executing: mpicc -show
> > stdout: gcc -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi
> > -pthread -L/usr//lib -L/usr/lib/openmpi/lib -lmpi -ldl -lhwloc
> >                   Defined make macro "MPICC_SHOW" to "gcc
> > -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread
> > -L/usr//lib -L/usr/lib/openmpi/lib -lmpi -ldl -lhwloc"
> > <<<<
> > Ok - so you are using system openmpi with gcc.
> >
> >
> > >>>>
> > Executing: mpicc  -o /tmp/petsc-0u_4WI/config.libraries/conftest    -fPIC
> > -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -O
> > /tmp/petsc-0u_4WI/config.libraries/conftest.o
> > -Wl,-rpath,/home/H03755/Librairies/Mumps_MPI/lib
> > -L/home/H03755/Librairies/Mumps_MPI/lib -lcmumps -ldmumps -lsmumps -lzmumps
> > -lmumps_common -lpord
> > -Wl,-rpath,/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib
> > -L/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib -lscalapack
> > -llapack -lblas -Wl,-rpath,/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib
> > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.9
> > -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -Wl,-rpath,/usr/lib/x86_64-linux-gnu
> > -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu
> > -L/lib/x86_64-linux-gnu -lmpi_f90 -lmpi_f77 -lgfortran -lm
> > -Wl,-rpath,/usr/lib/openmpi/lib
> > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.9
> > -Wl,-rpath,/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu
> > -lgfortran -lm -lquadmath -lm -llapack -lblas
> > -Wl,-rpath,/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib
> > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.9
> > -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -Wl,-rpath,/usr/lib/x86_64-linux-gnu
> > -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu
> > -L/lib/x86_64-linux-gnu -lmpi_f90 -lmpi_f77 -lgfortran -lm
> > -Wl,-rpath,/usr/lib/openmpi/lib
> > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.9
> > -Wl,-rpath,/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu
> > -lgfortran -lm -lquadmath -lm
> > -Wl,-rpath,/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib
> > -L/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib -lparmetis
> > -Wl,-rpath,/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib
> > -L/home/H03755/Librairies/petsc-3.6.3/linux-debug-mumps-ext/lib -lmetis -lm
> > -lm -Wl,-rpath,/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib
> > -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.9
> > -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -Wl,-rpath,/usr/lib/x86_64-linux-gnu
> > -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu
> > -L/lib/x86_64-linux-gnu -Wl,-rpath,/usr/lib/x86_64-linux-gnu
> > -L/usr/lib/x86_64-linux-gnu -ldl -lmpi -lhwloc -lgcc_s -lpthread -ldl
> > Possible ERROR while running linker: exit code 256
> > stderr:
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_lrb_product':
> > dlr_stats.F:(.text+0x3079): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x30fa): undefined reference to `GOMP_critical_name_end'
> > dlr_stats.F:(.text+0x310e): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x318f): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_trsm':
> > dlr_stats.F:(.text+0x33a9): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x33f9): undefined reference to `GOMP_critical_name_end'
> > dlr_stats.F:(.text+0x340a): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x345a): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_panel':
> > dlr_stats.F:(.text+0x3576): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x35a7): undefined reference to `GOMP_critical_name_end'
> > dlr_stats.F:(.text+0x35b8): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x35e9): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_demote':
> > dlr_stats.F:(.text+0x36ac): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x36ce): undefined reference to `GOMP_critical_name_end'
> > dlr_stats.F:(.text+0x36df): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x3701): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_cb_demote':
> > dlr_stats.F:(.text+0x37c1): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x37e3): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dlr_stats.o): In
> > function `__dmumps_lr_stats_MOD_update_flop_stats_cb_promote':
> > dlr_stats.F:(.text+0x3839): undefined reference to
> > `GOMP_critical_name_start'
> > dlr_stats.F:(.text+0x3856): undefined reference to `GOMP_critical_name_end'
> > /home/H03755/Librairies/Mumps_MPI/lib/libdmumps.a(dana_lr.o): In function
> > `__dmumps_ana_lr_MOD_mumps_scotch_kway':
> > dana_lr.F:(.text+0x115): undefined reference to `scotchfgraphbuild_'
> > dana_lr.F:(.text+0x131): undefined reference to `scotchfstratinit_'
> > dana_lr.F:(.text+0x151): undefined reference to `scotchfgraphpart_'
> > dana_lr.F:(.text+0x15e): undefined reference to `scotchfstratexit_'
> > dana_lr.F:(.text+0x16b): undefined reference to `scotchfgraphexit_'
> > <snip>
> >
> >
> > Looks like this MUMPS is built with ptscotch and openmp.
> >
> > You can specify -lgomp for openmp. This can be done with the configure
> > option
> > LIBS=-lgomp
> >
> > Wrt and PTSCOTCH stuff depending upon how its installed we'll have to
> > figureout
> > how to specify it.
> >
> > Its best to specify all the packages [mumps and its dependencies] you
> > built manually with the options:
> >
> > --with-package-include --with-package-lib
> >
> > Satish
> >
> > > Best regards,
> > >
> > > Natacha
> > >
> >
> 



More information about the petsc-users mailing list