[petsc-users] configuration option for PETSc on cluster

Samuel Lanthaler s.lanthaler at gmail.com
Wed Apr 25 11:17:14 CDT 2018


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