Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
Browse files Browse the repository at this point in the history
…eature/nrl-zlib
  • Loading branch information
climbfuji committed Jan 3, 2025
2 parents c6627dc + b21e3fb commit 9c9ccc1
Show file tree
Hide file tree
Showing 22 changed files with 1,791 additions and 125 deletions.
52 changes: 26 additions & 26 deletions configs/containers/docker-ubuntu-clang-mpich.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spack:
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
flags: {}
operating_system: ubuntu22.04
operating_system: ubuntu24.04
modules: []
environment:
prepend_path:
Expand All @@ -30,7 +30,7 @@ spack:
require: '%clang'
target: [x86_64]
providers:
mpi: [mpich@4.2.1]
mpi: [mpich@4.2.3]
compiler: [clang@14.0.0]
gcc:
buildable: false
Expand All @@ -56,9 +56,9 @@ spack:
mpich:
buildable: false
externals:
- spec: mpich@4.2.1
prefix: /opt/mpich-4.2.1
version: [4.2.1]
- spec: mpich@4.2.3
prefix: /opt/mpich-4.2.3
version: [4.2.3]
diffutils:
buildable: false
externals:
Expand All @@ -82,7 +82,7 @@ spack:
mysql:
buildable: false
externals:
- spec: mysql@8.0.39
- spec: mysql@8.0.40
prefix: /usr
qt:
buildable: false
Expand All @@ -93,9 +93,9 @@ spack:
wget:
buildable: false
externals:
- spec: wget@1.21.2
- spec: wget@1.21.4
prefix: /usr
version: [1.21.2]
version: [1.21.4]

specs: []

Expand All @@ -117,7 +117,7 @@ spack:
# Sets the base images for the stages where Spack builds the
# software or where the software gets installed after being built..
images:
os: ubuntu:22.04
os: ubuntu:24.04
spack:
url: https://github.com/jcsda/spack
ref: spack-stack-dev
Expand Down Expand Up @@ -197,15 +197,15 @@ spack:
# Register spack-stack extension repo
RUN spack repo add $SPACK_ROOT/var/spack/repos/spack-stack --scope defaults
# Set default binaries for clang-14 and GNU-12.
RUN ln -svf /usr/bin/gfortran-12 /usr/bin/gfortran && \
ln -svf /usr/bin/cpp-12 /usr/bin/cpp && \
ln -svf /usr/bin/gcc-12 /usr/bin/gcc && \
ln -svf /usr/bin/g++-12 /usr/bin/g++ && \
ln -svf /usr/bin/clang-14 /usr/bin/clang && \
ln -svf /usr/bin/clang++-14 /usr/bin/clang++ && \
ln -svf /usr/bin/clang-cpp-14 /usr/bin/clang-cpp
RUN rm /usr/bin/cpp && ln -s /usr/bin/cpp-12 /usr/bin/cpp && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 && \
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-12 100 && \
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 100 && \
update-alternatives --install /usr/bin/clang-cpp clang-cpp /usr/bin/clang-cpp-14 100
# Build mpich outside of spack-stack
ENV MPICH_VERSION=4.2.1
ENV MPICH_VERSION=4.2.3
ENV CC=clang
ENV CXX=clang++
ENV FC=gfortran
Expand All @@ -231,23 +231,23 @@ spack:
# Set environment variables for installing tzdata
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV MPICH_VERSION=4.2.1
ENV MPICH_VERSION=4.2.3
ENV PATH=/opt/mpich-${MPICH_VERSION}/bin:${PATH}
ENV CPATH=/opt/mpich-${MPICH_VERSION}/include:${CPATH}
ENV LD_LIBRARY_PATH=/opt/mpich-${MPICH_VERSION}/lib:${LD_LIBRARY_PATH}
final: |
# Copy spack find output from builder
COPY --from=builder /root/spack_find.out /root/spack_find.out
ENV MPICH_VERSION=4.2.1
ENV MPICH_VERSION=4.2.3
# Set the GNU 12.x toolchain as the default compilers.
# Set default binaries for clang-14 and GNU-12.
RUN ln -svf /usr/bin/gfortran-12 /usr/bin/gfortran && \
ln -svf /usr/bin/cpp-12 /usr/bin/cpp && \
ln -svf /usr/bin/gcc-12 /usr/bin/gcc && \
ln -svf /usr/bin/g++-12 /usr/bin/g++ && \
ln -svf /usr/bin/clang-14 /usr/bin/clang && \
ln -svf /usr/bin/clang++-14 /usr/bin/clang++ && \
ln -svf /usr/bin/clang-cpp-14 /usr/bin/clang-cpp
RUN rm /usr/bin/cpp && ln -s /usr/bin/cpp-12 /usr/bin/cpp && \
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 && \
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-12 100 && \
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-14 100 && \
update-alternatives --install /usr/bin/clang-cpp clang-cpp /usr/bin/clang-cpp-14 100
# Copy mpich-${MPICH_VERSION} installation from builder
COPY --from=builder /opt/mpich-${MPICH_VERSION} /opt/mpich-${MPICH_VERSION}
# Make a non-root user:nonroot / group:nonroot for running MPI
Expand Down
61 changes: 28 additions & 33 deletions configs/containers/docker-ubuntu-gcc-openmpi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ spack:

compilers:
- compiler:
spec: gcc@12.3.0
spec: gcc@13.3.0
paths:
cc: /usr/bin/gcc-12
cxx: /usr/bin/g++-12
f77: /usr/bin/gfortran-12
fc: /usr/bin/gfortran-12
cc: /usr/bin/gcc-13
cxx: /usr/bin/g++-13
f77: /usr/bin/gfortran-13
fc: /usr/bin/gfortran-13
flags: {}
operating_system: ubuntu22.04
operating_system: ubuntu24.04
modules: []
environment: {}
extra_rpaths: []
Expand All @@ -29,16 +29,16 @@ spack:
target: [x86_64]
providers:
mpi: [openmpi@5.0.5]
compiler: [gcc@12.3.0]
compiler: [gcc@13.3.0]
gcc:
buildable: false
externals:
- spec: gcc@12.3.0
- spec: gcc@13.3.0
prefix: /usr
gcc-runtime:
buildable: false
externals:
- spec: gcc-runtime@12.3.0
- spec: gcc-runtime@13.3.0
prefix: /usr
diffutils:
buildable: false
Expand All @@ -55,15 +55,15 @@ spack:
externals:
- spec: git-lfs@3.0.2
prefix: /usr
grep:
llvm:
buildable: false
externals:
- spec: grep@3.7
- spec: llvm@14.0.6
prefix: /usr
mysql:
buildable: false
externals:
- spec: mysql@8.0.39
- spec: mysql@8.0.40
prefix: /usr
qt:
buildable: false
Expand All @@ -76,7 +76,6 @@ spack:
externals:
- spec: wget@1.21.2
prefix: /usr
version: [1.21.2]

specs: []

Expand All @@ -98,7 +97,7 @@ spack:
# Sets the base images for the stages where Spack builds the
# software or where the software gets installed after being built..
images:
os: ubuntu:22.04
os: ubuntu:24.04
spack:
url: https://github.com/jcsda/spack
ref: spack-stack-dev
Expand All @@ -111,12 +110,13 @@ spack:
os_packages:
build:
- bc
- cpp-12
- g++-12
- gcc-12
- gfortran-12
- cpp-13
- g++-13
- gcc-13
- gfortran-13
- git
- git-lfs
- llvm-14
- make
- mysql-server
- qtbase5-dev
Expand All @@ -127,12 +127,13 @@ spack:

final:
- bc
- cpp-12
- g++-12
- gcc-12
- gfortran-12
- cpp-13
- g++-13
- gcc-13
- gfortran-13
- git
- git-lfs
- llvm-14
- make
- mysql-server
- qtbase5-dev
Expand All @@ -157,12 +158,9 @@ spack:
# Copy the spack-stack extension repo into the spack code
COPY spack-ext-SPACK_STACK_HASH/repos/spack-stack $SPACK_ROOT/var/spack/repos/spack-stack
# Register spack-stack extension repo
RUN spack repo add $SPACK_ROOT/var/spack/repos/spack-stack --scope defaults
# Set the GNU 12.x toolchain as the default compilers.
RUN ln -svf /usr/bin/gfortran-12 /usr/bin/gfortran && \
ln -svf /usr/bin/cpp-12 /usr/bin/cpp && \
ln -svf /usr/bin/gcc-12 /usr/bin/gcc && \
ln -svf /usr/bin/g++-12 /usr/bin/g++
RUN spack repo add $SPACK_ROOT/var/spack/repos/spack-stack --scope defaults && \
# Needed by py-llvmlite
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 100
pre_final: |
# Set environment variables for installing tzdata
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -178,18 +176,15 @@ spack:
final: |
# Copy spack find output from builder
COPY --from=builder /root/spack_find.out /root/spack_find.out
# Set the GNU 12.x toolchain as the default compilers.
RUN ln -svf /usr/bin/gfortran-12 /usr/bin/gfortran && \
ln -svf /usr/bin/cpp-12 /usr/bin/cpp && \
ln -svf /usr/bin/gcc-12 /usr/bin/gcc && \
ln -svf /usr/bin/g++-12 /usr/bin/g++
# Make a non-root user:nonroot / group:nonroot for running MPI
RUN useradd -U -k /etc/skel -s /bin/bash -d /home/nonroot -m nonroot --uid 43891 && \
echo "ulimit -s unlimited" >> /home/nonroot/.bashrc && \
echo "ulimit -v unlimited" >> /home/nonroot/.bashrc && \
echo "export CC=gcc" >> /home/nonroot/.bashrc && \
echo "export CXX=g++" >> /home/nonroot/.bashrc && \
echo "export FC=gfortran" >> /home/nonroot/.bashrc && \
# Needed by py-llvmlite
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 100 && \
printf "[credential]\n helper = cache --timeout=7200\n" >> /home/nonroot/.gitconfig && \
mkdir /home/nonroot/.pmix && \
echo "rmaps_default_mapping_policy=:oversubscribe" >> /home/nonroot/.pmix/mca-params.conf && \
Expand Down
Loading

0 comments on commit 9c9ccc1

Please sign in to comment.