Skip to content
Snippets Groups Projects
Commit aa922be7 authored by Quang tru HUYNH's avatar Quang tru HUYNH
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
Pipeline #152874 failed
build:
image: docker:24
stage: build
before_script:
- i=0; while [ "$i" -lt 12 ]; do docker info && break; sleep 5; i=$(( i + 1 )) ; done
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- export MY_TIME=`date +"%F-%H%M"`
- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" -t "$CI_REGISTRY_IMAGE:latest" -t "$CI_REGISTRY_IMAGE:$MY_TIME" --build-arg="BUILD_OPTIONS=$OPTIONS" -f ./Dockerfile .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
- docker push "$CI_REGISTRY_IMAGE:latest"
- docker push "$CI_REGISTRY_IMAGE:main"
- docker push "$CI_REGISTRY_IMAGE:$MY_TIME"
FROM registry-gitlab.pasteur.fr/tru/docker-debian12-openmpi-cuda-12.8:latest
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN <<EOF bash
set -ex
lscpu > /lscpu.native.txt
V=2024.5
CMAKE=cmake
## GROMACS
cd /opt
wget -q -O - https://ftp.gromacs.org/gromacs/gromacs-${V}.tar.gz | tar xzvf -
cd gromacs-2024.5
mkdir build
cd build
# native host optimisation:
export CUDACXX=/usr/local/cuda-12.8/bin/nvcc
cmake ../ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.8 -DGMX_GPU=CUDA \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr/local/gromacs-2024.5-openmpi-cuda12.8-native \
-DGMX_OPENMP=ON -DGMX_MPI=ON -DGMX_THREAD_MPI=OFF \
-DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_C_COMPILER=mpicc -DGMX_BUILD_OWN_FFTW=ON
make -j24 CXXFLAGS="-O3"
make install
D=/usr/local/gromacs/${V}-openmpi-cuda-12.8.0_570.86.10
_build_serial() {
if [ $# -eq 1 ]; then
OPT=$1
else
exit 1
fi
mkdir serial-single-precision-${OPT} || :
(cd serial-single-precision-${OPT} && \
dpkg -l > dpkg-l
printenv > printenv
${CMAKE} .. \
-DGMX_BUILD_OWN_FFTW=ON \
-DREGRESSIONTEST_DOWNLOAD=ON \
-DGMX_SIMD=${OPT} \
-DCMAKE_INSTALL_PREFIX=${D}/serial/single-precision-${OPT}
nice make -j 16
make check || :
make install
) 2>&1 | tee -a serial-single-precision-${OPT}.`date '+%Y-%m-%d_%H%M'`
}
_build_mdrun() {
if [ $# -eq 1 ]; then
OPT=$1
else
exit 1
fi
mkdir mdrun-only-single-precision-openmpi-cuda-12.8.0_570.86.10-${OPT} || :
(cd mdrun-only-single-precision-openmpi-cuda-12.8.0_570.86.10-${OPT} && \
export CUDACXX=/usr/local/cuda-12.8/bin/nvcc
dpkg -l > dpkg-l
printenv > printenv
${CMAKE} .. \
-DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_C_COMPILER=mpicc \
-DGMX_OPENMP=ON -DGMX_MPI=ON -DGMX_THREAD_MPI=OFF \
-DBUILD_SHARED_LIBS=ON \
-DGMX_BUILD_OWN_FFTW=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.8 \
-DGMX_BUILD_MDRUN_ONLY=ON \
-DGMX_GPU=CUDA \
-DGMX_SIMD=${OPT} \
-DCMAKE_INSTALL_PREFIX=${D}/mdrun-only/single-precision-openmpi-cuda-12.8.0_570.86.10-${OPT}
nice make -j 16 && \
make install
) 2>&1 | tee -a single-precision-openmpi-cuda-12.8.0_570.86.10-${OPT}.`date '+%Y-%m-%d_%H%M'`
}
_default_build() {
for i in SSE4.1 AVX_256 AVX2_256 AVX_512
do
_build_serial $i
_build_mdrun $i
done
}
cd /opt/gromacs-2024.5/
_default_build
cd / && rm -rf /opt/gromacs-2024.5/
apt-get autoremove
apt-get autoclean
apt-get clean
# %runscript
# #!/bin/bash
# V=2024.5
# _usage() {
# echo first argument must be one of
# echo native
# echo or
# (cd /usr/local/gromacs/${V}-openmpi-cuda-12.8.0_570.86.10/ && /bin/ls -1d */*)
# exit 1
# }
# if [ $# -ge 1 ]; then
# if [ "$1" = "native" ]; then
# . /usr/local/gromacs-2024.5-openmpi-cuda12.8-native/bin/GMXRC.bash
# else
# if [ ! -d /usr/local/gromacs/${V}-openmpi-cuda-12.8.0_570.86.10/$1 ] ; then
# _usage
# fi
# ls -l /usr/local/gromacs/${V}-openmpi-cuda-12.8.0_570.86.10/$1/bin/GMXRC.bash
# . /usr/local/gromacs/${V}-openmpi-cuda-12.8.0_570.86.10/$1/bin/GMXRC.bash
# fi
# shift
# eval "$@"
# fi
EOF
This diff is collapsed.
# building a debian 12 based openmpi cuda 12.8 with gromacs 2024.5 (docker-debian12-openmpi-cuda-12.8-gromacs-2024.5)
[![pipeline status](https://gitlab.pasteur.fr/tru/docker-debian12-openmpi-cuda-12.8-gromacs-2024.5/badges/main/pipeline.svg)](https://gitlab.pasteur.fr/tru/docker-debian12-openmpi-cuda-12.8-gromacs-2024.5/-/commits/main)
Tru <tru@pasteur.fr>
(toy) docker image produced available at `registry-gitlab.pasteur.fr/tru/docker-debian12-openmpi-cuda-12.8-gromacs-2024.5:latest`
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment