[petsc-users] configuration option for PETSc on cluster

Satish Balay balay at mcs.anl.gov
Wed Apr 25 19:08:17 CDT 2018


Samuel, thanks for the update.

Glad the workaround gave a useable build.

BTW - looking at configure.log - I think the option LDFLAGS="-dynamic"
is interfering with some of these tests - in this case the default
-fPIC test - hence this need for the workarround.

I think the problem won't appear if the alternative of setting
'CRAYPE_LINK_TYPE=dynamic' env variable is used.

Satish

On Wed, 25 Apr 2018, Samuel Lanthaler wrote:

> Dear Satish,
> Your workaround worked! Great!
> Thanks a lot for all your help, everyone. =)
> 
> Cheers,
> Samuel
> 
> On 04/24/2018 06:33 PM, Satish Balay wrote:
> > Hm - I'm not sure why configure didn't try and set -fPIC compiler options.
> >
> > Workarround is:
> >
> > CFLAGS=-fPIC FFLAGS=-fPICC CXXFLAGS=-fPIC
> >
> > or alternatively - you can disable sharedlibraries
> >
> > --with-shared-libraries=0
> >
> > Satish
> >
> > On Tue, 24 Apr 2018, Samuel Lanthaler wrote:
> >
> >> Dear Satish,
> >>
> >> As you suggested, the configure appears to work with
> >>
> >> ./configure --with-fc=ftn --with-cc=cc --with-cxx=CC --with-debugging=0
> >> --with-scalar-type=complex --download-scalapack --download-mumps=yes
> >> --download-superlu --with-batch --known-mpi-shared-libraries=1
> >> --with-blaslapack-dir=${MKLROOT} --known-64-bit-blas-indices=0
> >> --LDFLAGS="-dynamic"
> >>
> >> However, after doing the reconfigure, I tried to compile using make, and
> >> ran
> >> into trouble with CLINKER:
> >>
> >>              [...]
> >>              CC arch-complex/obj/sys/classes/draw/impls/x/xops.o
> >>       CLINKER arch-complex/lib/libpetsc.so.3.09.0
> >> Warning:
> >> -dynamic was already seen on command line, overriding with -shared.
> >> /usr/bin/ld: arch-complex/obj/sys/fsrc/somefort.o: relocation R_X86_64_32
> >> against `petscfortran5_' can not be used when making a shared object;
> >> recompile with -fPIC
> >> arch-complex/obj/sys/fsrc/somefort.o: error adding symbols: Bad value
> >> [...]
> >> **************************ERROR*************************************
> >>    Error during compile, check arch-complex/lib/petsc/conf/make.log
> >>    Send it and arch-complex/lib/petsc/conf/configure.log to
> >> petsc-maint at mcs.anl.gov
> >> ********************************************************************
> >> makefile:30: recipe for target 'all' failed
> >> make: *** [all] Error 1
> >>
> >> Any ideas? Again, I'm attaching the .log files.
> >>
> >>
> >>
> >> On 04/24/2018 04:14 PM, Satish Balay wrote:
> >>> Sorry I should have clarified - its a configure option.
> >>>
> >>> Satish
> >>>
> >>> On Tue, 24 Apr 2018, Samuel Lanthaler wrote:
> >>>
> >>>> Sorry, I'm confused: Can I add this somehow when doing the ./configure?
> >>>> Or
> >>>> do
> >>>> you mean to add it when compiling ex5f with the configuration I had
> >>>> initially?
> >>>>
> >>>> Cheers,
> >>>> Samuel
> >>>>
> >>>>
> >>>> On 04/24/2018 04:03 PM, Satish Balay wrote:
> >>>>> Ok - I do see: libmkl_intel_lp64.so libmkl_sequential.so libmkl_core.so
> >>>>> -
> >>>>> these should
> >>>>> be the ones that get picked up.
> >>>>>
> >>>>> I do not know why 'cc' is picking up static libraries instead of the
> >>>>> shared ones. Perhaps it needs an extra option
> >>>>>
> >>>>> 'LDFLAGS=-dynamic'
> >>>>>
> >>>>> Satish
> >>>>>
> >>>>> On Tue, 24 Apr 2018, Samuel Lanthaler wrote:
> >>>>>
> >>>>>> Dear Satish,
> >>>>>>
> >>>>>> I get the following when doing the ls:
> >>>>>>
> >>>>>> [lanthale at daint103 mkl]$ ls
> >>>>>> /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/
> >>>>>> libmkl_ao_worker.so             libmkl_blacs_sgimpt_lp64.so
> >>>>>> libmkl_intel_lp64.a        libmkl_sequential.so
> >>>>>> libmkl_avx2.so                  libmkl_blas95_ilp64.a
> >>>>>> libmkl_intel_lp64.so
> >>>>>> libmkl_tbb_thread.a
> >>>>>> libmkl_avx512_mic.so            libmkl_blas95_lp64.a
> >>>>>> libmkl_intel_thread.a
> >>>>>> libmkl_tbb_thread.so
> >>>>>> libmkl_avx512.so                libmkl_cdft_core.a
> >>>>>> libmkl_intel_thread.so
> >>>>>> libmkl_vml_avx2.so
> >>>>>> libmkl_avx.so                   libmkl_cdft_core.so
> >>>>>> libmkl_lapack95_ilp64.a
> >>>>>> libmkl_vml_avx512_mic.so
> >>>>>> libmkl_blacs_intelmpi_ilp64.a   libmkl_core.a libmkl_lapack95_lp64.a
> >>>>>> libmkl_vml_avx512.so
> >>>>>> libmkl_blacs_intelmpi_ilp64.so  libmkl_core.so libmkl_mc3.so
> >>>>>> libmkl_vml_avx.so
> >>>>>> libmkl_blacs_intelmpi_lp64.a    libmkl_def.so libmkl_mc.so
> >>>>>> libmkl_vml_cmpt.so
> >>>>>> libmkl_blacs_intelmpi_lp64.so   libmkl_gf_ilp64.a libmkl_pgi_thread.a
> >>>>>> libmkl_vml_def.so
> >>>>>> libmkl_blacs_openmpi_ilp64.a    libmkl_gf_ilp64.so libmkl_pgi_thread.so
> >>>>>> libmkl_vml_mc2.so
> >>>>>> libmkl_blacs_openmpi_ilp64.so   libmkl_gf_lp64.a libmkl_rt.so
> >>>>>> libmkl_vml_mc3.so
> >>>>>> libmkl_blacs_openmpi_lp64.a     libmkl_gf_lp64.so
> >>>>>> libmkl_scalapack_ilp64.a
> >>>>>> libmkl_vml_mc.so
> >>>>>> libmkl_blacs_openmpi_lp64.so    libmkl_gnu_thread.a
> >>>>>> libmkl_scalapack_ilp64.so
> >>>>>> locale
> >>>>>> libmkl_blacs_sgimpt_ilp64.a     libmkl_gnu_thread.so
> >>>>>> libmkl_scalapack_lp64.a
> >>>>>> libmkl_blacs_sgimpt_ilp64.so    libmkl_intel_ilp64.a
> >>>>>> libmkl_scalapack_lp64.so
> >>>>>> libmkl_blacs_sgimpt_lp64.a      libmkl_intel_ilp64.so
> >>>>>> libmkl_sequential.a
> >>>>>>
> >>>>>>
> >>>>>> Cheers,
> >>>>>> Samuel
> >>>>>>
> >>>>>> On 04/24/2018 03:50 PM, Satish Balay wrote:
> >>>>>>> Executing: cc  -o /tmp/petsc-tyd_Hm/config.libraries/conftest     -O
> >>>>>>> /tmp/petsc-tyd_Hm/config.libraries/conftest.o
> >>>>>>> -Wl,-rpath,/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64
> >>>>>>> -L/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64
> >>>>>>> -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lstdc++ -ldl
> >>>>>>> Possible ERROR while running linker: exit code 256
> >>>>>>> stderr:
> >>>>>>> /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_core.a(mkl_semaphore.o):
> >>>>>>> In function `mkl_serv_load_inspector':
> >>>>>>> mkl_semaphore.c:(.text+0x123): warning: Using 'dlopen' in statically
> >>>>>>> linked
> >>>>>>> applications requires at runtime the shared libraries from the glibc
> >>>>>>> version
> >>>>>>> used for linking
> >>>>>>> /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_core.a(dgetrs.o):
> >>>>>>> In function `mkl_lapack_dgetrs':
> >>>>>>> dgetrs_gen.f:(.text+0x224): undefined reference to `mkl_blas_dtrsm'
> >>>>>>> dgetrs_gen.f:(.text+0x2b1): undefined reference to `mkl_blas_dtrsm'
> >>>>>>> dgetrs_gen.f:(.text+0x2e7): undefined reference to `mkl_lapack_dlaswp'
> >>>>>>> <<<<<<<<
> >>>>>>>
> >>>>>>> For some reason the compiler is picking up static version of MKL -
> >>>>>>> instead
> >>>>>>> of shared libraries.
> >>>>>>>
> >>>>>>> What do you have for:
> >>>>>>>
> >>>>>>> ls
> >>>>>>> /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/
> >>>>>>>
> >>>>>>> Satish
> >>>>>>>
> >>>>>>> On Tue, 24 Apr 2018, Samuel Lanthaler wrote:
> >>>>>>>
> >>>>>>>> Dear Satish and Stefano,
> >>>>>>>>
> >>>>>>>> Thank you for your answers. I believe I had initially tried to use
> >>>>>>>> the
> >>>>>>>> option
> >>>>>>>> --with-blaslapack-dir=[...], instead of specifying lib and include
> >>>>>>>> directly.
> >>>>>>>> But that gives me an error message:
> >>>>>>>>
> >>>>>>>> *******************************************************************************
> >>>>>>>>              UNABLE to CONFIGURE with GIVEN OPTIONS    (see
> >>>>>>>> configure.log
> >>>>>>>> for
> >>>>>>>> details):
> >>>>>>>> -------------------------------------------------------------------------------
> >>>>>>>> You set a value for --with-blaslapack-dir=<dir>, but
> >>>>>>>> /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl cannot be
> >>>>>>>> used
> >>>>>>>> *******************************************************************************
> >>>>>>>>
> >>>>>>>> I attach the new configure.log. Do you think there is something wrong
> >>>>>>>> with
> >>>>>>>> the
> >>>>>>>> mkl version that I'm trying to use? Or is it only related to petsc?
> >>>>>>>>
> >>>>>>>> Cheers,
> >>>>>>>> Samuel
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 04/24/2018 02:55 PM, Satish Balay wrote:
> >>>>>>>>> On Tue, 24 Apr 2018, Samuel Lanthaler wrote:
> >>>>>>>>>
> >>>>>>>>>> Hi there,
> >>>>>>>>>>
> >>>>>>>>>> I was wondering if you could help me with the correct configuration
> >>>>>>>>>> of
> >>>>>>>>>> PETSc-dev version on a cluster (https://www.cscs.ch/)? I'm not sure
> >>>>>>>>>> which
> >>>>>>>>>> information would be useful to you, but basically the problem seems
> >>>>>>>>>> to
> >>>>>>>>>> be
> >>>>>>>>>> in
> >>>>>>>>>> correctly compiling it with intel compiler and the existing mkl
> >>>>>>>>>> library.
> >>>>>>>>>>
> >>>>>>>>>> The pre-installed mkl version is
> >>>>>>>>>>
> >>>>>>>>>> intel/17.0.4.196
> >>>>>>>>>>
> >>>>>>>>>> I have tried various things and finally, I got it at least to
> >>>>>>>>>> compile
> >>>>>>>>>> with
> >>>>>>>>>> the
> >>>>>>>>>> following options (options chosen in reference to the mkl link
> >>>>>>>>>> advisor...):
> >>>>>>>>>>
> >>>>>>>>>> ./configure --with-fc=ftn --with-cc=cc --with-cxx=CC
> >>>>>>>>>> --with-debugging=0
> >>>>>>>>>> --with-scalar-type=complex --download-scalapack
> >>>>>>>>>> --download-mumps=yes
> >>>>>>>>>> --download-superlu --with-batch --known-mpi-shared-libraries=1
> >>>>>>>>>> *--with-blaslapack-lib=*"
> >>>>>>>>>> ${MKLROOT}/lib/intel64/libmkl_blas95_lp64.a
> >>>>>>>>>> ${MKLROOT}/lib/intel64/libmkl_lapack95_lp64.a -Wl,--start-group
> >>>>>>>>>> ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a
> >>>>>>>>>> ${MKLROOT}/lib/intel64/libmkl_sequential.a
> >>>>>>>>>> ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm
> >>>>>>>>>> -ldl"
> >>>>>>>>>> *--with-blaslapack-include*="[/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/include,/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/include/intel64/lp64]"
> >>>>>>>>> Can you remove the above 2 options [--with-blaslapack-lib,
> >>>>>>>>> --with-blaslapack-include] and use:
> >>>>>>>>>
> >>>>>>>>> --with-blas-lapack-dir=${MKLROOT}
> >>>>>>>>>
> >>>>>>>>> And see if you still have this problem?
> >>>>>>>>>
> >>>>>>>>> Satish
> >>>>>>>>>
> >>>>>>>>>> --known-64-bit-blas-indices=0
> >>>>>>>>>>
> >>>>>>>>>> After compilation, when trying to compile
> >>>>>>>>>> /users/lanthale/petsc-git/src/snes/examples/tutorials/ex5f I get
> >>>>>>>>>> linking
> >>>>>>>>>> errors (attached). Would anyone be able to help me out here? I
> >>>>>>>>>> really
> >>>>>>>>>> don't
> >>>>>>>>>> have a good understanding of this.
> >>>>>>>>>>
> >>>>>>>>>> I'm attaching the configuration.log file, as well as the linking
> >>>>>>>>>> errors
> >>>>>>>>>> when
> >>>>>>>>>> trying to compile ex5f.
> >>>>>>>>>>
> >>>>>>>>>> Thank you very much in advance!
> >>>>>>>>>>
> >>>>>>>>>> Best regards,
> >>>>>>>>>> Samuel
> >>>>>>>>>>
> >>>>
> >>
> 
> 



More information about the petsc-users mailing list