Okay ran into a problem with "HelloWorld" with Simfactory when checking my ET install of master:
./simfactory/bin/sim create-run helloworld --parfile arrangements/CactusExamples/HelloWorld/par/HelloWorld.par
[lots of stuff] /scratch/gabella/simulations/helloworld/SIMFACTORY/exe/cactus_sim: error while loading shared libraries: libopenPMD.so: cannot open shared object file: No such file or directory
I see that that carpetX seems to have OpenPMD readers, etc. I also found the github, if it is the right OpenPMD at
https://github.com/openPMD/openPMD-api
but expected ET to handle this or to see some text about installing OpenPMD as a pre-req.
Any suggestions? I never saw a file format that I did not like, or at least install, so should I install this, or should ET?
thanks, bill e.g.
ps--Did a find and there is no libopenPMD.so under Cactus.
Hello Bill,
[lots of stuff] /scratch/gabella/simulations/helloworld/SIMFACTORY/exe/cactus_sim: error while loading shared libraries: libopenPMD.so: cannot open shared object file: No such file or directory
Hmm, ExternalLibraries/openPMD which provides this (most likely, unless you are on a rare cluster that has it pre-installed) should set up an --rpath so that libopenPMD is found at runtime. Though admittedly it would also usually try to build a static library.
The library would be in configs/sim/scratch/external/ eg:
ET_trunk/configs/sim/scratch/external/openPMD/lib/libopenPMD.a
in my case (note that this is the statically linked one).
You you provide the file
configs/sim/bindings/Configuration/Capabilities/make.OPENPMD_API.defn
and you option list, please?
I see that that carpetX seems to have OpenPMD readers, etc. I also found the github, if it is the right OpenPMD at
https://urldefense.com/v3/__https://github.com/openPMD/openPMD-api__;!!DZ3f jg!6chXrSK2Aob-tgiRz5UdTmcqIHLoXkWcH-hNaZhQhXY6V12RaAdQm2bSWB98IEudpHvF1rm5 dBJcWQ5-QLCMww$ but expected ET to handle this or to see some text about installing OpenPMD as a pre-req.
Any suggestions? I never saw a file format that I did not like, or at least install, so should I install this, or should ET?
If you are not using CarpetX, then you can comment out the ExternalLibraries/OpenPMD line (and all CarpetX lines if you like) and thing will be fine.
Yours, Roland
Roland,
Thanks for the quick response.
On 1/31/25 4:53 PM, Roland Haas wrote:
Hello Bill,
[lots of stuff] /scratch/gabella/simulations/helloworld/SIMFACTORY/exe/cactus_sim: error while loading shared libraries: libopenPMD.so: cannot open shared object file: No such file or directory
Hmm, ExternalLibraries/openPMD which provides this (most likely, unless you are on a rare cluster that has it pre-installed) should set up an --rpath so that libopenPMD is found at runtime. Though admittedly it would also usually try to build a static library.
The library would be in configs/sim/scratch/external/ eg:
ET_trunk/configs/sim/scratch/external/openPMD/lib/libopenPMD.a
Nope, I see in the Cactus/configs/sim/scratch/external
archimedes/gabe :<scratch/external 338 >ls ./ ../ ADIOS2/ AMReX/ LORENE/ NSIMD/ SGRID/ Silo/
in my case (note that this is the statically linked one).
You you provide the file
configs/sim/bindings/Configuration/Capabilities/make.OPENPMD_API.defn
and you option list, please?
Attached make.OPENPMD_API.defn, oddly it has a line HAVE_CAPABILITY_openPMD_api = 1
Oh, I do seem to have it installed, in /usr/local/lib64, I think from a previous ET effort, dated 4 Sep 2024. But I do not ever sudo installs with ET. Odd. Must have been hacking away trying to fix this problem then:) But likely this is the problem.
Also attaching the OptionList in Cactus/configs/sim.
Was running helloworld with the create-submit in the Jupyter notebook, ./simfactory/bin/sim create-run helloworld \ --parfile arrangements/CactusExamples/HelloWorld/par/HelloWorld.par
./simfactory/bin/sim create-run helloworld \ --parfile arrangements/CactusExamples/HelloWorld/par/HelloWorld.parI see that that carpetX seems to have OpenPMD readers, etc. I also found the github, if it is the right OpenPMD at
https://urldefense.com/v3/__https://github.com/openPMD/openPMD-api__;!!DZ3f jg!6chXrSK2Aob-tgiRz5UdTmcqIHLoXkWcH-hNaZhQhXY6V12RaAdQm2bSWB98IEudpHvF1rm5 dBJcWQ5-QLCMww$ but expected ET to handle this or to see some text about installing OpenPMD as a pre-req.
Any suggestions? I never saw a file format that I did not like, or at least install, so should I install this, or should ET?
If you are not using CarpetX, then you can comment out the ExternalLibraries/OpenPMD line (and all CarpetX lines if you like) and thing will be fine.
If I become motivated, I may want to play with CarpetX.
Thanks, bill e.g.
Yours, Roland
Hello Bill,
The library would be in configs/sim/scratch/external/ eg:
ET_trunk/configs/sim/scratch/external/openPMD/lib/libopenPMD.a
Nope, I see in the Cactus/configs/sim/scratch/external
archimedes/gabe :<scratch/external 338 >ls ./ ../ ADIOS2/ AMReX/ LORENE/ NSIMD/ SGRID/ Silo/
in my case (note that this is the statically linked one).
You you provide the file
configs/sim/bindings/Configuration/Capabilities/make.OPENPMD_API.defn
and you option list, please?
Attached make.OPENPMD_API.defn, oddly it has a line HAVE_CAPABILITY_openPMD_api = 1
Ok, so it left OPENPMD_LIBS_DIRS empty b/c /usr/local/lib64 is one of the "well known" directories that one assumes the system will automatically search in. Might not true on all systems and OSs (macOS comes to mind as usual) though.
OPENMP_INC_DIRS = /usr/local/lib64 sounds a bit fishy to me, but seems be there for Fortran support.
Also attaching the OptionList in Cactus/configs/sim.
Thank you.
My suggestion would be to add -Wl,--rpath,/usr/local/lib64 to LDFLAGS or /usr/local/lib64 to the LD_LIBRARY_PATH environment variable. Are there any other libraries in /usr/local/lib64 ?
You could try and see what directories are configured in /etc/ld.so.conf which on my Debian box ends up being:
/usr/local/lib /usr/local/lib/x86_64-linux-gnu /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
If I become motivated, I may want to play with CarpetX.
ok.
Yours, Roland
users@lists.einsteintoolkit.org