openPMD-api
openPMD-api copied to clipboard
Catch2 Issue (solved) and HDF5 MPI Question
Hi guys:
I encountered the following error when installing openpmd on my terminal (Ubuntu 22.04). I don't know what the problem is. Can you give me some advice or guidance? Thank you.
Hey,
for the HDF5 error: If you build HDF5 manually, you have to actively enable parallel HDF5. I usually build the CMake version of HDF5 (https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.2/src/CMake-hdf5-1.12.2.tar.gz) and then put the CMake options -DHDF5_BUILD_CPP_LIB=OFF -DHDF5_ENABLE_PARALLEL=ON -DHDF5_BUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF
. (the CPP_LIB parameter is necessary). If you installed HDF5 any other way, make sure that it is parallel HDF5.
The second one seems to be this error: https://github.com/catchorg/Catch2/issues/2421. We should update our internal version of Catch2 for fixing it. You can deactivate test builds by -DopenPMD_BUILD_TESTING=OFF
, or alternatively if you want to build tests, install a recent version of Catch2 and then set -DopenPMD_USE_INTERNAL_CATCH=OFF
.
Hi @franzpoeschel
I tried to install parallel "HDF5" and successfully installed it. But I ran make -j $(nproc) install
and reported the following error. I haven't updated the version of "CATCH2". Ran -dopenpmd_build_testing=off,
I don't know whether this is feasible
The Catch2 issue should be fixed in dev
now since #1299 was merged. Thus, you can build again with testing if you like (and temporarily disabling tests was the right call for the issue).
Your HDF5 issue still looks like the HDF5 that is included was not compiled with MPI (aka HDF5 parallel) support enabled. The missing functions are essential HDF5-MPI routines. Can you share with us the exact command line calls you run to install HDF5 and to make it know to openPMD-api's configuration step?
Hi @ax3l
I build the CMake version of HDF5 (https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.2/src/CMake-hdf5-1.12.2.tar.gz)
The commands I use are as follows:
sudo ./configure --prefix=/usr/local/hdf5
sudo make
sudo make check
sudo make install
cd /usr/local/hdf5/share/hdf5_examples/c
sudo ./run-c-ex.sh
sudo h5cc -o h5_extend h5_extend.c
sudo ./h5_extend
Thanks! Following this, how do you make this install location known to openPMD' cmake?
Do you set env vars? Which cmake lines do you call following this?
On July 15, 2022 7:46:09 PM PDT, baobaba13 @.***> wrote:
Hi @ax3l > I build the CMake version of HDF5 (https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.2/src/CMake-hdf5-1.12.2.tar.gz)
The commands I use are as follows:
sudo ./configure --prefix=/usr/local/hdf5
sudo make
sudo make check
sudo make install
cd /usr/local/hdf5/share/hdf5_examples/c
sudo ./run-c-ex.sh
sudo h5cc -o h5_extend h5_extend.c
sudo ./h5_extend
-- > Reply to this email directly or view it on GitHub:
https://github.com/openPMD/openPMD-api/issues/1298#issuecomment-1186073028
You are receiving this because you were mentioned.
Message ID: @.***>
Sorry, I didn't call other "cmake" lines after that. I seem to have forgotten to set the environment variable. I thought openpmd could automatically set it. Is there a problem here?In addition, I want to ask, do I need to delete the environment variables of my previous old version of "HDF5"?
Hi,@franzpoeschel, how to build the cmake version of HDF5, can you give me your detailed commands to build it? I would appreciate it very much
Hi,@ax3l, According to your opinion, I tried to set the environment variable, but openpmd could not be installed correctly, and the same error as above was reported.Can you share with me the exact command line calls you run to install HDF5 and to make it know to openPMD-api's configuration step?I think some of my steps may be set incorrectly,I would appreciate it if you could help me.
Hello @summer7807 I normally use something similar to this script:
wget -nc --no-check-certificate https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/CMake-hdf5-1.12.0.tar.gz
tar -xzf CMake-hdf5-1.12.0.tar.gz
cd CMake-hdf5-1.12.0
mkdir build
cd build
cmake ../hdf5-1.12.0 -DHDF5_BUILD_CPP_LIB=OFF -DHDF5_ENABLE_PARALLEL=ON -DCMAKE_INSTALL_PREFIX="$PREFIX" -DHDF5_BUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF
make -j "$(nproc)" install
Does this help?
If $PREFIX
is not a system-known location, it's best to extend the PATH
and CMAKE_PREFIX_PATH
so that openPMD will find it, e.g.:
export PATH="$PREFIX/bin:$PATH"
export CMAKE_PREFIX_PATH="$PREFIX:$CMAKE_PREFIX_PATH"
Hello,@franzpoeschel,According to your instructions, I successfully installed openpmd without any errors. But I later made the following error in the pic-build
step . I don't know why CUDA would look for Alpaka instead of MPI?
That's a more PIConGPU-related issue, I can only guess that you would need to install Cuda to resolve this. The developers of https://github.com/ComputationalRadiationPhysics/picongpu/ might know this better, though.