Skip to content

Commit

Permalink
Merge -next with CT changes, basics working
Browse files Browse the repository at this point in the history
  • Loading branch information
bprather committed Aug 11, 2023
2 parents 9e985b9 + 5a5c580 commit 9b9489b
Show file tree
Hide file tree
Showing 47 changed files with 808 additions and 356 deletions.
77 changes: 12 additions & 65 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,23 @@
# Continuous Integration testing for KHARMA
# a.k.a did we break the basics?
# This version run on LANL Darwin
# See .gitlab-ci-docker.yml for a generic version,
# which can be run on any Docker runner w/GPUs

variables:
GIT_SUBMODULE_STRATEGY: recursive
SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86"
HOST_ARCH: HSW
NPROC: ""
OMP_NUM_THREADS: 28
OMP_PROC_BIND: "false"
MPI_EXE: mpirun
MPI_NUM_PROCS: 2
HTTP_PROXY: http://proxyout.lanl.gov:8080
http_proxy: http://proxyout.lanl.gov:8080
HTTPS_PROXY: http://proxyout.lanl.gov:8080
https_proxy: http://proxyout.lanl.gov:8080
NO_PROXY: lanl.gov,localhost,127.0.0.1,0.0.0.0,::1
no_proxy: lanl.gov,localhost,127.0.0.1,0.0.0.0,::1

### DEFAULT TEST BEHAVIOR ###
default:
tags:
- darwin-slurm-shared
# Load Python
before_script:
- module load miniconda3

# Always keep logs and plots. Results should be printed to console!
artifacts:
when: always
paths:
- tests/*/*.png
- tests/*/*.txt

# Tests can be executed in parallel,
# but be careful about GPU arch
stages:
- build
- tests
trigger_darwin:
trigger:
include: scripts/ci/darwin.yml

# Default rules
.default-rules:
rules:
- if: $CI_COMMIT_BRANCH == "dev"
when: always
- when: manual
allow_failure: false

# Build, obviously overrides script/artifacts
build:
extends: .default-rules
stage: build
before_script:
- echo "Skipping pyharm install in build."
script:
- export PREFIX_PATH=$PWD/external/hdf5
- ./make.sh clean cuda hdf5 volta
artifacts:
paths:
- kharma.*
- make_args
trigger_nvhpc:
trigger:
include: scripts/ci/nvhpc.yml

# Run all tests in parallel
tests:
extends: .default-rules
stage: tests
script:
- cd tests/$TEST
- ./run.sh
parallel:
matrix:
- TEST: [bondi, bondi_viscous, bz_monopole, emhdmodes, mhdmodes, noh, regrid, reinit, restart, tilt_init, torus_sanity]
trigger_cpu:
trigger:
include: scripts/ci/cpu.yml
strategy: depend

# TODO trigger_cpu w/intel or similar container
# TODO build containers here
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "external/parthenon"]
path = external/parthenon
url = https://github.com/parthenon-hpc-lab/parthenon.git
branch = bprather/backport-bicgstab
url = https://github.com/AFD-Illinois/parthenon.git
branch = kharma
[submodule "external/variant"]
path = external/variant
url = https://github.com/mpark/variant.git
17 changes: 7 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ cmake_minimum_required(VERSION 3.10)
project(kharma LANGUAGES C CXX)

# We follow Parthenon in requiring C++17 going forward
#set(CMAKE_CXX_STANDARD 17)
#set(CMAKE_CXX_STANDARD_REQUIRED ON)
#set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
#set(PARTHENON_ENABLE_CPP17 ON CACHE BOOL "KHARMA Override")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
set(PARTHENON_ENABLE_CPP17 ON CACHE BOOL "KHARMA Override")

# Set the path to include cmake/ dir
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
Expand All @@ -27,8 +26,6 @@ set(PARTHENON_DISABLE_SPARSE ON CACHE BOOL "KHARMA Override")
# Parthenon internal build options
set(BUILD_TESTING OFF CACHE BOOL "KHARMA Override")
set(ENABLE_COMPILER_WARNINGS OFF CACHE BOOL "KHARMA Override")
# TODO upstream Parthenon needs support before we do this
#set(COORDINATE_TYPE GRCoordinates)
# Always use static HDF5
set(HDF5_USE_STATIC_LIBRARIES ON CACHE BOOL "KHARMA Override")

Expand All @@ -39,9 +36,9 @@ set(Kokkos_ENABLE_CUDA_CONSTEXPR ON CACHE BOOL "KHARMA Override")
set(Kokkos_ENABLE_HWLOC OFF CACHE BOOL "KHARMA Override") # Possible speed improvement?
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION ON CACHE BOOL "KHARMA Override")

# If we build KokkosKernels at all, disable the extras
set(KokkosKernels_ENABLE_TPL_CUSPARSE OFF CACHE BOOL "KHARMA Override")
set(KokkosKernels_ENABLE_TPL_CUBLAS OFF CACHE BOOL "KHARMA Override")
include(GetGitRevisionDescription)
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
git_describe_working_tree(GIT_VERSION --tags)

# Offer a KHARMA option to disable the MPI requirement
# The only difference from setting PARTHENON_DISABLE_MPI is that
Expand Down
Loading

0 comments on commit 9b9489b

Please sign in to comment.