Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
86a4c49
Update radiuss-spack-config commit
tdrwenski Mar 12, 2025
b75c016
Remove unneeded link command
tdrwenski Mar 17, 2025
dbc5c2e
Either load BLT from CMakeCache or submodule
tdrwenski Mar 17, 2025
219233f
Update radiuss-spack-configs quandary spack package
tdrwenski Mar 17, 2025
fad0d70
Remove CI shared job workaround
tdrwenski Mar 18, 2025
c4bc6cb
Update radiuss-spack-configs netlib-lapack
tdrwenski Mar 18, 2025
81d5a54
Force use of working version of netlib-lapack in CI
tdrwenski Mar 18, 2025
0fba338
Update CI script and tests to account for the case that mpiexec is fl…
tdrwenski Mar 19, 2025
85dd85e
Require mpi on ruby to use the same compiler as quandary
tdrwenski Mar 17, 2025
913af97
Add linux github workflow job
tdrwenski Mar 21, 2025
4f0bb89
Never use quandary from buildcache
tdrwenski Mar 27, 2025
a9084ad
Also run tests on main
tdrwenski Mar 27, 2025
a35b3f0
Force push quandary to cache
tdrwenski Mar 27, 2025
9a63c1e
Remove unnecessary cp since quandary is always rebuilt
tdrwenski Mar 27, 2025
cf17566
Explicitly ask for openmpi so that mpich does not get used (avoid rpa…
tdrwenski Mar 28, 2025
6683ed6
Add Docker platform to spack buildcache images
tdrwenski Apr 2, 2025
b604da4
Force push linux buildcache packages to ensure dockerized quandary ha…
tdrwenski Apr 2, 2025
f5a094b
Use LLNL ghcr for spack buildcache
tdrwenski Apr 2, 2025
35769e5
Fix comment
tdrwenski Apr 2, 2025
6e6e6aa
Update radiuss-spack-configs version
tdrwenski Apr 2, 2025
175e13e
Fix workflow buildcache push to only force push quandary and not othe…
tdrwenski Apr 2, 2025
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
4 changes: 2 additions & 2 deletions .ci-scripts/build_and_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,8 @@ then

timed_message "Run regression tests"

mpi_exe=`grep 'MPIEXEC_EXECUTABLE' ${hostconfig_path} | cut -d'"' -f2`
pytest -v -s regression_tests --mpi-exec=${mpi_exe}
mpi_exe=$(grep 'MPIEXEC_EXECUTABLE' "${hostconfig_path}" | cut -d'"' -f2 | sed 's/;/ /g')
pytest -v -s regression_tests --mpi-exec="${mpi_exe}"

timed_message "Quandary tests completed"
fi
Expand Down
2 changes: 1 addition & 1 deletion .ci-scripts/radiuss-spack-configs
Submodule radiuss-spack-configs updated 44 files
+46 −0 .gitlab-ci.yml
+97 −0 .gitlab/corona.yml
+64 −0 .gitlab/lassen.yml
+93 −0 .gitlab/poodle.yml
+99 −0 .gitlab/ruby.yml
+42 −0 .gitlab/scripts/get-spack
+16 −0 .gitlab/scripts/print-variables
+14 −0 .gitlab/scripts/remove-spack
+24 −0 .gitlab/spack/ci-script.sh
+70 −0 .gitlab/spack/ci.yaml
+1 −0 .gitlab/spack/envs/shared-ci/corona
+1 −0 .gitlab/spack/envs/shared-ci/lassen
+22 −0 .gitlab/spack/envs/shared-ci/pipeline.yml
+1 −0 .gitlab/spack/envs/shared-ci/poodle
+1 −0 .gitlab/spack/envs/shared-ci/ruby
+79 −0 .gitlab/spack/envs/shared-ci/spack.yaml
+1 −0 .gitlab/spack/envs/shared-ci/tioga
+18 −0 .gitlab/spack/generate-script.sh
+20 −0 .gitlab/spack/reindex-corona.yml
+17 −0 .gitlab/spack/reindex-lassen.yml
+14 −0 .gitlab/spack/reindex-override.yml
+18 −0 .gitlab/spack/reindex-poodle.yml
+18 −0 .gitlab/spack/reindex-ruby.yml
+18 −0 .gitlab/spack/reindex-script.sh
+20 −0 .gitlab/spack/reindex-tioga.yml
+97 −0 .gitlab/tioga.yml
+58 −0 .gitlab/variables.yml
+6 −0 RELEASE_NOTES.md
+20 −59 blueos_3_ppc64le_ib/compilers.yaml
+33 −36 blueos_3_ppc64le_ib/lassen/packages.yaml
+32 −35 blueos_3_ppc64le_ib/packages.yaml
+97 −0 docs/sphinx/ci_implementation/index.rst
+2 −1 docs/sphinx/conf.py
+9 −4 docs/sphinx/index.rst
+3 −3 docs/sphinx/user_guide/build_and_test.rst
+1 −1 docs/sphinx/user_guide/how_to.rst
+2 −2 docs/sphinx/user_guide/index.rst
+1 −1 docs/sphinx/user_guide/use_spack.rst
+2 −2 packages/camp/package.py
+2 −2 packages/chai/package.py
+13 −0 packages/quandary/package.py
+8 −2 packages/umpire/package.py
+0 −13 toss_4_x86_64_ib/compilers.yaml
+1 −1 toss_4_x86_64_ib/packages.yaml
44 changes: 0 additions & 44 deletions .github/workflows/test-macos.yml

This file was deleted.

59 changes: 59 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Build and Test

on:
pull_request:
branches: ['main']
push:
branches: ['main']

jobs:
build-and-test:
strategy:
matrix:
os: [macos-latest, ubuntu-24.04]
runs-on: ${{ matrix.os }}
permissions:
packages: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Spack
uses: spack/setup-spack@v2

- name: Configure Spack
run: |
spack -e .spack_env mirror set binary_mirror --unsigned
spack mirror add --type binary --unsigned --oci-username GITHUB_USER --oci-password-variable GITHUB_TOKEN local-buildcache oci://ghcr.io/LLNL/quandary-spack-buildcache

- name: Install
# explicitly use openmpi, since mpich causes rpath problems in binary
run: |
spack -e .spack_env rm quandary
spack -e .spack_env add quandary@develop+test^openmpi
spack -e .spack_env install --use-buildcache package:never

- name: Run regression tests
shell: spack-sh {0}
run: |
spack env activate .spack_env
python -m pip install -e . --prefer-binary
pytest -v -s regression_tests --mpi-opt="--oversubscribe"

- name: Push packages and update index
env:
GITHUB_USER: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCKER_DEFAULT_PLATFORM: linux/amd64
run: |
if [[ "${{ matrix.os }}" == "ubuntu-24.04" ]]; then
# Force push quandary package
spack -e .spack_env buildcache push -f --base-image ubuntu:24.04 --update-index local-buildcache quandary
spack -e .spack_env buildcache push --base-image ubuntu:24.04 --update-index local-buildcache
else
spack -e .spack_env buildcache push --update-index local-buildcache
fi
if: ${{ !cancelled() }}
2 changes: 1 addition & 1 deletion .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ variables:
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: "+test"
# Project specific deps for lassen
PROJECT_LASSEN_DEPS: ""
PROJECT_LASSEN_DEPS: "^netlib-lapack@3.9.0"

# Configuration shared by build and test jobs specific to this project.
# Not all configuration can be shared. Here projects can fine tune the
Expand Down
10 changes: 0 additions & 10 deletions .gitlab/jobs/lassen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,3 @@
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for RAJA.
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
# the comparison with the original job is easier.

gcc_11_2_1_cuda_11_8_0:
variables:
# Force petsc to use same compiler
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda %gcc@=11.2.1 ^cuda@11.8.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS} ^petsc%gcc@=11.2.1"
MODULE_LIST: "cuda/11.8.0"
extends: [.job_on_lassen]
6 changes: 6 additions & 0 deletions .gitlab/jobs/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,9 @@ oneapi_2023_2_1:
variables:
ON_RUBY: "OFF"
extends: .job_on_ruby

