[鲲鹏920-arm64][Euler OS] gromacs源码编译

1 编译前准备

本文假设已在目标机器上安装好了docker环境

1.1 下载并导入Euler OS镜像

访问Euler OS Repo网站,选择相应版本,进入到版本下的的docker_img进行下载。本文使用aarch64的版本的镜像。

mkdir -p /data/euler_compile
wget https://repo.openeuler.org/openEuler-20.09/docker_img/aarch64/openEuler-docker.aarch64.tar.xz
wget https://repo.openeuler.org/openEuler-20.09/docker_img/aarch64/openEuler-docker.aarch64.tar.xz.sha256sum
# 检查文件完整性
sha256sum -c openEuler-docker.aarch64.tar.xz.sha256sum
# 输出如下即为正常
# openEuler-docker.aarch64.tar.xz: OK

# 导入镜像
docker load < openEuler-docker.aarch64.tar.xz
# 输出如下即为正常
# 7f9c8dfc39c9: Loading layer [==================================================>]  # 607.1MB/607.1MB
# Loaded image: openeuler-20.09:latest

2 制作基础编译环境镜像

2.1 修改基础镜像dockerfile

FROM openeuler-20.09:latest
USER root
ENV LANG C.UTF-8

ARG ROOT_PASS="test"

RUN sed -e 's|baseurl=http://repo.openeuler.org/|baseurl=https://mirrors.huaweicloud.com/openeuler/|g' \
    -e 's|gpgkey=http://repo.openeuler.org/|gpgkey=https://mirrors.huaweicloud.com/openeuler/|g' \
    -i.bak \
    /etc/yum.repos.d/openEuler.repo && \
    yum -y update && \
    yum install -y gcc gcc-c++ make cmake zlib-devel libffi-devel openssl-devel sqlite-devel unzip pciutils net-tools lapack lapack-devel blas blas-devel gcc-gfortran vim tar&& \
    yum install -y openssh && \
    sed -i "s/#Port 22/Port 36000/g" /etc/ssh/sshd_config && \
    sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && \
    ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && \
    ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" && \
    echo "root:${ROOT_PASS}"|chpasswd && \
    yum clean all

CMD ["bash"]

2.2 打包镜像

假设目标镜像名为 gromacs_euler_os:compile_base, 2.1节的dockerfile名为gromacs_euler_os_compile_base.dockerfile

docker build -t gromacs_euler_os:compile_base -f gromacs_euler_os_compile_base.dockerfile ./

3 制作编译环境镜像

3.1 修改编译镜像dockerfile

FROM gromacs_euler_os:compile_base

ARG GROMACS_DOWNLOAD_URL="ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.3.tar.gz"
ARG REGRESSIONTESTS_DOWNLOAD_URL="ftp://ftp.gromacs.org/regressiontests/regressiontests-2020.3.tar.gz"
ARG FFTW_DOWNLOAD_URL="http://www.fftw.org/fftw-3.3.8.tar.gz"

## 安装fftw
RUN mkdir -p /data/fftw/ && \
    cd /data/fftw/ && \
    curl -o fftw-3.3.8.tar.gz ${FFTW_DOWNLOAD_URL} && \
    tar xf fftw-3.3.8.tar.gz && \
    cd fftw-3.3.8 && \
    ./configure --enable-shared --enable-static --enable-float && \
    make -j 12 && make install && \
    cd / && rm -rf /data/fftw/ && \
    ldconfig

## 安装grocmacs
RUN mkdir -p /data/gromacs/ && \
    cd /data/gromacs/ && \
    curl -o regressiontests-2020.3.tar.gz ${REGRESSIONTESTS_DOWNLOAD_URL} && \
    tar xf regressiontests-2020.3.tar.gz && \
    curl -o gromacs-2020.3.tar.gz ${GROMACS_DOWNLOAD_URL} && \
    tar xf gromacs-2020.3.tar.gz && \
    cd gromacs-2020.3 && \
    mkdir build && \
    cd build && \
    export OMPI_ALLOW_RUN_AS_ROOT=1 && \
    export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 && \
    cmake .. -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_BUILD_TYPE=Debug -DREGRESSIONTEST_PATH=/data/gromacs/regressiontests-2020.3 && \
    make -j 24 && \
    make check && \
    make install && \ 
    echo 'source /usr/local/gromacs/bin/GMXRC' >> ~/.bashrc && \
    cd / && rm -rf /data/gromacs/ && \
    ldconfig

3.2 打包镜像

假设目标镜像名为 gromacs_euler_os:kunpeng_only, 3.1节dockerfile名为gromacs_euler_os_kunpeng_only.dockerfile

docker build -t gromacs_euler_os:kunpeng_only --network=host -f gromacs_euler_os_kunpeng_only.dockerfile ./

参考

  • https://blog.csdn.net/ncdx111/article/details/79878098
  • https://support.huaweicloud.com/instg-9000-A800_9000_9010/atlastrain_03_0008.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值