Hello, is it possible to enable the PLUMED library in the current 2021 GROMACS Docker container GROMACS | NVIDIA NGC?
Thank you
Hello, is it possible to enable the PLUMED library in the current 2021 GROMACS Docker container GROMACS | NVIDIA NGC?
Thank you
Hi tahan,
Thanks for reaching out. You can enable the PLUMED library by:
/usr/src
to a mounted directoryRUN
block and addingRUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
xxd && \
rm -rf /var/lib/apt/lists/*
# https://github.com/plumed/plumed2/releases/download/v2.7.1/plumed-2.7.1.tgz
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/plumed/plumed2/releases/download/v2.7.1/plumed-2.7.1.tgz && \
mkdir -p /var/tmp && tar -x -f /var/tmp/plumed-2.7.1.tgz -C /var/tmp -z && \
cd /var/tmp/plumed-2.7.1 && \
./configure && \
make -j 4 && \
make install && \
rm -rf /var/tmp/plumed-2.7.1 /var/tmp/plumed-2.7.1.tgz
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib \
PATH=$PATH:/usr/local/bin \
PLUMED_KERNEL=/usr/local/lib/libplumedKernel.so
This downloads and compiles the PLUMED library
RUN
block just after cd
ing into the Gromacs directory: plumed patch -p --runtime -e gromacs-2021
Each block should look similar to:
RUN mkdir -p /var/tmp && cd /var/tmp && git clone --depth=1 --branch v2021.1 https://github.com/gromacs/gromacs.git gromacs && cd - && \
cd /var/tmp/gromacs && \
plumed patch -p --runtime -e gromacs-2021 && \
sed -i 's/ifdef __PGI/if 0/g' src/gromacs/fileio/xdrf.h && \
mkdir -p /var/tmp/gromacs/build && cd /var/tmp/gromacs/build && CC=gcc CFLAGS='-march=haswell -mtune=generic -O3 -pipe' CXX=g++ CXXFLAGS='-march=haswell -mtune=generic -O3 -pipe' FFLAGS='-march=haswell -mtune=generic -O3 -pipe' LDFLAGS=-Wl,--as-needed cmake -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs/avx2_256 -DGMX_SIMD=AVX2_256 -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_C_FLAGS_RELEASE='-march=haswell -mtune=generic -O3 -pipe -DNDEBUG' -DCMAKE_CXX_FLAGS_RELEASE='-march=haswell -mtune=generic -O3 -pipe -DNDEBUG' -DREGRESSIONTEST_DOWNLOAD=off -DBUILD_SHARED_LIBS=ON -DGMX_GPU=CUDA -DGMX_OPENMP=True -DGMX_FFT_LIBRARY=fftw3 -DFFTWF_LIBRARY=/usr/local/fftw/lib/libfftw3f.so -DFFTWF_INCLUDE_DIR=/usr/local/fftw/include -DGMX_BUILD_OWN_FFTW=OFF -DGMX_BUILD_OWN_BLAS=ON -DGMX_BUILD_OWN_LAPACK=ON -DGMX_DOUBLE=OFF -DGMX_X11=OFF -DGMX_CUDA_TARGET_SM='60;70;75;80' -DGMX_CUDA_VERSION=11.2 -DGMX_THREAD_MPI=ON /var/tmp/gromacs && \
cmake --build /var/tmp/gromacs/build --target all -- -j$(nproc) && \
cmake --build /var/tmp/gromacs/build --target install -- -j$(nproc) && \
rm -rf /var/tmp/gromacs
COPY
block and adding:# https://github.com/plumed/plumed2/releases/download/v2.7.1/plumed-2.7.1.tgz
COPY --from=build /usr/local/lib/libplumedKernel.so /usr/local/lib/libplumedKernel.so
COPY --from=build /usr/local/lib /usr/local/lib
COPY --from=build /usr/local/bin /usr/local/bin
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib \
PATH=$PATH:/usr/local/bin \
PLUMED_KERNEL=/usr/local/lib/libplumedKernel.so
This ensures the PLUMED library is within your runtime container
I hope this helps, please let me know if there are any issues that pop up as this hasn’t been rigorously tested.
Thanks,
Jillian