Guidance on Building or Running CPE on a Container
CPE Container Options
Alongside our official release on our support site https://myenterpriselicense.hpe.com/cwp-ui/software, we also have a monolithic container, also found on our support site, mimicking a complete installation of CPE with all required dependencies. If you want to build a subset of those components (e.g. CCE only), please look at some examples of Dockerfiles below. These are experimental examples only tested lightly, please provide any feedback to our Slack Channel.
No Official Support
Please note that using this method of downloading, installing, configuring, or building software is not officially supported. Please join our Slack Workspace and start a discussion in our #hpe-cray-programming-environment channel.
CCE-Focused Example Dockerfile
cce.Dockerfile:
FROM registry.suse.com/suse/sles15sp5:latest as base
ARG prereq="\
cray-modules-3.2.11.7 \
cpe-prgenv-cray \
craype-2.7.32 \
# Needed for the time being
gcc gcc-c++ gcc-fortran \
"
ARG packages="\
cce-18.0.1.3 \
cray-pmi-6.1.15 \
cray-pmi-devel-6.1.15 \
cray-pals-1.3.2 \
cray-dsmml-0.3.0 \
cray-libsci-24.07.0-cray170 \
craype-targets-ex-1.13.2 \
cray-xpmem-2.7.4 \
cray-libxpmem0-2.7.4 \
cray-libxpmem-devel-2.7.4 \
"
# Reset pip package index
RUN rm /etc/pip.conf
RUN rpm --import https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/HPE-RPM-PROD-KEY-FIPS.public
RUN zypper ref
RUN zypper addrepo -f https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/<version>/<type>/<os_ver>/<arch> cpe \
&& zypper --non-interactive install $prereq $packages
FROM base as production
RUN zypper removerepo cpe
CMD ["/bin/bash"]
MPT-Focused Example Dockerfile
Note: Requires libfabric and libcxi packages
mpt.Dockerfile:
FROM registry.suse.com/suse/sles15sp5:latest as base
ARG prereq="cray-modules-3.2.11.7 \
craype-2.7.32"
ARG packages=" \
cray-dsmml-0.3.0 \
cray-mpich-8.1.30-amd60 \
cray-mpich-8.1.30-amd60-ucx \
cray-mpich-8.1.30-aocc41 \
cray-mpich-8.1.30-aocc41-ucx \
cray-mpich-8.1.30-cray170 \
cray-mpich-8.1.30-cray170-ucx \
cray-mpich-8.1.30-doc \
cray-mpich-8.1.30-gnu123 \
cray-mpich-8.1.30-gnu123-ucx \
cray-mpich-8.1.30-gtl \
cray-mpich-8.1.30-intel20221 \
cray-mpich-8.1.30-intel20221-ucx \
cray-mpich-8.1.30-ioutils \
cray-mpich-8.1.30-nvidia233 \
cray-mpich-8.1.30-nvidia233-ucx \
cray-openshmemx-11.7.2 \
cray-pmi-6.1.15 \
cray-pmi-devel-6.1.15 \
cray-pmi-doc-6.1.15"
# Reset pip package index
RUN rm /etc/pip.conf
RUN rpm --import https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/HPE-RPM-PROD-KEY-FIPS.public
RUN zypper ref
RUN zypper addrepo -f https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/<version>/<type>/<os_ver>/<arch> cpe \
&& zypper --non-interactive install $prereq $packages
FROM base as production
RUN zypper removerepo cpe
CMD ["/bin/bash"]
Debugging Tools Focused Example Dockerfile
debugging.Dockerfile:
FROM registry.suse.com/suse/sles15sp5:latest as base
ARG prereq="cray-modules-3.2.11.7"
ARG packages="atp cray-ccdb cray-stat gdb4hpc sanitizers4hpc totalviewsup-2023.2.15 valgrind4hpc"
# Reset pip package index
RUN rm -f /etc/pip.conf
RUN rpm --import https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/HPE-RPM-PROD-KEY-FIPS.public
RUN zypper ref
RUN zypper addrepo -f https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/<version>/<type>/<os_ver>/<arch> cpe \
&& zypper --non-interactive install $prereq $packages
# CDST products need upgraded libstdc++6
RUN zypper refresh -r sles15sp4-Module-Basesystem-update
RUN zypper --non-interactive --no-gpg-checks update libstdc++6
# cray-pe-set-default is needed before other packages
RUN zypper --non-interactive install cray-pe-set-default
RUN zypper --non-interactive install $prereq $packages
RUN zypper removerepo cpe
FROM base as production
CMD ["/bin/bash"]
CSML-Focused Example Dockerfile
Note: Requires libfabric and libcxi packages
csml.Dockerfile:
FROM registry.suse.com/suse/sles15sp5:latest as base
ARG prereq="gcc12 gcc12-c++ gcc12-fortran Modules make m4 automake cray-lmod-8.7.32 lmod_scripts-3.2.1 cray-modules-3.2.11.7 craype-2.7.31 cpe-gcc-mpfr-3.1.4 cray-pals-1.3.2 cray-pmi-6.1.14 cray-pmi-devel-6.1.14 cce-17.0.1 craypkg-gen-1.3.32 craype-targets-ex-1.13.0 cpe-gcc-native-12.3 cpe-prgenv-cray-8.5.0 cray-mpich-8.1.29-cray170 cray-libelf-0.8.16 cray-dwarf-0.8.0"
ARG packages=" \
cray-fftw-3.3.10.7 \
cray-libsci-24.03.0-cray170 \
cray-libsci-acc-24.03.1-cray \
cray-netcdf-4.9.0.11-crayclang170 \
cray-parallel-netcdf-1.12.3.11-crayclang170 \
cray-hdf5-1.12.2.11-crayclang170 \
"
# Reset pip package index
RUN rm /etc/pip.conf
RUN zypper repos && zypper refresh
RUN rpm --import https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/HPE-RPM-PROD-KEY-FIPS.public
RUN zypper ref
RUN zypper addrepo -f https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/<version>/<type>/<os_ver>/<arch> cpe \
&& zypper --non-interactive install $prereq $packages
FROM base as production
RUN zypper removerepo cpe
CMD ["/bin/bash"]
Performance Tools-Focused Example Dockerfile
perftools.Dockerfile:
FROM registry.suse.com/suse/sles15sp5:latest as base
ARG prereq="cray-modules-3.2.11.7 craype-2.7.23 cray-dwarf-0.7.0"
ARG packages=" \
cray-libelf-0.8.16 \
cray-papi-7.0.1.1 \
perftools-23.09.0 \
"
# Reset pip package index
RUN rm /etc/pip.conf
RUN rpm --import https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/HPE-RPM-PROD-KEY-FIPS.public
RUN zypper ref
RUN zypper addrepo -f https://<email-address>:<token>@update1.linux.hpe.com/repo/cpe/<version>/<type>/<os_ver>/<arch> cpe \
&& zypper --non-interactive install $prereq $packages
FROM base as production
RUN zypper removerepo cpe
CMD ["/bin/bash"]