diff --git a/HPC/image-list.yml b/HPC/image-list.yml index eb5940fed47a94bf0c3e356a66cd4091bbc44714..f0b5614924d2a8ebe675a58dbc1ad50dba4cd2ea 100644 --- a/HPC/image-list.yml +++ b/HPC/image-list.yml @@ -15,4 +15,5 @@ images: lumpy: lumpy busco: busco eman: eman - 3dslicer: 3dslicer \ No newline at end of file + 3dslicer: 3dslicer + namd: namd \ No newline at end of file diff --git a/HPC/namd/3.0.1/24.03-lts-sp2/Dockerfile b/HPC/namd/3.0.1/24.03-lts-sp2/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..24c2a7994364853d4896120fe51f9c376b7d31b5 --- /dev/null +++ b/HPC/namd/3.0.1/24.03-lts-sp2/Dockerfile @@ -0,0 +1,41 @@ +ARG BASE=openeuler/openeuler:24.03-lts-sp2 +FROM ${BASE} AS builder +ARG TARGETARCH +ARG BUILDARCH +ARG NAMD_ARCH +ARG VERSION=3.0.1 + +RUN dnf update -y \ + && dnf install -y gcc gcc-c++ gcc-gfortran make cmake patch wget tcl tcl-devel fftw fftw-devel findutils \ + && dnf clean all \ + && rm -rf /var/cache/dnf + +WORKDIR /opt + +COPY NAMD_${VERSION}_Source.tar.gz . + +RUN if [ "$TARGETARCH" = "amd64" ]; then \ + BUILDARCH="x86_64"; \ + NAMD_ARCH="x86_64"; \ + elif [ "$TARGETARCH" = "arm64" ]; then \ + BUILDARCH="arm8"; \ + NAMD_ARCH="ARM64"; \ + fi \ + && mkdir namd \ + && tar xf NAMD_${VERSION}_Source.tar.gz -C /opt/namd --strip-components=1 \ + && cd namd \ + && tar xf charm-8.0.0.tar \ + && cd charm-8.0.0 \ + && ./build charm++ multicore-linux-${BUILDARCH} --with-production \ + && cd .. \ + && ./config Linux-${NAMD_ARCH}-g++.arch --charm-arch multicore-linux-${BUILDARCH} --without-tcl --without-fftw \ + && cd Linux-${NAMD_ARCH}-g++.arch/ \ + && make -j $(nproc) + +FROM ${BASE} + +COPY --from=builder /opt/namd /opt/namd + +WORKDIR /opt/namd/Linux-ARM64-g++.arch + +CMD ["./namd3", "src/alanin"] diff --git a/HPC/namd/3.0.1/24.03-lts-sp2/NAMD_3.0.1_Source.tar.gz b/HPC/namd/3.0.1/24.03-lts-sp2/NAMD_3.0.1_Source.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8c8df10c82fb55db2a393eee3400340d60ca8d4c Binary files /dev/null and b/HPC/namd/3.0.1/24.03-lts-sp2/NAMD_3.0.1_Source.tar.gz differ diff --git a/HPC/namd/README.md b/HPC/namd/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ccf5769db2f726948bb2f0243461b6f11d5c2f84 --- /dev/null +++ b/HPC/namd/README.md @@ -0,0 +1,60 @@ +# Quick reference + +- The official NAMD docker image. + +- Maintained by: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative). + +- Where to get help: [openEuler CloudNative SIG](https://gitee.com/openeuler/cloudnative), [openEuler](https://gitee.com/openeuler/community). + +# NAMD | openEuler +Current NAMD docker images are built on the [openEuler](https://repo.openeuler.org/). This repository is free to use and exempted from per-user rate limits. + +NAMD is a parallel, object-oriented molecular dynamics code designed for high-performance simulation of large biomolecular systems. Simulation preparation and analysis is integrated into the visualization package VMD. Visit the NAMD website for complete information and documentation. + +# Supported tags and respective Dockerfile links +The tag of each `namd` docker image is consist of the version of `namd` and the version of basic image. The details are as follows + +| Tag | Currently | Architectures | +|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------|---------------| +| [3.0.1-oe2403sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/HPC/namd/3.0.2/24.03-lts-sp2/Dockerfile) | NAMD 3.0.1 on openEuler 24.03-LTS-SP2 | amd64, arm64 | + +# Usage +In this usage, users can select the corresponding `{Tag}` based on their requirements. + +- Pull the `openeuler/namd` image from docker + + ```bash + docker pull openeuler/namd:{Tag} + ``` + +- Run with an interactive shell + + You can also start the container with an interactive shell to use NAMD. + ``` + docker run -it --rm openeuler/namd:{Tag} bash + ``` + +- Single Process Execution + + ``` + cd /opt/namd/Linux-ARM64-g++ + /namd3 src/alanin + ``` + This will: + * Execute the simulation using one CPU core + * Display progress output in terminal + +- Parallel Execution Using Charm++ + + ``` + cd /opt/namd/Linux-ARM64-g++ + ./charmrun ++local +p2 ./namd3 src/alanin + ``` + + This will: + * Launch 2 parallel proecsses (`+p2`) + * Use local communication (`++local`) on the same machine + * Distribute computation across avaliable CPU cores + +# Question and answering +If you have any questions or want to use some special features, please submit an issue or a pull request on [openeuler-docker-images](https://gitee.com/openeuler/openeuler-docker-images). \ No newline at end of file diff --git a/HPC/namd/doc/image-info.yml b/HPC/namd/doc/image-info.yml new file mode 100644 index 0000000000000000000000000000000000000000..f4569d75d9f9a033bd884f2d30f20a732b897ae6 --- /dev/null +++ b/HPC/namd/doc/image-info.yml @@ -0,0 +1,58 @@ +name: namd +category: HPC +description: NAMD(Nanoscale Molecular Dynamics)是一款高性能的并行分子动力学模拟软件,由伊利诺伊大学厄巴纳-香槟分校(UIUC)开发,主要用于生物大分子(如蛋白质、DNA、脂质膜等)和纳米材料的模拟计算。 +environment: | + 本应用在Docker环境中运行,安装Docker执行如下命令 + ``` + yum install -y docker + ``` +tags: | + namd镜像的Tag由其版本信息和基础镜像版本信息组成,详细内容如下 + + | Tag | Currently | Architectures | + |----------|-------------|------------------| + |[3.0.1-oe2403sp2](https://gitee.com/openeuler/openeuler-docker-images/blob/master/HPC/namd/3.0.1/24.03-lts-sp2/Dockerfile)| namd 3.0.1 on openEuler 24.03-LTS-SP2 | amd64, arm64 | + +download: | + 拉取镜像到本地 + ``` + docker pull openeuler/namd:{Tag} + ``` + +usage: | + - 以交互式Shell运行容器: + + 通过交互式 Shell 启动容器,使用namd命令: + ``` + docker run -it --rm openeuler/namd:{Tag} bash + ``` + + - 单进程运行方式 + + ``` + cd /opt/namd/Linux-ARM64-g++ + /namd3 src/alanin + ``` + 这将: + * 使用单个CPU核心执行模拟计算 + * 在终端显示运行进度信息 + + - 使用Charm++并行执行 + + ``` + cd /opt/namd/Linux-ARM64-g++ + ./charmrun ++local +p2 ./namd3 src/alanin + ``` + + 这将: + * 启动2个并行进程 (`+p2`) + * 在同一台机器上使用本地通信(`++local`) + * 将计算任务分配到可用的CPU核心上执行 + + +license: NAMD License (https://www.ks.uiuc.edu/Research/namd/license.html) +similar_packages: + - GROMACS: 高性能分子动力学软件,起源于生物分子(如蛋白质、脂质膜)模拟。 +dependency: + - tcl + - fftw \ No newline at end of file diff --git a/HPC/namd/doc/picture/logo.png b/HPC/namd/doc/picture/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..af0baa0d2bed5a597a697a245f238be15a24b0b8 Binary files /dev/null and b/HPC/namd/doc/picture/logo.png differ diff --git a/HPC/namd/meta.yml b/HPC/namd/meta.yml new file mode 100644 index 0000000000000000000000000000000000000000..12ac7af6ae57ad61ef8b2ef856929fef0eb043d0 --- /dev/null +++ b/HPC/namd/meta.yml @@ -0,0 +1,2 @@ +3.0.1-oe2403sp2: + path: 3.0.1/24.03-lts-sp2/Dockerfile \ No newline at end of file