Skip to content

Commit 2d1a6fb

Browse files
v4.1 (#622)
2 parents 53f8f3a + e9fa519 commit 2d1a6fb

File tree

124 files changed

+4033
-1623
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+4033
-1623
lines changed

.github/workflows/audit.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ on:
1414
push:
1515
branches:
1616
- main
17+
- devel
1718
pull_request:
1819
branches:
1920
- main
21+
- devel
2022

2123

2224
jobs:
@@ -186,3 +188,8 @@ jobs:
186188
coverage-files: ./${{ env.tracefile }}
187189
minimum-coverage: ${{ env.min_coverage }}
188190
github-token: ${{ secrets.GITHUB_TOKEN }}
191+
192+
# temporarily DISABLING above reporting of LCOV results in
193+
# PR since they're not yet representative and will only
194+
# confuse incoming unitaryHACK contributors
195+
if: false

.github/workflows/compile.yml

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,21 @@
22
# code with (attemptedly) all possible configurations
33
# of operating system, precision, multithreading,
44
# distribution, GPU-acceleration (via CUDA or HIP),
5-
# and cuQuantum (else custom kernels). Currently,
6-
# this wastefully downlaods and installs all needed
7-
# compilers (like libomp, CUDA, ROCm). Compilation
5+
# and cuQuantum (else custom kernels). Compilation
86
# includes the v4 unit and integration tests, the
97
# deprecated v3 tests (when possible), and all the
10-
# example programs. No compiled execs are run however.
11-
# Note that ARM compilation is not yet tested here,
12-
# but in fact Linux ARM is used by a paid test runner.
8+
# example programs. All 'isolated' example executables
9+
# are then run (both C and C++ versions) to ensure the
10+
# build was successful and does not cause link-time
11+
# errors. Then, all 'automated' examples are run which
12+
# permits contributors to demo or test their changes
13+
# across all operation systems and compilers.
14+
#
15+
# Note:
16+
# - This workflow currently wastefully re-downloads and
17+
# installs all needed compilers (like libomp, CUDA, ROCm)
18+
# - ARM compilation is not tested here, though it is used
19+
# by the paid multithreaded CI tests.
1320
#
1421
# @author Tyson Jones
1522

@@ -20,9 +27,11 @@ on:
2027
push:
2128
branches:
2229
- main
30+
- devel
2331
pull_request:
2432
branches:
2533
- main
34+
- devel
2635

2736

2837
jobs:
@@ -51,7 +60,7 @@ jobs:
5160

5261
# compile QuEST with all combinations of below flags
5362
matrix:
54-
os: [ubuntu-latest, macos-latest, windows-latest]
63+
os: [windows-latest, ubuntu-latest, macos-latest]
5564
precision: [1, 2, 4]
5665
omp: [ON, OFF]
5766
mpi: [ON, OFF]
@@ -138,10 +147,12 @@ jobs:
138147

139148
# constants
140149
env:
141-
build_dir: "build"
142150
cuda_arch: 70
143151
hip_arch: gfx801
144152
rocm_path: /opt/rocm/bin
153+
build_dir: build
154+
isolated_dir: build/examples/isolated
155+
automated_dir: build/examples/automated
145156

146157
# perform the job
147158
steps:
@@ -230,3 +241,44 @@ jobs:
230241
# force 'Release' build (needed by MSVC to enable optimisations)
231242
- name: Compile
232243
run: cmake --build ${{ env.build_dir }} --config Release --parallel
244+
245+
# run all compiled isolated examples to test for link-time errors,
246+
# continuing if any fail (since some deliberately fail)
247+
- name: Run isolated examples (Windows)
248+
if: ${{ matrix.os == 'windows-latest' }}
249+
working-directory: ${{ env.isolated_dir }}/Release/
250+
shell: pwsh
251+
run: |
252+
Get-ChildItem -Filter '*.exe' -File |
253+
ForEach-Object {
254+
Write-Host "`r`n[[[ $($_.Name) ]]]`r`n"
255+
& $_.FullName
256+
}
257+
- name: Run isolated examples (Unix)
258+
if: ${{ matrix.os != 'windows-latest' }}
259+
working-directory: ${{ env.isolated_dir }}
260+
run: |
261+
for fn in *_c *_cpp; do
262+
printf "\n[[[ $fn ]]]\n"
263+
./$fn || true
264+
done
265+
266+
# run all compiled 'automated' examples
267+
- name: Run automated examples (Windows)
268+
if: ${{ matrix.os == 'windows-latest' }}
269+
working-directory: ${{ env.automated_dir }}/Release/
270+
shell: pwsh
271+
run: |
272+
Get-ChildItem -Filter '*.exe' -File |
273+
ForEach-Object {
274+
Write-Host "`r`n[[[ $($_.Name) ]]]`r`n"
275+
& $_.FullName
276+
}
277+
- name: Run automated examples (Unix)
278+
if: ${{ matrix.os != 'windows-latest' }}
279+
working-directory: ${{ env.automated_dir }}
280+
run: |
281+
for fn in *_c *_cpp; do
282+
printf "\n[[[ $fn ]]]\n"
283+
./$fn || true
284+
done

.github/workflows/doc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ permissions:
1515
on:
1616
push:
1717
branches:
18-
- master
18+
- main
1919
workflow_dispatch:
2020

2121

.github/workflows/test_free.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ on:
1414
push:
1515
branches:
1616
- main
17+
- devel
1718
pull_request:
1819
branches:
1920
- main
21+
- devel
2022

2123

2224
jobs:

.github/workflows/test_paid.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ name: test (paid, accelerated)
1919

2020
# @todo
2121
# this workflow can only be run on the 'default'
22-
# branch (i.e. master) when manually triggered by
22+
# branch (i.e. main) when manually triggered by
2323
# github actions, so as not to incur unexpected
2424
# costs. I want for this to be automatically
2525
# enqueued but not run in a PR, requiring manual

AUTHORS.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ Dr Ian Bush [consultant]
4444
HPC
4545

4646
External contributors:
47+
James Richings
48+
patched overflow in bitwise.hpp logic
49+
Luc Jaulmes
50+
patched v4's install process using CMake
4751
Jakub Adamski
4852
optimised distributed communication by sending max-size messages asynchronously
4953
Bruno Villasenor Alvarez on behalf of AMD

0 commit comments

Comments
 (0)