Skip to content

Commit

Permalink
Merge branch 'develop' into nexus-rmg-pptype
Browse files Browse the repository at this point in the history
  • Loading branch information
anbenali authored Oct 18, 2024
2 parents 8556bc7 + e80f956 commit c30ff6e
Show file tree
Hide file tree
Showing 1,343 changed files with 84,911 additions and 46,275 deletions.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ _Delete the items that do not apply_
- Refactoring (no functional changes, no api changes)
- Build related changes
- Testing changes (e.g. new unit/integration/performance tests)
- Documentation changes
- Documentation or build script changes
- Other (please describe):

### Does this introduce a breaking change?
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ci-github-actions-self-hosted.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
# just like any other third-party service
- name: Create PR status
if: steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{ matrix.jobname }}"
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:

- name: Report PR status
if: always() && steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{matrix.jobname}}"
Expand Down Expand Up @@ -151,7 +151,7 @@ jobs:
# just like any other third-party service
- name: Create PR status
if: steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{ matrix.jobname }}"
Expand Down Expand Up @@ -190,7 +190,7 @@ jobs:

- name: Report PR status
if: always() && steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{matrix.jobname}}"
Expand Down Expand Up @@ -247,7 +247,7 @@ jobs:
# just like any other third-party service
- name: Create PR status
if: steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-nitrogen CI ${{matrix.jobname}}"
Expand Down Expand Up @@ -286,7 +286,7 @@ jobs:

- name: Report PR status
if: always() && steps.check.outputs.triggered == 'true'
uses: Sibz/[email protected].6
uses: guibranco/github-status-action-v2@v1.1.7
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-nitrogen CI ${{matrix.jobname}}"
Expand Down
55 changes: 35 additions & 20 deletions .github/workflows/ci-github-actions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,19 @@ jobs:
GCC9-NoMPI-Debug-Real,
GCC9-NoMPI-NoOMP-Real,
GCC9-NoMPI-NoOMP-Complex,
GCC9-NoMPI-Sandbox-Real,
GCC9-MPI-Sandbox-Real,
GCC9-NoMPI-Sandbox-Complex,
GCC9-MPI-Gcov-Real,
GCC9-MPI-Gcov-Complex,
GCC11-NoMPI-Werror-Real,
GCC11-NoMPI-Werror-Complex,
GCC11-NoMPI-Werror-Real-Mixed,
GCC11-NoMPI-Werror-Complex-Mixed,
GCC12-NoMPI-Werror-Real,
GCC12-NoMPI-Werror-Complex,
GCC12-NoMPI-Werror-Real-Mixed,
GCC12-NoMPI-Werror-Complex-Mixed,
Clang14-NoMPI-ASan-Real,
Clang14-NoMPI-ASan-Complex,
Clang14-NoMPI-UBSan-Real,
Clang16-NoMPI-Offload-Real,
Clang16-NoMPI-Offload-Complex,
]
include:
- jobname: GCC9-NoMPI-Debug-Real
Expand All @@ -53,11 +55,16 @@ jobs:
image: ghcr.io/qmcpack/ubuntu22-openmpi:latest
options: -u 1001

- jobname: GCC9-NoMPI-Sandbox-Real
- jobname: GCC9-MPI-Sandbox-Real
container:
image: ghcr.io/qmcpack/ubuntu22-openmpi:latest
options: -u 1001

- jobname: GCC9-NoMPI-Sandbox-Complex
container:
image: ghcr.io/qmcpack/ubuntu22-serial:latest
options: -u 1001

- jobname: GCC9-MPI-Gcov-Real
container:
image: ghcr.io/qmcpack/ubuntu22-openmpi:latest
Expand All @@ -68,24 +75,24 @@ jobs:
image: ghcr.io/qmcpack/ubuntu22-openmpi:latest
options: -u 1001

- jobname: GCC11-NoMPI-Werror-Real
- jobname: GCC12-NoMPI-Werror-Real
container:
image: ghcr.io/qmcpack/ubuntu2110-serial:latest
image: ghcr.io/qmcpack/ubuntu22-serial:latest
options: -u 1001

- jobname: GCC11-NoMPI-Werror-Complex
- jobname: GCC12-NoMPI-Werror-Complex
container:
image: ghcr.io/qmcpack/ubuntu2110-serial:latest
image: ghcr.io/qmcpack/ubuntu22-serial:latest
options: -u 1001

- jobname: GCC11-NoMPI-Werror-Real-Mixed
- jobname: GCC12-NoMPI-Werror-Real-Mixed
container:
image: ghcr.io/qmcpack/ubuntu2110-serial:latest
image: ghcr.io/qmcpack/ubuntu22-serial:latest
options: -u 1001

- jobname: GCC11-NoMPI-Werror-Complex-Mixed
- jobname: GCC12-NoMPI-Werror-Complex-Mixed
container:
image: ghcr.io/qmcpack/ubuntu2110-serial:latest
image: ghcr.io/qmcpack/ubuntu22-serial:latest
options: -u 1001

- jobname: Clang14-NoMPI-ASan-Real
Expand All @@ -108,6 +115,11 @@ jobs:
image: ghcr.io/qmcpack/ubuntu22-clang:latest
options: -u 1001

- jobname: Clang16-NoMPI-Offload-Complex
container:
image: ghcr.io/qmcpack/ubuntu22-clang:latest
options: -u 1001

steps:
- name: Checkout Action
uses: actions/checkout@v4
Expand All @@ -127,23 +139,25 @@ jobs:

- name: Upload Coverage
if: contains(matrix.jobname, 'Gcov') && github.repository_owner == 'QMCPACK'
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
with:
files: ../qmcpack-build/coverage.xml
flags: tests-deterministic # optional
name: codecov-QMCPACK # optional
fail_ci_if_error: true # optional (default = false)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

macos:
runs-on: macos-11
runs-on: macos-14
env:
GH_JOBNAME: ${{ matrix.jobname }}
GH_OS: macOS

strategy:
fail-fast: false
matrix:
jobname: [macOS-GCC11-NoMPI-Real]
jobname: [macOS-GCC14-NoMPI-Real]

steps:
- name: Checkout Action
Expand All @@ -152,12 +166,13 @@ jobs:
- name: Set Python Version
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.12"

- name: Setup Dependencies
run: |
brew install ninja hdf5 fftw boost
pip3 install numpy h5py pandas
brew upgrade || brew link --overwrite [email protected]
brew install gcc@14 ninja hdf5 fftw boost
python3 -m pip install numpy==1.26.4 h5py pandas
- name: Configure
run: tests/test_automation/github-actions/ci/run_step.sh configure
Expand Down
6 changes: 5 additions & 1 deletion CMake/ClangCompilers.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Check compiler version
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
message(STATUS "Compiler Version ${CMAKE_CXX_COMPILER_VERSION}")
message(FATAL_ERROR "Requires clang 7.0 or higher ")
message(FATAL_ERROR "Requires Clang 7.0 or higher.")
endif()

if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 11.0.0
Expand All @@ -16,6 +16,10 @@ if(QMC_OMP)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")

if(ENABLE_OFFLOAD)
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
message(FATAL_ERROR "Requires Clang 16.0 or higher for OpenMP offload")
endif()

if(DEFINED OFFLOAD_TARGET)
set(OPENMP_OFFLOAD_COMPILE_OPTIONS "-fopenmp-targets=${OFFLOAD_TARGET}")
if(DEFINED OFFLOAD_ARCH)
Expand Down
11 changes: 11 additions & 0 deletions CMake/DetermineDeviceArchitectures.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ function(verifyNVIDIAGPUconsistency)
endfunction()

# auto detect QMC_GPU_ARCHS if not set by user and GPU features are enabled.
# CMAKE_CUDA/HIP_ARCHITECTURES are used as hints
if(NOT QMC_GPU_ARCHS AND ENABLE_CUDA)
if(QMC_CUDA2HIP)
detectAMDGPU()
Expand Down Expand Up @@ -93,3 +94,13 @@ endif()
set(QMC_GPU_ARCHS
${QMC_GPU_ARCHS}
CACHE STRING "Accelerator device architectures" FORCE)

# QMC_GPU_ARCHS is the single source of truth and thus overwrite CMAKE_CUDA/HIP_ARCHITECTURES
if(ENABLE_CUDA)
if(QMC_CUDA2HIP)
set(CMAKE_HIP_ARCHITECTURES ${QMC_GPU_ARCHS} CACHE STRING "HIP architectures" FORCE)
else()
string(REPLACE "sm_" "" CUDA_ARCH_NUMBERS "${QMC_GPU_ARCHS}")
set(CMAKE_CUDA_ARCHITECTURES ${CUDA_ARCH_NUMBERS} CACHE STRING "CUDA architectures" FORCE)
endif()
endif()
2 changes: 1 addition & 1 deletion CMake/FindMKL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ endif(HAVE_MKL)
if(HAVE_MKL AND ENABLE_SYCL)
find_library(MKL_SYCL mkl_sycl
HINTS ${MKL_ROOT} $ENV{MKLROOT} $ENV{MKL_ROOT} $ENV{MKL_HOME}
PATH_SUFFIXES lib/intel64
PATH_SUFFIXES lib/intel64 lib
REQUIRED
)

