Skip to content
Open
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
27 changes: 27 additions & 0 deletions .github/actions/test-all-eamxx/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ inputs:
description: 'Semicolon-separated list of key=value pairs for CMake to pass to test-all-eamxx'
required: false
default: ''
kokkos_develop:
description: 'Whether or not this is a test using Kokkos develop branch'
required: false
default: 'false'
valid_values:
- 'true'
- 'false'
Comment on lines +44 to +50
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Basically, eamxx-sa-testing.yml needs to set this variable if this is a Kokkos dev branch test.


runs:
using: "composite"
Expand Down Expand Up @@ -77,6 +84,18 @@ runs:
echo " generate : ${{ inputs.generate }}"
echo " submit : ${{ inputs.submit }}"
echo " cmake-configs: ${{ inputs.cmake-configs }}"
echo " kokkos dev : ${{ inputs.kokkos_develop }}"
shell: sh
- name: Checkout Kokkos develop branch
if: ${{ inputs.kokkos_develop == 'true' }}
working-directory: externals/ekat/extern/kokkos
run: |
echo "Check out up-to-date Kokkos develop branch"
if ! git remote | grep -q upstream; then
git remote add upstream https://github.com/kokkos/kokkos.git
fi
git fetch upstream
git checkout upstream/develop
Comment on lines +89 to +98
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Before running test-all-eamxx, checkout Kokkos develop.

shell: sh
- name: Run test-all-eamxx
working-directory: components/eamxx
Expand All @@ -98,6 +117,14 @@ runs:
cmd+=" -c $config"
done

# Add additional id for CDASH submit, and necessary cmake vars if this is a kokkos-develop test
if [ "${{ inputs.kokkos_develop }}" = "true" ]; then
cmd+=" --additional-id kokkos_develop"
cmd+=" -c CMAKE_CXX_STANDARD=20"
cmd+=" -c Kokkos_ENABLE_IMPL_VIEW_LEGACY=ON"
cmd+=" -c Kokkos_ENABLE_DEPRECATED_CODE_4=ON"
fi
Comment on lines +120 to +126
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Add additional ID and set necessary CMake vars.

I need to take a look at the issues with needing Kokkos_ENABLE_IMPL_VIEW_LEGACY=ON (something with ekat::subview) because, as the name suggests, this will be phased out at some point.


# Print the full command, then run it
echo "test-all-eamxx call: $cmd"
$cmd
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/eamxx-sa-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,15 @@ on:
description: 'Force cdash submission'
required: true
type: boolean
use_kokkos_dev:
description: 'Run with Kokkos develop branch'
required: true
type: boolean

# Add schedule trigger for nightly runs at midnight MT (Standard Time)
schedule:
- cron: '0 7 * * *' # Runs at 7 AM UTC, which is midnight MT during Standard Time
- cron: '0 7 * * 1' # Weekly run every Monday at 7 AM UTC (using Kokkos develop branch)

concurrency:
# Two runs are in the same group if they are testing the same git ref
Expand All @@ -60,6 +65,8 @@ env:
generate: ${{ github.event_name == 'workflow_dispatch' && inputs.bless }}
# Do EKAT testing for nightlies or (TODO: if EKAT label is present)
ekat: ${{ github.event_name == 'schedule' }}
# For the weekly run, we test using the kokkos develop branch
kokkos_dev_test: ${{ github.event_name == 'schedule' && github.event.schedule == '0 7 * * 1' || (github.event_name == 'workflow_dispatch' && inputs.use_kokkos_dev) }}

jobs:
gcc-openmp:
Expand Down Expand Up @@ -95,6 +102,7 @@ jobs:
submit: ${{ env.submit }}
cmake-configs: Kokkos_ENABLE_OPENMP=ON
ekat: ${{ env.ekat }}
kokkos_develop: ${{ env.kokkos_dev_test }}
gcc-cuda:
if: |
${{
Expand Down Expand Up @@ -163,3 +171,4 @@ jobs:
submit: ${{ env.submit }}
cmake-configs: Kokkos_ARCH_HOPPER90=${{ env.Hopper }};Kokkos_ARCH_AMPERE80=${{ env.Ampere }};Kokkos_ARCH_VOLTA70=${{ env.Volta }};CMAKE_CUDA_ARCHITECTURES=${{ env.CUDA_ARCH }};SCREAM_SMALL_KERNELS=${{ matrix.test.SK }}
ekat: ${{ env.ekat }}
kokkos_develop: ${{ env.kokkos_dev_test }}
3 changes: 3 additions & 0 deletions components/eamxx/scripts/test-all-eamxx
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ OR
choices_doc = ", ".join(["'{}' ({})".format(k, v) for k, v in get_test_name_dict().items()])
parser.add_argument("-t", "--test", dest="tests", action="append", default=[],
help=f"Only run specific test configurations, choices={choices_doc}")
parser.add_argument("--additional-id", default="",
help="Adds an aditional identifier to the test name in BUILD_NAME_MOD, "
"format: BUILD_NAME_MOD=str(test)+\"_\"+additional-id.")

parser.add_argument("-l", "--local", action="store_true",
help="Allow to not specify a machine name, and have test-all-eamxx to look"
Expand Down
7 changes: 5 additions & 2 deletions components/eamxx/scripts/test_all_eamxx.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ def __init__(self, cxx_compiler=None, f90_compiler=None, c_compiler=None,
local=False, root_dir=None, work_dir=None,
quick_rerun=False,quick_rerun_failed=False,
make_parallel_level=0, ctest_parallel_level=0,
extra_verbose=False, limit_test_regex=None, test_level="at", test_size=None):
extra_verbose=False, limit_test_regex=None, test_level="at", test_size=None,
additional_id=""):
###########################################################################

# When using scripts-tests, we can't pass "-l" to test-all-eamxx,
Expand Down Expand Up @@ -61,6 +62,7 @@ def __init__(self, cxx_compiler=None, f90_compiler=None, c_compiler=None,
self._test_level = test_level
self._test_size = test_size
self._generate = generate
self._additional_id = additional_id

if self._quick_rerun_failed:
self._quick_rerun = True
Expand Down Expand Up @@ -474,7 +476,8 @@ def generate_ctest_config(self, cmake_config, extra_configs, test):
result += f"-DBUILD_WORK_DIR={work_dir} "

build_name_mod = str(test)
result += f"-DBUILD_NAME_MOD={build_name_mod} "
testid = "_" + self._additional_id if self._additional_id != "" else ""
result += f"-DBUILD_NAME_MOD={build_name_mod}{testid} "
Comment on lines +479 to +480
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Let me know what you think of this, can't decide if I think it's too hacky, but don't have any other good ideas.


if self._limit_test_regex:
result += f"-DINCLUDE_REGEX={self._limit_test_regex} "
Expand Down
Loading