diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index ee94f94..b311c01 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -105,4 +105,6 @@ jobs: cd /mnt oras push "$oras_uri" --artifact-type "application/vnd.sylabs.sif.layer.v1.sif" "${sif_file}:application/vnd.sylabs.sif.layer.v1.sif" + rm -f "${sif_file}" + cd - done diff --git a/inheritance-tree.png b/inheritance-tree.png index 1dc3551..bd69e0e 100644 Binary files a/inheritance-tree.png and b/inheritance-tree.png differ diff --git a/lammps/lammps-2025.07.22.2-gnu.def b/lammps/lammps-2025.07.22.2-gnu.def index b2f17f7..8ecb6cb 100644 --- a/lammps/lammps-2025.07.22.2-gnu.def +++ b/lammps/lammps-2025.07.22.2-gnu.def @@ -11,8 +11,7 @@ From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-gnu:9 mpirun -np 1 apptainer exec .sif lmp -i in.min %environment - export PATH=/usr/lib64/openmpi/bin:/opt/lammps-gnu-2025.07.22.2/bin:$PATH - export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH + export PATH=/usr/lib64/openmpi/bin:/opt/lammps-2025.07.22.2/bin:$PATH %post # source env variables from base image @@ -58,7 +57,7 @@ From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-gnu:9 -D WITH_JPEG=yes \ -D WITH_PNG=yes \ -D WITH_FFMPEG=yes \ - -D CMAKE_INSTALL_PREFIX=/opt/lammps-gnu-2025.07.22.2 ./cmake + -D CMAKE_INSTALL_PREFIX=/opt/lammps-2025.07.22.2 ./cmake cmake --build _build -j$(nproc) cmake --install _build diff --git a/lammps/lammps-2025.07.22.2-host-intel-2023.1-cuda-12.8.def b/lammps/lammps-2025.07.22.2-host-intel-2023.1-cuda-12.8.def new file mode 100644 index 0000000..08cfe32 --- /dev/null +++ b/lammps/lammps-2025.07.22.2-host-intel-2023.1-cuda-12.8.def @@ -0,0 +1,89 @@ +Bootstrap: oras +From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-intel-nvhpc:i2023.1-nv25.3-cuda-12.8-0 +Stage: devel + +%post + if [ -f /.singularity.d/env/91-environment.sh ]; then + . /.singularity.d/env/91-environment.sh + fi + + # enable additional repos + dnf in -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm + dnf in -y --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm + + # install lammps specific dependencies + dnf in -y ffmpeg \ + ffmpeg-devel \ + libjpeg-turbo \ + libjpeg-turbo-devel \ + libpng \ + libpng-devel + + export __INTEL_PRE_CFLAGS="-diag-disable=10441" + + # build lammps + wget -q https://download.lammps.org/tars/lammps-22Jul2025_update2.tar.gz + tar -xf lammps-22Jul2025_update2.tar.gz + rm -f lammps-22Jul2025_update2.tar.gz + cd lammps-22Jul2025 + + cmake -B _build \ + -C cmake/presets/most.cmake \ + -C cmake/presets/nolib.cmake \ + -C cmake/presets/gpu-cuda.cmake \ + -D CMAKE_BUILD_TYPE="Release" \ + -D BUILD_MPI=yes \ + -D BUILD_OMP=yes \ + -D CMAKE_CXX_STANDARD=17 \ + -D FFT=MKL \ + -D FFTW3_INCLUDE_DIR=${MKLROOT}/include/fftw \ + -D GPU_ARCH=sm_80 \ + -D CMAKE_CUDA_ARCHITECTURES=80 \ + -D KSPACE=yes \ + -D MC=yes \ + -D MOLECULE=yes \ + -D QEQ=yes \ + -D WITH_JPEG=yes \ + -D WITH_PNG=yes \ + -D WITH_FFMPEG=yes \ + -D CMAKE_INSTALL_PREFIX=/opt/lammps-2025.07.22.2 ./cmake + + cmake --build _build -j$(nproc) + cmake --install _build + +#-------------------------------- Final image ---------------------------------# + +Bootstrap: oras +From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-base:9.7-1 + +%labels + Maintainer Mat3ra.com + Version lammps-2025.07.22.2-host-intel-2023.1-cuda-12.8-0 + +%help + LAMMPS 2025.07.22.2 (requires mapping Intel OneAPI 2023.1 and CUDA 12.8 from + the host) + Example command: + mpirun -np 1 apptainer exec --nv .sif lmp -sf gpu -pk gpu 1 -i in.min + +%files from devel + /opt/lammps-2025.07.22.2 /opt/ + +%environment + export PATH=/opt/lammps-2025.07.22.2/bin:$PATH + +%post + # enable additional repos + dnf in -y --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm + dnf in -y --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm + + # install lammps specific dependencies + dnf in -y ffmpeg \ + ffmpeg-devel \ + libjpeg-turbo \ + libjpeg-turbo-devel \ + libpng \ + libpng-devel + + # Clean up + dnf clean all && rm -rf /var/cache/yum && rm -rf /var/cache/dnf diff --git a/lammps/lammps-2025.07.22.2-host-intel-2023.1.def b/lammps/lammps-2025.07.22.2-host-intel-2023.1.def index 8982afb..ec91f57 100644 --- a/lammps/lammps-2025.07.22.2-host-intel-2023.1.def +++ b/lammps/lammps-2025.07.22.2-host-intel-2023.1.def @@ -44,7 +44,7 @@ Stage: devel -D WITH_JPEG=yes \ -D WITH_PNG=yes \ -D WITH_FFMPEG=yes \ - -D CMAKE_INSTALL_PREFIX=/opt/lammps-2025.07.22.2-intel-2023.1 ./cmake + -D CMAKE_INSTALL_PREFIX=/opt/lammps-2025.07.22.2 ./cmake cmake --build _build -j$(nproc) cmake --install _build @@ -56,7 +56,7 @@ From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-base: %labels Maintainer Mat3ra.com - Version lammps-2025.07.22.2-intel-2023.1 + Version lammps-2025.07.22.2-host-intel-2023.1 %help LAMMPS 2025.07.22.2 (requires mapping Intel OneAPI 2023.1 from the host) @@ -64,10 +64,10 @@ From: ghcr.io/exabyte-io/application-containers-public/almalinux-apptainer-base: mpirun -np 2 apptainer exec .sif lmp -i in.min %files from devel - /opt/lammps-2025.07.22.2-intel-2023.1 /opt/ + /opt/lammps-2025.07.22.2 /opt/ %environment - export PATH=/opt/lammps-2025.07.22.2-intel-2023.1/bin:$PATH + export PATH=/opt/lammps-2025.07.22.2/bin:$PATH %post # enable additional repos diff --git a/manifest.yml b/manifest.yml index 817bb9d..6369950 100644 --- a/manifest.yml +++ b/manifest.yml @@ -61,6 +61,11 @@ images: path: lammps/lammps-2025.07.22.2-host-intel-2023.1.def registry: ghcr.io/exabyte-io/application-containers-public/lammps tag: 2025.07.22.2-host-intel-2023.1-0 + # Intel + CUDA + - name: lammps + path: lammps/lammps-2025.07.22.2-host-intel-2023.1-cuda-12.8.def + registry: ghcr.io/exabyte-io/application-containers-public/lammps + tag: 2025.07.22.2-host-intel-2023.1-cuda-12.8-0 # NanoLabo+MatterSim - name: nanolabo-mattersim path: nanolabo/nanolabo-mattersim.def