# Force mvapich2 to be built with gcc
gcc_10_3_1:
variables:
SPEC: "${PROJECT_RUBY_VARIANTS} %gcc@=10.3.1 ${PROJECT_RUBY_DEPS} ^mvapich2%gcc@=10.3.1"
extends: .job_on_ruby
25 changes: 24 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,29 @@ set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
set(ENABLE_MPI ON CACHE BOOL "")

include(blt/SetupBLT.cmake)
################################
# BLT
################################
if (NOT BLT_LOADED)
if (DEFINED BLT_SOURCE_DIR)
if (NOT EXISTS ${BLT_SOURCE_DIR}/SetupBLT.cmake)
message(FATAL_ERROR "Given BLT_SOURCE_DIR does not contain SetupBLT.cmake")
endif()
else ()
set (BLT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/blt CACHE PATH "")

if (NOT EXISTS ${BLT_SOURCE_DIR}/SetupBLT.cmake)
message(FATAL_ERROR
"The BLT git submodule is not present. "
"Either run the following two commands in your git repository: \n"
" git submodule init\n"
" git submodule update\n"
"Or add -DBLT_SOURCE_DIR=/path/to/blt to your CMake command." )
endif ()
endif ()

message(STATUS "BLT Source Directory: ${BLT_SOURCE_DIR}")
include(${BLT_SOURCE_DIR}/SetupBLT.cmake)
endif()

add_subdirectory(src)
3 changes: 2 additions & 1 deletion regression_tests/regression_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ def test_eval(test_case: Case, request):
def run_test(simulation_dir, number_of_processes, config_file, files_to_compare, exact, mpi_exec, mpi_opt):
os.chdir(simulation_dir)

command = [mpi_exec, "-n", str(number_of_processes)]
command = mpi_exec.split()
command.extend(["-n", str(number_of_processes)])
if mpi_opt:
command.extend([mpi_opt])
command.extend([QUANDARY_PATH, config_file])
Expand Down
3 changes: 0 additions & 3 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ find_package(PkgConfig REQUIRED)
pkg_search_module(PETSC REQUIRED IMPORTED_TARGET PETSc)
target_link_libraries(quandary_lib PUBLIC PkgConfig::PETSC)

# Other libraries
target_link_libraries(quandary_lib PUBLIC m blas lapack)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@steffi7574 This should fix your issue


# Put executable in root directory
set_target_properties(
quandary
Expand Down