Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test suite clean up #3385

Open
wants to merge 54 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
fcdeace
Draft changes to pyop2.caching
JDBetteridge Aug 12, 2024
056ba30
Change package branch
JDBetteridge Aug 12, 2024
314ff8e
Just notes
JDBetteridge Aug 13, 2024
3f272d6
WIP
JDBetteridge Aug 15, 2024
557a7e8
Linting
JDBetteridge Aug 15, 2024
d573b70
Do TODOs (that I added...)
JDBetteridge Aug 18, 2024
d10f7c0
Add event decorators for compilation functions
JDBetteridge Aug 23, 2024
b018642
Mark and skip slow tests
JDBetteridge Feb 2, 2024
02af4ab
Update build.yml
JDBetteridge Feb 4, 2024
9afc992
Allow querying number of MPI ranks requested
JDBetteridge Feb 5, 2024
731ddd3
Check MPI overheads
JDBetteridge Feb 5, 2024
ba99a37
Uninstall pytest-mpi
JDBetteridge Feb 5, 2024
f275e9f
Mark broken test?
JDBetteridge Feb 8, 2024
3d6f3ab
Fixes
JDBetteridge Feb 9, 2024
38311d9
Fix hanging test
JDBetteridge Feb 9, 2024
cf33c93
Remove coverage and durations for parallel tests
JDBetteridge Feb 9, 2024
62deffd
Netgen again!
JDBetteridge Mar 5, 2024
69967f0
Lint
JDBetteridge Jun 6, 2024
60a5770
Where did all my comm handles go!?
JDBetteridge Jun 7, 2024
c31127c
Remove obsolete markers
JDBetteridge Jun 10, 2024
c64829c
Free more comms
JDBetteridge Jun 10, 2024
fd3e030
Increase gc frequency
JDBetteridge Jun 10, 2024
a477060
Implement per communicator universal identifiers for Firedrake objects
JDBetteridge Jun 14, 2024
1acc58d
Mark some tests as broken
JDBetteridge Jun 14, 2024
54954e8
Make the ensemble a module level fixture
JDBetteridge Aug 5, 2024
3b70c9f
Revert "Uninstall pytest-mpi"
JDBetteridge Aug 5, 2024
85b3bb6
Tests be getting slower!
JDBetteridge Aug 5, 2024
33367cf
Parallelise the parallel tests
JDBetteridge Aug 31, 2024
81e95dc
Urgh
JDBetteridge Aug 31, 2024
f3dd994
Try splitting on a timed execution
JDBetteridge Aug 31, 2024
911b0ad
Workaround for desynchronised constant counts
JDBetteridge Sep 1, 2024
3d1b3ee
Remove run file add comment in hdg
JDBetteridge Sep 1, 2024
571b860
Try with a univers of 8 ranks on parallel[4] tests
JDBetteridge Sep 1, 2024
1b16177
Add slow tests back in
JDBetteridge Sep 1, 2024
40fe506
Only do 3 iterations
JDBetteridge Sep 1, 2024
ea0ebf6
How did this ever work before!? (complex mode)
JDBetteridge Sep 1, 2024
fc7a2aa
Try new FInAT hashes
JDBetteridge Sep 1, 2024
4d35c8d
Fix disk heckpointing test.
Ig-dolci Sep 11, 2024
def2665
linting test
Ig-dolci Sep 11, 2024
33104ca
Update .github/workflows/build.yml
JDBetteridge Sep 11, 2024
7833adc
Change tests for reporting
JDBetteridge Sep 13, 2024
ae6a442
More smothing to improve solutions
JDBetteridge Sep 13, 2024
0f31713
Try to prevent pytest overwriting xml files in parallel
JDBetteridge Sep 13, 2024
f493334
Dog food flavoured makefile
JDBetteridge Oct 3, 2024
8cee812
Remove package branch
JDBetteridge Oct 10, 2024
c3dafc5
Error in loop on failure
JDBetteridge Oct 15, 2024
b9205bb
Give mesh session scope
JDBetteridge Oct 15, 2024
9ec599e
Apply reviewers comments
JDBetteridge Oct 15, 2024
2b8938c
Icosahedral radial mesh appears fixed?
JDBetteridge Oct 15, 2024
d26ea36
Remove duplication from rebase
JDBetteridge Oct 15, 2024
fd3f337
Test to see if Constant magically works again
JDBetteridge Oct 15, 2024
200682f
Fix constant numbering in SLATE
connorjward Oct 18, 2024
6d8c93c
Mark another slow demo
JDBetteridge Oct 21, 2024
130b7b8
Stop using pytest-mpi branch
JDBetteridge Oct 22, 2024
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
99 changes: 94 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,10 @@ jobs:
. ../firedrake_venv/bin/activate
python "$(which firedrake-clean)"
python -m pip install \
pytest-xdist pytest-timeout ipympl
pytest-xdist pytest-timeout ipympl pytest-split
pip install git+https://github.com/JDBetteridge/mpispawn
Copy link
Contributor

