openPMD-api icon indicating copy to clipboard operation
openPMD-api copied to clipboard

Catch2 Issue (solved) and HDF5 MPI Question

Open summer7807 opened this issue 2 years ago • 11 comments

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. 1 2 3

summer7807 avatar Jul 13 '22 08:07 summer7807

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.

franzpoeschel avatar Jul 13 '22 09:07 franzpoeschel

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 QQ图片20220715210800

QQ图片20220715210809

baobaba13 avatar Jul 15 '22 13:07 baobaba13

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?

ax3l avatar Jul 16 '22 02:07 ax3l

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

baobaba13 avatar Jul 16 '22 02:07 baobaba13

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: @.***>

ax3l avatar Jul 16 '22 03:07 ax3l

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"?

baobaba13 avatar Jul 16 '22 03:07 baobaba13

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

summer7807 avatar Sep 06 '22 13:09 summer7807

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.

summer7807 avatar Sep 07 '22 10:09 summer7807

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"

franzpoeschel avatar Sep 12 '22 15:09 franzpoeschel

Hello,@franzpoeschel,According to your instructions, I successfully installed openpmd without any errors. But I later made the following error in the pic-buildstep . I don't know why CUDA would look for Alpaka instead of MPI? github

summer7807 avatar Sep 13 '22 12:09 summer7807

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.

franzpoeschel avatar Sep 14 '22 08:09 franzpoeschel