Skip to content

Commit

Permalink
Merge pull request #3840 from QMCPACK/rc_3130
Browse files Browse the repository at this point in the history
Merge Rc 3130 to main for release
  • Loading branch information
prckent authored Feb 16, 2022
2 parents 03a06d8 + 574d089 commit 5f4ba01
Show file tree
Hide file tree
Showing 1,232 changed files with 41,329 additions and 49,928 deletions.
215 changes: 202 additions & 13 deletions .github/workflows/ci-github-actions-self-hosted.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,113 @@
name: GitHub Actions self-hosted CI
name: ornl CI

on:
issue_comment:
types: [created]

jobs:
gpu-cuda:
sulfur-cpu:
if: |
github.repository_owner == 'QMCPACK' &&
github.event.issue.pull_request &&
( startsWith(github.event.comment.body, 'Test this please') ||
startsWith(github.event.comment.body, 'Start testing in-house') )
runs-on: [self-hosted, Linux, X64, gpu, cuda]
runs-on: [self-hosted, Linux, X64, ornl-sulfur-1]

env:
GH_JOBNAME: ${{matrix.jobname}}
GH_OS: Linux
strategy:
fail-fast: false
matrix:
jobname: [
GCC8-NoMPI-MKL-Real-Mixed, # mixed precision
GCC8-NoMPI-MKL-Complex-Mixed,
GCC8-NoMPI-MKL-Real, # full precision
GCC8-NoMPI-MKL-Complex,
]

steps:
- name: Verify actor
# Only trigger for certain "actors" (those commenting the PR, not the PR originator)
# this is in-line with the current workflow
env:
ACTOR_TOKEN: ${{secrets.TOKENIZER}}${{github.actor}}${{secrets.TOKENIZER}}
SECRET_ACTORS: ${{secrets.CI_GPU_ACTORS}}
if: contains(env.SECRET_ACTORS, env.ACTOR_TOKEN)
id: check
run: |
echo "::set-output name=triggered::true"
# Request repo info, required since issue_comment doesn't point at PR commit, but develop
- name: GitHub API Request
if: steps.check.outputs.triggered == 'true'
id: request
uses: octokit/[email protected]
with:
route: ${{github.event.issue.pull_request.url}}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

# Create a separate PR status pointing at GitHub Actions tab URL
# just like any other third-party service
- name: Create PR status
if: steps.check.outputs.triggered == 'true'
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{ matrix.jobname }}"
state: "pending"
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}

- name: Get PR information
if: steps.check.outputs.triggered == 'true'
id: pr_data
run: |
echo "::set-output name=branch::${{ fromJson(steps.request.outputs.data).head.ref }}"
echo "::set-output name=repo_name::${{ fromJson(steps.request.outputs.data).head.repo.full_name }}"
echo "::set-output name=repo_clone_url::${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}"
echo "::set-output name=repo_ssh_url::${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}"
- name: Checkout PR branch
if: steps.check.outputs.triggered == 'true'
uses: actions/checkout@v2
with:
token: ${{secrets.GITHUB_TOKEN}}
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
ref: ${{steps.pr_data.outputs.branch}}

- name: Configure
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh configure

- name: Build
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh build

- name: Test
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh test

- name: Report PR status
if: always() && steps.check.outputs.triggered == 'true'
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-sulfur CI ${{matrix.jobname}}"
state: ${{job.status}}
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}

sulfur-cuda:
if: |
github.repository_owner == 'QMCPACK' &&
github.event.issue.pull_request &&
( startsWith(github.event.comment.body, 'Test this please') ||
startsWith(github.event.comment.body, 'Start testing in-house') )
runs-on: [self-hosted, Linux, X64, ornl-sulfur-2]

env:
GH_JOBNAME: ${{matrix.jobname}}
Expand All @@ -25,12 +120,11 @@ jobs:
GCC8-NoMPI-Legacy-CUDA-Complex-Mixed,
GCC8-NoMPI-Legacy-CUDA-Real, # full precision
GCC8-NoMPI-Legacy-CUDA-Complex,
GCC8-MPI-CUDA-AFQMC-Real-Mixed, # auxiliary field, requires MPI
GCC8-MPI-CUDA-AFQMC-Complex-Mixed,
GCC8-MPI-CUDA-AFQMC-Real,
GCC8-MPI-CUDA-AFQMC-Complex,
Clang14Dev-MPI-CUDA-AFQMC-Offload-Real-Mixed, # auxiliary field, offload requires development llvm14
Clang14Dev-MPI-CUDA-AFQMC-Offload-Real,
Intel19-MPI-CUDA-AFQMC-Real-Mixed, # auxiliary field, requires MPI
Intel19-MPI-CUDA-AFQMC-Complex-Mixed,
Intel19-MPI-CUDA-AFQMC-Real,
]

steps:
Expand Down Expand Up @@ -62,7 +156,7 @@ jobs:
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "GitHub Actions self-hosted CI ${{ matrix.jobname }}"
context: "ornl-sulfur CI ${{ matrix.jobname }}"
state: "pending"
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
Expand Down Expand Up @@ -101,19 +195,19 @@ jobs:
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "GitHub Actions self-hosted CI ${{matrix.jobname}}"
context: "ornl-sulfur CI ${{matrix.jobname}}"
state: ${{job.status}}
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}