Expand Down
18 changes: 14 additions & 4 deletions CMake/IntelCompilers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,20 @@ endif()
if(QMC_OMP)
if(CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
if(ENABLE_OFFLOAD)
set(OFFLOAD_TARGET
"spir64"
CACHE STRING "Offload target architecture")
set(OPENMP_OFFLOAD_COMPILE_OPTIONS "-fopenmp-targets=${OFFLOAD_TARGET}")
if(DEFINED OFFLOAD_ARCH OR QMC_GPU_ARCHS)
# for ahead-of-time compilation and linking
set(OPENMP_OFFLOAD_COMPILE_OPTIONS "-fopenmp-targets=spir64_gen")
if(DEFINED OFFLOAD_ARCH)
set(OpenMP_OFFLOAD_LINKER_FLAGS "-Xs \"-device ${OFFLOAD_ARCH}\"")
else()
set(OpenMP_OFFLOAD_LINKER_FLAGS "-Xs \"-device ${QMC_GPU_ARCHS}\"")
endif()
else()
set(OFFLOAD_TARGET
"spir64"
CACHE STRING "Offload target architecture")
set(OPENMP_OFFLOAD_COMPILE_OPTIONS "-fopenmp-targets=${OFFLOAD_TARGET}")
endif()
endif(ENABLE_OFFLOAD)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fiopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fiopenmp")
Expand Down
2 changes: 1 addition & 1 deletion CMake/IntelDPCPPConfig-modified.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ if(WIN32)
list(APPEND SYCL_FLAGS "/EHsc")
endif()

set(SYCL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SYCL_FLAGS}")
set(SYCL_CXX_FLAGS "${SYCL_FLAGS}")

# And now test the assumptions.

Expand Down
18 changes: 18 additions & 0 deletions CMake/TestCXXMainCompiles.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Check that the configured compiler works on a C++ main function
# Note: whitespaces not allowed in STAGE_NAME
function(TestCXXMainCompiles STAGE_NAME)
if(STAGE_NAME MATCHES " ")
message(FATAL_ERROR "TestCXXMainCompiles whitespaces not allowed in the stage name. The given value is '${STAGE_NAME}'.")
endif()
set(TEST_CXX_COMPILE_MAIN_DIR ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp)
file(WRITE ${TEST_CXX_COMPILE_MAIN_DIR}/try_cxx_main.cpp "int main(){}")
set(TEST_RESULT_VAR_NAME TEST_RESULT_${STAGE_NAME})
try_compile(
${TEST_RESULT_VAR_NAME}
${TEST_CXX_COMPILE_MAIN_DIR}
SOURCES ${TEST_CXX_COMPILE_MAIN_DIR}/try_cxx_main.cpp
OUTPUT_VARIABLE COMPILE_OUTPUT)
if(NOT ${TEST_RESULT_VAR_NAME})
message(FATAL_ERROR "Failed in compiling a main() function in stage ${STAGE_NAME}. Output:\n${COMPILE_OUTPUT}")
endif()
endfunction()
2 changes: 1 addition & 1 deletion CMake/TestCxx17Library.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if(NOT CXX17_LIBRARY_OKAY)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
message(
"Compiler detected is <Clang> namely clang++ or a vendor variant (icpx, amdclang++, armclang++).\n If not using libcxx, ensure a GCC toolchain version equal or greater "
"than 9.0 gets picked up. Check with '<Clang> -v'. Or use the --gcc-toolchain compiler option "
"than 9.0 gets picked up. Check with '<Clang> -v'. Or use the --gcc-install-dir (--gcc-toolchain deprecated) compiler option "
"(added to both CMAKE_C_FLAGS and CMAKE_CXX_FLAGS) to point to a newer GCC installation."
)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
Expand Down
2 changes: 1 addition & 1 deletion CMake/ctest_script.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ ctest_build()
# Submit the results to oblivion
set(CTEST_DROP_METHOD "https")
set(CTEST_DROP_SITE "cdash.qmcpack.org")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=QMCPACK")
set(CTEST_DROP_LOCATION "/submit.php?project=QMCPACK")
set(CTEST_DROP_SITE_CDASH TRUE)
set(DROP_SITE_CDASH TRUE)
ctest_submit(PARTS Configure Build)
Expand Down
14 changes: 0 additions & 14 deletions CMake/inspectCompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,6 @@
# Note: vendor compilers can be just rebranded customized Clang compiler.
# It requires more recent CMake to handle it properly. We need to handle such cases for older CMake.

execute_process(
COMMAND ${CMAKE_CXX_COMPILER} --version
RESULT_VARIABLE VERSION_QUERY_RETURN
OUTPUT_VARIABLE VERSION_QUERY_OUTPUT)

if(VERSION_QUERY_RETURN EQUAL 0)
if(CMAKE_VERSION VERSION_LESS 3.20
AND VERSION_QUERY_OUTPUT MATCHES "Intel"
AND VERSION_QUERY_OUTPUT MATCHES "oneAPI")
# require 3.20 to recognize IntelLLVM compiler ID and check accurate version numbers.
message(FATAL_ERROR "Using Intel OneAPI compilers requires CMake 3.20.0 or later.")
endif()
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(COMPILER GNU)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "XL")
Expand Down
4 changes: 2 additions & 2 deletions CMake/macros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ function(
set_tests_properties(
${TESTNAME}
PROPERTIES FAIL_REGULAR_EXPRESSION
"ERROR"
"QMCPACK ERROR"
PASS_REGULAR_EXPRESSION
"QMCPACK execution completed successfully"
PROCESSORS
Expand All @@ -166,7 +166,7 @@ function(
set_tests_properties(
${TESTNAME}
PROPERTIES FAIL_REGULAR_EXPRESSION
"ERROR"
"QMCPACK ERROR"
PASS_REGULAR_EXPRESSION
"QMCPACK execution completed successfully"
PROCESSORS
Expand Down
Loading

0 comments on commit c30ff6e

Please sign in to comment.