Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/check-compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
parallel: ['serial', 'mpi']
runs-on: ubuntu-latest
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
env:
CMAKE_GENERATOR: Ninja
steps:
Expand All @@ -76,15 +76,15 @@ jobs:
# compile time, see https://github.com/parthenon-hpc-lab/parthenon/pull/1191#issuecomment-2492035364
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B builddir \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DMACHINE_VARIANT=${{ matrix.device }}_${{ matrix.parallel }} \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DKokkos_ARCH_AMD_GFX90A=ON -DKokkos_ARCH_NAVI1030=OFF
- name: Build
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-extended.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ jobs:
parallel: ['serial', 'mpi']
runs-on: [self-hosted, navi1030]
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
# Map to local user id on CI machine to allow writing to build cache and
# forward device handles to access AMD GPU within container
options: --user 1000 -w /home/ci --device /dev/kfd --device /dev/dri --security-opt seccomp=unconfined
Expand All @@ -155,14 +155,14 @@ jobs:
- name: Configure
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B build \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DMACHINE_VARIANT=hip-${{ matrix.parallel }} \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DCMAKE_CXX_COMPILER=hipcc

- name: Build
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-short.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ jobs:
integration-amdgpu:
runs-on: [self-hosted, navi1030]
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
# Map to local user id on CI machine to allow writing to build cache and
# forward device handles to access AMD GPU within container
options: --user 1000 -w /home/ci --device /dev/kfd --device /dev/dri --security-opt seccomp=unconfined
Expand All @@ -163,14 +163,14 @@ jobs:
- name: Configure
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B build \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DMACHINE_VARIANT=hip-mpi \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DCMAKE_CXX_COMPILER=hipcc
# Test example with "variables" and output
- name: advection
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
- [[PR 1360]](https://github.com/parthenon-hpc-lab/parthenon/pull/1360) Fix boundary cache clearing in different MeshData partitions

### Infrastructure (changes irrelevant to downstream codes)
- [[PR 1414]](https://github.com/parthenon-hpc-lab/parthenon/pull/1414) Bump ROCM CI Container to rocm 7.2.4
- [[PR 1397]](https://github.com/parthenon-hpc-lab/parthenon/pull/1397) Add Code of Conduct
- [[PR 1385]](https://github.com/parthenon-hpc-lab/parthenon/pull/1385) Refactor ParameterInput: Separate parsing from storage to enable multiple input formats
- [[PR 1383]](https://github.com/parthenon-hpc-lab/parthenon/pull/1382) Document agentic coding guidelines
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ if (NOT PARTHENON_DISABLE_OPENPMD)
set(openPMD_BUILD_SHARED_LIBS OFF)
set(openPMD_INSTALL OFF)
set(openPMD_USE_ADIOS2 ON) # we definitely want ADIOS2
set(openPMD_USE_MPI ${ENABLE_MPI})
if( NOT Python3_Interpreter_FOUND)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
endif()
Expand All @@ -278,7 +279,7 @@ if (NOT PARTHENON_DISABLE_OPENPMD)
endif()
FetchContent_Declare(openPMD
GIT_REPOSITORY "https://github.com/openPMD/openPMD-api.git"
GIT_TAG "0.17.0") # Release 0.17.0
GIT_TAG "0.17.1") # Release 0.17.1
FetchContent_MakeAvailable(openPMD)
install(TARGETS openPMD EXPORT parthenonTargets)
endif()
Expand Down
11 changes: 8 additions & 3 deletions cmake/machinecfg/GitHubActions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ message(STATUS "Loading machine configuration for GitHub Actions CI. ")

# common options
set(NUM_MPI_PROC_TESTING "2" CACHE STRING "CI runs tests with 2 MPI ranks")
set(Kokkos_ENABLE_ROCTHRUST OFF CACHE BOOL "Temporarily disabled as the container needs to be updated to the `-complete` base image.")

set(CMAKE_CXX_FLAGS_DBGNOSYM "-O0" CACHE STRING "Debug build without symbols")

Expand All @@ -44,11 +43,17 @@ if (${MACHINE_VARIANT} MATCHES "mpi")
# not using the following as the default is determined correctly
#set(TEST_MPIEXEC mpiexec CACHE STRING "Command to launch MPI applications")
list(APPEND TEST_MPIOPTS "--allow-run-as-root")
set(HDF5_ROOT /usr/local/hdf5/parallel CACHE STRING "HDF5 path")
# ROCM/HIP build uses container with default HDF5 install, other need custom
if (NOT ${MACHINE_VARIANT} MATCHES "hip")
set(HDF5_ROOT /usr/local/hdf5/parallel CACHE STRING "HDF5 path")
endif()
set(PARTHENON_USE_SYSTEM_OPENPMD ON CACHE BOOL "Use API in container")

else()
set(HDF5_ROOT /usr/local/hdf5/serial CACHE STRING "HDF5 path")
# ROCM/HIP build uses container with default HDF5 install, other need custom
if (NOT ${MACHINE_VARIANT} MATCHES "hip")
set(HDF5_ROOT /usr/local/hdf5/serial CACHE STRING "HDF5 path")
endif()
set(PARTHENON_DISABLE_MPI ON CACHE BOOL "Disable MPI")
# testing auto fetch and compile
set(PARTHENON_USE_SYSTEM_OPENPMD OFF CACHE BOOL "Use API in container")
Expand Down
59 changes: 0 additions & 59 deletions cmake/machinecfg/Spock.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion external/Kokkos
22 changes: 6 additions & 16 deletions scripts/docker/Dockerfile.hip-rocm
Original file line number Diff line number Diff line change
@@ -1,27 +1,17 @@
FROM rocm/dev-ubuntu-24.04:6.2
FROM rocm/dev-ubuntu-24.04:7.2.4-complete

RUN apt-get clean && apt-get update -y && \
DEBIAN_FRONTEND="noninteractive" TZ=America/New_York apt-get install -y --no-install-recommends git python3-minimal libpython3-stdlib bc hwloc wget openssh-client python3-numpy python3-h5py python3-matplotlib lcov curl cmake ninja-build openmpi-bin libopenmpi-dev adios2-mpi-bin adios2-serial-bin libadios2-mpi-c++11-dev libadios2-mpi-core-dev libadios2-serial-core-dev libadios2-serial-c++11-dev && \
DEBIAN_FRONTEND="noninteractive" TZ=America/New_York apt-get install -y --no-install-recommends git python3-minimal libpython3-stdlib bc hwloc wget openssh-client python3-numpy python3-h5py python3-matplotlib lcov curl cmake ninja-build openmpi-bin libopenmpi-dev adios2-mpi-bin adios2-serial-bin libadios2-mpi-c++11-dev libadios2-mpi-core-dev libadios2-serial-core-dev libadios2-serial-c++11-dev libhdf5-dev libhdf5-openmpi-dev && \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think ubuntu puts the openmpi variant in a nested directory, for me it ends up in /usr/include/hdf5/openmpi/, which might be the problem in CI.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue was that the HDF5_ROOT var overwrote the default search paths. I now selective set it for non-hip builds (as the hip builds now pick up the ubuntu shipped version).

apt-get clean && rm -rf /var/lib/apt/lists/*

RUN cd /tmp && \
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.8/src/hdf5-1.10.8.tar.gz && \
tar xzf hdf5-1.10.8.tar.gz && \
cd hdf5-1.10.8 && \
mkdir -p /usr/local/hdf5/serial /usr/local/hdf5/parallel && \
./configure --prefix=/usr/local/hdf5/serial --enable-hl --enable-build-mode=production && make -j8 && make install && make clean && \
./configure --prefix=/usr/local/hdf5/parallel --enable-hl --enable-build-mode=production --enable-parallel && make -j8 && make install && \
cd / && \
rm -rf /tmp/hdf5-1.10.8*

RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# commit version is ver 0.16.1
# commit version is ver 0.17.1
RUN mkdir /tmp/build-openpmd && cd /tmp/build-openpmd && \
wget https://github.com/openPMD/openPMD-api/archive/3a60e77.tar.gz && \
tar xzf 3a60e77.tar.gz && \
wget https://github.com/openPMD/openPMD-api/archive/f0033b4.tar.gz && \
tar xzf f0033b4.tar.gz && \
mkdir openPMD-api-build && cd openPMD-api-build && \
cmake ../openPMD-api-3a60e7714f6143c8fc7bf89809f2167d058359ee -DopenPMD_USE_PYTHON=ON -DPython_EXECUTABLE=$(which python3) -DopenPMD_USE_ADIOS2=ON && \
cmake ../openPMD-api-f0033b4deee00ec2b76cafcdd765e960b4906e31 -DopenPMD_USE_PYTHON=ON -DPython_EXECUTABLE=$(which python3) -DopenPMD_USE_ADIOS2=ON && \
cmake --build . -j 16 && \
cmake --build . --target install && \
cd / && \
Expand Down
Loading