gpu-rocm:
nitrogen-rocm:
if: |
github.repository_owner == 'QMCPACK' &&
github.event.issue.pull_request &&
( startsWith(github.event.comment.body, 'Test this please') ||
startsWith(github.event.comment.body, 'Start testing in-house') )
runs-on: [self-hosted, Linux, X64, gpu, rocm]
runs-on: [self-hosted, Linux, X64, ornl-nitrogen-1]

env:
GH_JOBNAME: ${{matrix.jobname}}
Expand Down Expand Up @@ -158,7 +252,102 @@ jobs:
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "GitHub Actions self-hosted CI ${{ matrix.jobname }}"
context: "ornl-nitrogen CI ${{matrix.jobname}}"
state: "pending"
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}

- name: Get PR information
if: steps.check.outputs.triggered == 'true'
id: pr_data
run: |
echo "::set-output name=branch::${{ fromJson(steps.request.outputs.data).head.ref }}"
echo "::set-output name=repo_name::${{ fromJson(steps.request.outputs.data).head.repo.full_name }}"
echo "::set-output name=repo_clone_url::${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}"
echo "::set-output name=repo_ssh_url::${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}"
- name: Checkout PR branch
if: steps.check.outputs.triggered == 'true'
uses: actions/checkout@v2
with:
token: ${{secrets.GITHUB_TOKEN}}
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
ref: ${{steps.pr_data.outputs.branch}}

- name: Configure
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh configure

- name: Build
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh build

- name: Test
if: steps.check.outputs.triggered == 'true'
run: tests/test_automation/github-actions/ci/run_step.sh test

- name: Report PR status
if: always() && steps.check.outputs.triggered == 'true'
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-nitrogen CI ${{matrix.jobname}}"
state: ${{job.status}}
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}

nitrogen-cuda:
if: |
github.repository_owner == 'QMCPACK' &&
github.event.issue.pull_request &&
( startsWith(github.event.comment.body, 'Test this please') ||
startsWith(github.event.comment.body, 'Start testing in-house') )
runs-on: [self-hosted, Linux, X64, ornl-nitrogen-2]

env:
GH_JOBNAME: ${{matrix.jobname}}
GH_OS: Linux
strategy:
fail-fast: false
matrix:
jobname: [
GCC8-MPI-CUDA-AFQMC-Real-Mixed, # auxiliary field, requires MPI
GCC8-MPI-CUDA-AFQMC-Complex-Mixed,
GCC8-MPI-CUDA-AFQMC-Real,
GCC8-MPI-CUDA-AFQMC-Complex,
]

steps:
- name: Verify actor
# Only trigger for certain "actors" (those commenting the PR, not the PR originator)
# this is in-line with the current workflow
env:
ACTOR_TOKEN: ${{secrets.TOKENIZER}}${{github.actor}}${{secrets.TOKENIZER}}
SECRET_ACTORS: ${{secrets.CI_GPU_ACTORS}}
if: contains(env.SECRET_ACTORS, env.ACTOR_TOKEN)
id: check
run: |
echo "::set-output name=triggered::true"
# Request repo info, required since issue_comment doesn't point at PR commit, but develop
- name: GitHub API Request
if: steps.check.outputs.triggered == 'true'
id: request
uses: octokit/[email protected]
with:
route: ${{github.event.issue.pull_request.url}}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

# Create a separate PR status pointing at GitHub Actions tab URL
# just like any other third-party service
- name: Create PR status
if: steps.check.outputs.triggered == 'true'
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "ornl-nitrogen CI ${{matrix.jobname}}"
state: "pending"
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
Expand Down Expand Up @@ -197,7 +386,7 @@ jobs:
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: "GitHub Actions self-hosted CI ${{matrix.jobname}}"
context: "ornl-nitrogen CI ${{matrix.jobname}}"
state: ${{job.status}}
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
24 changes: 24 additions & 0 deletions .github/workflows/ci-github-actions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ jobs:
matrix:
jobname:
[
GCC9-NoMPI-Debug-Real,
GCC9-NoMPI-NoOMP-Real,
GCC9-NoMPI-NoOMP-Complex,
GCC9-NoMPI-Sandbox-Real,
GCC9-MPI-Gcov-Real,
GCC9-MPI-Gcov-Complex,
GCC11-NoMPI-Werror-Real,
Expand All @@ -32,6 +36,26 @@ jobs:
Clang12-NoMPI-Offload-Real,
]
include:
- jobname: GCC9-NoMPI-Debug-Real
container:
image: williamfgc/qmcpack-ci:ubuntu20-openmpi
options: -u 1001

- jobname: GCC9-NoMPI-NoOMP-Real
container:
image: williamfgc/qmcpack-ci:ubuntu20-openmpi
options: -u 1001

- jobname: GCC9-NoMPI-NoOMP-Complex
container:
image: williamfgc/qmcpack-ci:ubuntu20-openmpi
options: -u 1001

