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 <[email protected]>
Sent: Thursday, September 21, 2023 2:44 PM
To: Di Miao <[email protected]>
Cc: [email protected]; Udit Pillai <[email protected]>
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
<[email protected]<mailto:[email protected]>> 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@2/petsc/../tcad_mpi_mpich<mailto:--with-mpi-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/../tcad_mpi_mpich>
--with-64-bit-indices=true
--with-blaslapack-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/../mkl<mailto:--with-blaslapack-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/petsc/../mkl<mailto:--with-mkl_pardiso-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/../mkl>
COPTFLAGS=-O3 CXXOPTFLAGS=-O3 FOPTFLAGS=-O3
--download-mumps=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/MUMPS_5.6.0.tar.gz<mailto:--download-mumps=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/MUMPS_5.6.0.tar.gz>
--download-scalapack=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/v2.2.0.tar.gz<mailto:--download-scalapack=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/v2.2.0.tar.gz>
--with-ssl-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@2/petsc/../libressl<mailto:--with-ssl-dir=/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/petsc/petsc-3.19.2/src/sys/dll/reg.c:88<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1030<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/petsc/petsc-3.19.2/src/sys/objects/pinit.c:1276<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/slepc/slepc-3.19.2/src/sys/slepcinit.c:264<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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@2/slepc/slepc-3.19.2/src/eps/interface/epsbasic.c:56<mailto:/SCRATCH/tcad/ci_2_0/workspace/incremental_build_main@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