GROMACS-2023 throws an error if a user wants to use different from the user who built it – User discussions

GROMACS version: 2023
GROMACS modification: No
Here post your question 
I am having problems getting GROMACS-2023 to work for users other than the one who built it.
If a user other than the one who built the binary calls gmx_mpi, the following error message is displayed:

$ gmx_mpi
:-) GROMACS - gmx_mpi, 2023 (-:

Executable: /shared/apps/gromacs/2023.0_sn/bin/gmx_mpi

-------------------------------------------------------
Program: gmx_mpi, version 2023

Standard library runtime error (possible bug):
(exception type: NSt10filesystem16filesystem_errorE)
filesystem error: cannot check file equivalence: Permission denied
[/shared/apps/gromacs/2023.0_sn/bin]
[/mybuild_dir/gromacs-2023/build2_dev/bin]
For more information and tips for troubleshooting, please check the GROMACS
website at http://www.gromacs.org/Documentation/Errors
-------------------------------------------------------
Abort(1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0

Why does gmx_mpi try to write to its original build directory? [/mybuild_dir/gromacs-2023/build2_dev/bin]
Of course another user has no write permission in my build directory.
How can I prevent this behavior so that all users can use my build.

We have built GROMACS-2023 with the following parameters:

module purge
module load userspace/IntelOneAPI
module load userspace/all
module load mpi/latest cmake/3.25.2 compiler/latest mkl/latest cuda/11.8
source scl_source enable devtoolset-9

cmake .. \
-DGMX_MPI=on \
-DGMX_GPU=CUDA \
-DCMAKE_BUILD_TYPE=release \
-DGMX_DOUBLE=off \
-DGMX_FFT_LIBRARY=mkl \
-DGMX_HWLOC=ON \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_C_COMPILER=icx \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DMPIEXEC=srun \
-DMPIEXEC_NUMPROC_FLAG=-n \
-DMPIEXEC_PREFLAGS= \
-DMPIEXEC_POSTFLAGS=

We have decided for the time being to use Intel and MKL because we had problems linking with ownFFTW3 and the GCC9 compiler.

ln: failed to create hard link '.libs/libfftw3f.lax/lt588-hc2cbdftv_6.o' => '.libs/libfftw3f.lax/librdft_avx2_128_codelets.a/hc2cbdftv_6.o': Operation not permitted
libtool: link: ln .libs/libfftw3f.lax/librdft_avx2_128_codelets.a/hc2cbdftv_8.o .libs/libfftw3f.lax/lt589-hc2cbdftv_8. o || cp .libs/libfftw3f.lax/librdft_avx2_128_codelets.a/hc2cbdftv_8.o .libs/libfftw3f.lax/lt589-hc2cbdftv_8.o

If anyone has a clever idea for this, suggestions are always welcome. Maybe as additional information. Linking is done on the same disk/file system and not across disks.Preformatted text


Hello!

This “filesystem error: cannot check file equivalence: Permission denied” error should be fixed in the upcoming 2023.1.

As a workaround, you can manually apply the patch to the src/gromacs/commandline/cmdlineprogramcontext.cpp file:

Not sure about the FFTW linking problem. It looks like some permission settings or the type of filesystem used. Perhaps you can use an external FFTW3 installation (either build it manually or use a module if available?)

Hallo,

thanks for the quick response. I will try the patch.

Best regards,

ITAndy

Read more here: Source link