Skip to content

Commit

Permalink
Merge branch 'develop' into feature/add-golang
Browse files Browse the repository at this point in the history
  • Loading branch information
eap authored Jan 4, 2025
2 parents 910d196 + b21e3fb commit 5564eb7
Show file tree
Hide file tree
Showing 24 changed files with 1,805 additions and 139 deletions.
26 changes: 13 additions & 13 deletions .github/workflows/ubuntu-ci-x86_64-oneapi-ifx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
# Set up spack-stack
source ./setup.sh
export ENVNAME=ue-oneapi-ifx-2024.2.0-buildcache
export ENVNAME=ue-oneifx-2024.2.0-buildcache
export ENVDIR=$PWD/envs/${ENVNAME}
spack stack create env --site linux.default --template unified-dev --name ${ENVNAME} --compiler oneapi
spack env activate ${ENVDIR}
Expand Down Expand Up @@ -138,8 +138,8 @@ jobs:
spack config add "modules:default:tcl:exclude:[ecflow]"
# Concretize and check for duplicates
spack concretize 2>&1 | tee log.concretize.oneapi-ifx-2024.2.0-buildcache
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.oneapi-ifx-2024.2.0-buildcache -i fms -i crtm -i esmf -i mapl
spack concretize 2>&1 | tee log.concretize.oneifx-2024.2.0-buildcache
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.oneifx-2024.2.0-buildcache -i fms -i crtm -i esmf -i mapl
# Add and update source cache
spack mirror add local-source file:///home/ubuntu/spack-stack/source-cache/
Expand All @@ -161,22 +161,22 @@ jobs:
# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.oneapi-ifx-2024.2.0-buildcache.base-env
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.oneifx-2024.2.0-buildcache.base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ base-env
# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.oneapi-ifx-2024.2.0-buildcache.jedi-base-env
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.oneifx-2024.2.0-buildcache.jedi-base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env
# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.oneapi-ifx-2024.2.0-buildcache.jedi-ufs-env
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.oneifx-2024.2.0-buildcache.jedi-ufs-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-ufs-env
# the rest
echo "unified-env ..."
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.oneapi-ifx-2024.2.0-buildcache.unified-env
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.oneifx-2024.2.0-buildcache.unified-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/
# Remove binary cache for next round of concretization
Expand All @@ -197,24 +197,24 @@ jobs:
run: |
# Set up spack-stack
source ./setup.sh
export BUILDCACHE_ENVNAME=ue-oneapi-ifx-2024.2.0-buildcache
export BUILDCACHE_ENVNAME=ue-oneifx-2024.2.0-buildcache
export BUILDCACHE_ENVDIR=$PWD/envs/${BUILDCACHE_ENVNAME}
export ENVNAME=ue-oneapi-ifx-2024.2.0
export ENVNAME=ue-oneifx-2024.2.0
export ENVDIR=$PWD/envs/${ENVNAME}
rsync -av --exclude='install' --exclude='spack.lock' --exclude='.spack_db' ${BUILDCACHE_ENVDIR}/ ${ENVDIR}/
spack env activate ${ENVDIR}
# Concretize and check for duplicates
spack concretize --force 2>&1 | tee log.concretize.oneapi-ifx-2024.2.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.oneapi-ifx-2024.2.0 -i fms -i crtm -i esmf -i mapl
spack concretize --force 2>&1 | tee log.concretize.oneifx-2024.2.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.oneifx-2024.2.0 -i fms -i crtm -i esmf -i mapl
# Add binary cache back in
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
echo "Packages in combined spack build caches:"
spack buildcache list
# Install from cache
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.oneapi-ifx-2024.2.0.unified-env
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.oneifx-2024.2.0.unified-env
# Check shared libraries
${SPACK_STACK_DIR}/util/ldd_check.py $SPACK_ENV 2>&1 | tee log.ldd_check
Expand All @@ -230,7 +230,7 @@ jobs:
source /etc/profile.d/modules.sh
module use /home/ubuntu/spack-stack/modulefiles
export ENVNAME=ue-oneapi-ifx-2024.2.0
export ENVNAME=ue-oneifx-2024.2.0
export ENVDIR=$PWD/envs/${ENVNAME}
ls -l ${ENVDIR}/install/modulefiles/Core
Expand Down
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: [[email protected].1]
mpi: [[email protected].3]
compiler: [[email protected]]
gcc:
buildable: false
Expand All @@ -56,9 +56,9 @@ spack:
mpich:
buildable: false
externals:
- spec: [email protected].1
prefix: /opt/mpich-4.2.1
version: [4.2.1]
- spec: [email protected].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: [email protected].39
- spec: [email protected].40
prefix: /usr
qt:
buildable: false
Expand All @@ -93,9 +93,9 @@ spack:
wget:
buildable: false
externals:
- spec: [email protected].2
- spec: [email protected].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: [[email protected]]
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: [email protected]
prefix: /usr
grep:
llvm:
buildable: false
externals:
- spec: [email protected]
- spec: [email protected]
prefix: /usr
mysql:
buildable: false
externals:
- spec: [email protected].39
- spec: [email protected].40
prefix: /usr
qt:
buildable: false
Expand All @@ -76,7 +76,6 @@ spack:
externals:
- spec: [email protected]
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 5564eb7

Please sign in to comment.