Choose a reason for hiding this comment

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

Before we merge this we should probably put this into the firedrakeproject organisation, or pin to a version or something?

python -m pip list
- name: Test Firedrake
- name: Test Firedrake Serial
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
Expand All @@ -102,15 +103,103 @@ jobs:
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
-m "not parallel" \
-n 12 --dist worksteal \
--junit-xml=firedrake.xml \
--junit-xml=firedrake1.xml \
-sv tests
timeout-minutes: 120
timeout-minutes: 60
- name: Test Firedrake 2 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpispawn -nU 12 -nW 2 --propagate-errcodes pytest \
--splitting-algorithm least_duration \
--splits \$MPISPAWN_NUM_TASKS \
--group \$MPISPAWN_TASK_ID1 \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake2_\$MPISPAWN_TASK_ID1.xml \
-m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \
-v tests
Copy link
Contributor

Choose a reason for hiding this comment

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

TODO: "dogfood" (bleh) Makefile and use a matrix to massively cut down on boilerplate

timeout-minutes: 30
- name: Test Firedrake 3 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpispawn -nU 12 -nW 3 --propagate-errcodes pytest \
--splitting-algorithm least_duration \
--splits \$MPISPAWN_NUM_TASKS \
--group \$MPISPAWN_TASK_ID1 \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake3_\$MPISPAWN_TASK_ID1.xml \
-m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \
-v tests
timeout-minutes: 60
- name: Test Firedrake 4 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpispawn -nU 8 -nW 4 --propagate-errcodes pytest \
--splitting-algorithm least_duration \
--splits \$MPISPAWN_NUM_TASKS \
--group \$MPISPAWN_TASK_ID1 \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake4_\$MPISPAWN_TASK_ID1.xml \
-m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \
-v tests
timeout-minutes: 30
- name: Test Firedrake 6 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpiexec -n 6 python -m pytest \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake6.xml \
-m "parallel[6] and not broken" \
-sv tests
timeout-minutes: 30
- name: Test Firedrake 7 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpiexec -n 7 python -m pytest \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake7.xml \
-m "parallel[7] and not broken" \
-sv tests
timeout-minutes: 30
- name: Test Firedrake 8 ranks
run: |
. ../firedrake_venv/bin/activate
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS"
echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS"
mpiexec -n 8 python -m pytest \
--timeout=1800 \
--timeout-method=thread \
-o faulthandler_timeout=1860 \
--junit-xml=firedrake8.xml \
-m "parallel[8] and not broken" \
-sv tests
timeout-minutes: 30
- name: Publish Test Report
uses: mikepenz/[email protected]
if: ${{ always() && ( github.ref != 'refs/heads/master') }}
with:
report_paths: '/__w/firedrake/firedrake/firedrake.xml'
report_paths: '/__w/firedrake/firedrake/firedrake*.xml'
comment: true
check_name: "Firedrake ${{ matrix.scalar-type }}"
updateComment: true
Expand Down
Loading
Loading