diff --git a/Dockerfile.gromacs_amber b/Dockerfile.gromacs_amber index 7c4e525..b3b8eba 100755 --- a/Dockerfile.gromacs_amber +++ b/Dockerfile.gromacs_amber @@ -60,6 +60,7 @@ echo "Asia/Shanghai" > /etc/timezone # curl -fsSL https://pixi.sh/install.sh | bash EOT +ENV CUDA_HOME=/usr/local/cuda ENV PATH=/opt/modules/bin:$PATH ENV LIBRARY_PATH=/opt/modules/lib:$LIBRARY_PATH COPY ./file/modules-5.4.0.tar.gz /root @@ -74,6 +75,8 @@ cd modules-5.4.0 ./configure --prefix=/opt/modules --bindir=/opt/modules/bin --libdir=/opt/modules/lib --disable-libtclenvmodules make -j$(nproc) make install +echo "source /opt/modules/init/profile.sh" >> /etc/profile +echo "source /opt/modules/init/profile.sh" >> ~/.bashrc # /opt/modules/bin/modulecmd EOT @@ -91,10 +94,74 @@ make -j$(nproc) make install EOT +# install ucx +# https://github.com/openucx/ucx +# OpenMPI and OpenSHMEM installation with UCX +# https://github.com/openucx/ucx/wiki/OpenMPI-and-OpenSHMEM-installation-with-UCX +# https://openucx.readthedocs.io/en/master +# Running in Docker containers +# https://openucx.readthedocs.io/en/master/running.html#running-in-docker-containers +ENV UCX_HOME=/usr/local/ucx +ENV PATH=${CUDA_HOME}/bin:${UCX_HOME}/bin:$PATH +ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${UCX_HOME}/lib:$LD_LIBRARY_PATH +RUN < -t bw -p -n +# 测试 UCX 读取配置 +# ucx_read_profile +# 检查 UCX 进程 +# mpirun -np 2 -mca pml ucx -x UCX_NET_DEVICES=mlx5_0:1 ./your_mpi_program +# CUDA support check +ucx_info -c +ucx_info -d +# ompi_info | grep ucx +EOT + # 安装openmpi ENV MPI_HOME=/usr/local/openmpi ENV PATH=${MPI_HOME}/bin:/usr/bin:$PATH -ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:${MPI_HOME}/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH +ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${MPI_HOME}/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH ENV LIBRARY_PATH=/usr/local/cuda/lib64:${LIBRARY_PATH} ENV CPATH=/usr/local/cuda/include:${MPI_HOME}/include:${CUDA_HOME}/include:$CPATH # export C_INCLUDE_PATH=/usr/local/cuda/include:$C_INCLUDE_PATH @@ -102,7 +169,7 @@ ENV CPATH=/usr/local/cuda/include:${MPI_HOME}/include:${CUDA_HOME}/include:$CPAT # export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH RUN <> /etc/profile +# echo "source /opt/intel/onemkl/setvars.sh" >> /etc/profile +echo "source /opt/intel/setvars.sh" >> ~/.bashrc +echo "source /opt/intel/onemkl/setvars.sh" >> ~/.bashrc +mkdir -p /opt/modulefiles/intel +chmod +x /opt/intel/setvars.sh +chmod +x /opt/intel/onemkl/setvars.sh +# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +# echo "source $HOME/.cargo/env" >> ~/.bashrc +# cargo install modenv +EOT +# install ambertools +ENV MODULEPATH=/opt/modulefiles/boost:$MODULEPATH +RUN <> project-config.jam -# echo "using mpi : /opt/intel/mpi/2021.13/bin/mpicxx ;" >> project-config.jam +# # echo "using mpi : /opt/intel/mpi/2021.13/bin/mpicxx ;" >> project-config.jam ./b2 -j$(nproc) --layout=tagged link=static,shared threading=multi install +mkdir -p /opt/modulefiles/boost +# use modulefile to load boost command is: +# module load boost/1.86.0-openmpi-5.1.0a1 | module list | module avail +cat << EOF > /opt/modulefiles/boost/1.86.0-openmpi-5.1.0a1 +#%Module1.0 +set prefix /opt/boost + +# 设置库路径和头文件路径,方便编译器找到 Boost +prepend-path LD_LIBRARY_PATH \$prefix/lib +prepend-path CPATH \$prefix/include +prepend-path LIBRARY_PATH \$prefix/lib +prepend-path PATH \$prefix/bin +EOF # 解压 Amber24 -tar -xjf Amber24.tar.bz2 +tar -xjvf Amber24.tar.bz2 # 解压 AmberTools24 -tar -xjf AmberTools24.tar.bz2 +tar -xjvf AmberTools24.tar.bz2 # 清理解压后的 .tar.bz2 文件(可选) # rm Amber24.tar.bz2 AmberTools24.tar.bz2 EOT