[petsc-users] 'Unable to locate PETSc dynamic library' error

Di Miao Di.Miao at synopsys.com
Thu Sep 21 16:59:07 CDT 2023


Hi Barry,

I found the following snippet in PetscInitialize_DynamicLibraries:

#if defined(PETSC_HAVE_THREADSAFETY)
  /* These must be all initialized here because it is not safe for individual threads to call these initialize routines */
  preload = PETSC_TRUE;
#endif

and ‘PetscLoadDynamicLibrary("", &found)’ is called only if preload==true and petsc is built as a shared lib. We have not faced this issue before we add ‘—with-thread-safety’.

What we are doing is:
Compile petsc/slepc as shared libraries, ship both executable and libpetsc.so libslepc.so to other users.

Does this error message indicate that what we are doing is not robust and it is better to use static libraries instead?

Thank you
Di

From: Barry Smith <bsmith at petsc.dev>
Sent: Thursday, September 21, 2023 2:44 PM
To: Di Miao <dimiao at synopsys.com>
Cc: petsc-users at mcs.anl.gov; Udit Pillai <uditp at synopsys.com>
Subject: Re: [petsc-users] 'Unable to locate PETSc dynamic library' error


   The recommended approach is to use --with-prefix=directory where you want PETSc installed instead of copying files manually after configure and make

   I don't see why —with-thread-safety would affect this but



On Sep 21, 2023, at 5:07 PM, Di Miao via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:

To whom it may concern,

In our build system, PETSc/SLEPc is compiled in one place and the *.so lib are then moved to another place for future use. Before we add the ‘—with-thread-safety’ flag, this works well. Now, we would like to run PETSc on multiple threads. As suggested by the manual, we added ‘—with-thread-safety’ flag. The udpated libpetsc.so leads to the following error message:

Unable to locate PETSc dynamic library
 You cannot move the dynamic libraries!

My question is other than compile PETSc as a static library, is there any other solutions that can let us compile libpetsc.so in one place and distribute it to other folders without causing this error?

Thank you,
Di

[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Unable to open file
[0]PETSC ERROR: Unable to locate PETSc dynamic library
 You cannot move the dynamic libraries!
[0]PETSC ERROR: See https://petsc.org/release/faq/<https://urldefense.com/v3/__https:/petsc.org/release/faq/__;!!A4F2R9G_pg!fam7m9EAcUH3ksmrAcDKqw2b56d-5BMr-p7YSieNL7fFnEN9xuYzPbkyxhVcvvp16WSAXnrY-j8Q5wI00Q$> for trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.19.2, Jun 01, 2023
[0]PETSC ERROR: Unknown Name on a arch-linux-c-opt named tcadprod39.synopsys.com<http://tcadprod39.synopsys.com/> by tcad Wed Sep 20 02:37:04 2023
[0]PETSC ERROR: Configure options --with-mpi-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../tcad_mpi_mpich<mailto:--with-mpi-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../tcad_mpi_mpich> --with-64-bit-indices=true --with-blaslapack-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../mkl<mailto:--with-blaslapack-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../mkl> --with-shared-libraries --with-clean=true --with-debugging=0 --with-mkl_pardiso-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../mkl<mailto:--with-mkl_pardiso-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../mkl> COPTFLAGS=-O3 CXXOPTFLAGS=-O3 FOPTFLAGS=-O3 --download-mumps=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/MUMPS_5.6.0.tar.gz<mailto:--download-mumps=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/MUMPS_5.6.0.tar.gz> --download-scalapack=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/v2.2.0.tar.gz<mailto:--download-scalapack=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/v2.2.0.tar.gz> --with-ssl-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../libressl<mailto:--with-ssl-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/../libressl> --with-openmp=true --with-threadsafety=true --with-log=0
[0]PETSC ERROR: #1 PetscInitialize_DynamicLibraries() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/dll/reg.c:88<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/dll/reg.c:88>
[0]PETSC ERROR: #2 PetscInitialize_Common() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1030<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1030>
[0]PETSC ERROR: #3 PetscInitialize() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1276<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1276>
[0]PETSC ERROR: #4 SlepcInitialize() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/sys/slepcinit.c:264<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/sys/slepcinit.c:264>
[0]PETSC ERROR: #5 EPSCreate() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56>
[0]PETSC ERROR: #6 EPSCreate() at /SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main at 2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56>
Start calculating extreme eigenvalues..
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see https://petsc.org/release/faq/#valgrind<https://urldefense.com/v3/__https:/petsc.org/release/faq/*valgrind__;Iw!!A4F2R9G_pg!fam7m9EAcUH3ksmrAcDKqw2b56d-5BMr-p7YSieNL7fFnEN9xuYzPbkyxhVcvvp16WSAXnrY-j895HpbMw$> and https://petsc.org/release/faq/<https://urldefense.com/v3/__https:/petsc.org/release/faq/__;!!A4F2R9G_pg!fam7m9EAcUH3ksmrAcDKqw2b56d-5BMr-p7YSieNL7fFnEN9xuYzPbkyxhVcvvp16WSAXnrY-j8Q5wI00Q$>
[0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run
[0]PETSC ERROR: to get more information on the crash.
[0]PETSC ERROR: Run with -malloc_debug to check if memory corruption is causing the crash.
application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=59
:
system msg for write_line failure : Bad file descriptor

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230921/9b7216d4/attachment-0001.html>


More information about the petsc-users mailing list