- jobname: GCC9-NoMPI-Sandbox-Real
container:
image: williamfgc/qmcpack-ci:ubuntu20-openmpi
options: -u 1001

- jobname: GCC9-MPI-Gcov-Real
container:
image: williamfgc/qmcpack-ci:ubuntu20-openmpi
Expand Down
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,41 @@

Notable changes to QMCPACK are documented in this file.

## [3.13.0] - 2022-02-16

### Notes

This release incorporates support for trial wavefunctions from Quantum ESPRESSO 7.0 and adds GPAW support for the first
time. Non-local pseudopotential derivatives are fully supported in the optimizer and recommended in standard calculations.
Numerous minor bug fixes, test and installation improvements have been made. Behind the scenes updates include
maturation of the OpenMP target offload implementation and the batched drivers, a partial implementation of fast force
calculations, and ongoing modernization of the code. This is a recommended release for all users.

* Support for Quantum ESPRESSO (QE) 7.0 [\#3683](https://github.com/QMCPACK/qmcpack/pull/3683)
* Support for GPAW and GPAW to QMCPACK converter [\#3490](https://github.com/QMCPACK/qmcpack/issues/3490)
* use_nonlocalpp_deriv is fully supported and preferred in optimization [\#3785](https://github.com/QMCPACK/qmcpack/pull/3785) and others.
* Save and restore of variational parameters during optimization [\#3640](https://github.com/QMCPACK/qmcpack/pull/3640)
* Twist attribute takes precedence over twistnum. Twist is preferred specification. [\#3799](https://github.com/QMCPACK/qmcpack/pull/3799)
* Fixed inconsistent twist directions between electron gas and spline wavefunctions [\#1386](https://github.com/QMCPACK/qmcpack/issues/1386)
* Fixed reported Madelung constant in CoulombPBCAA [\#3806](https://github.com/QMCPACK/qmcpack/pull/3806)
* More robust computation of reference ion-ion Coulomb energy [\#3763](https://github.com/QMCPACK/qmcpack/pull/3763)
* Expanded test set, including more coverage of plane-wave basis sets and complex molecules [\#3105](https://github.com/QMCPACK/qmcpack/issues/3105), [\#3822](https://github.com/QMCPACK/qmcpack/issues/3822)
* More consistent python invocations [\#3680](https://github.com/QMCPACK/qmcpack/issues/3680)
* Builds with OpenMP disabled (QMC\_OMP=0) again supported [\#3723](https://github.com/QMCPACK/qmcpack/pull/3723)
* Modernization of HDF5 usage e.g. [\#3705](https://github.com/QMCPACK/qmcpack/pull/3705)
* Minimum supported Intel classic compiler version is 19.1. [\#3747](https://github.com/QMCPACK/qmcpack/pull/3747)
* Various minor bug fixes and ongoing code cleanup.

### NEXUS

* Nexus: Add --user $USER to squeue command [\#3796](https://github.com/QMCPACK/qmcpack/pull/3796)
* Nexus: Add Example and tests for qdens-radial tool [\#3676](https://github.com/QMCPACK/qmcpack/pull/3676)
* Nexus: Add Lowdin example [\#3666](https://github.com/QMCPACK/qmcpack/pull/3666)
* Nexus: Fixed Nexus 'install' target [\#3720](https://github.com/QMCPACK/qmcpack/issues/3720)
* Nexus: Harden Nexus excitation checks [\#3729](https://github.com/QMCPACK/qmcpack/pull/3729)
* Nexus: Small fix to excitation checks [\#3701](https://github.com/QMCPACK/qmcpack/pull/3701)
* Nexus: Faster configuration time [\#3706](https://github.com/QMCPACK/qmcpack/pull/3706)

## [3.12.0] - 2021-12-08

### Notes
Expand Down
15 changes: 3 additions & 12 deletions CMake/ClangCompilers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ endif()

# Enable OpenMP
if(QMC_OMP)
set(ENABLE_OPENMP 1)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")

if(ENABLE_OFFLOAD)
if (QMC_CUDA2HIP)
set(OFFLOAD_TARGET_DEFAULT "amdgcn-amd-amdhsa")
Expand Down Expand Up @@ -54,8 +56,6 @@ if(QMC_OMP)
set(OPENMP_OFFLOAD_COMPILE_OPTIONS "${OPENMP_OFFLOAD_COMPILE_OPTIONS} -Wno-unknown-cuda-version")
endif()
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
endif(QMC_OMP)

# Set clang specific flags (which we always want)
Expand Down Expand Up @@ -133,15 +133,6 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64" OR CMAKE_SYSTEM_PROCESSOR MATCHES
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
endif() #(CMAKE_CXX_FLAGS MATCHES "-mcpu=" OR CMAKE_C_FLAGS MATCHES "-mcpu=")

if(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
# Ensure PowerPC builds include optimization flags in release and release-with-debug builds
# Otherwise these are missing (2020-06-22)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -DNDEBUG")
endif()
endif()

# Add static flags if necessary
Expand Down
Loading

0 comments on commit 5f4ba01

Please sign in to comment.