-
Notifications
You must be signed in to change notification settings - Fork 160
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
JDBetteridge
wants to merge
54
commits into
master
Choose a base branch
from
JDBetteridge/faster_tests
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Test suite clean up #3385
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 056ba30
Change package branch
JDBetteridge 314ff8e
Just notes
JDBetteridge 3f272d6
WIP
JDBetteridge 557a7e8
Linting
JDBetteridge d573b70
Do TODOs (that I added...)
JDBetteridge d10f7c0
Add event decorators for compilation functions
JDBetteridge b018642
Mark and skip slow tests
JDBetteridge 02af4ab
Update build.yml
JDBetteridge 9afc992
Allow querying number of MPI ranks requested
JDBetteridge 731ddd3
Check MPI overheads
JDBetteridge ba99a37
Uninstall pytest-mpi
JDBetteridge f275e9f
Mark broken test?
JDBetteridge 3d6f3ab
Fixes
JDBetteridge 38311d9
Fix hanging test
JDBetteridge cf33c93
Remove coverage and durations for parallel tests
JDBetteridge 62deffd
Netgen again!
JDBetteridge 69967f0
Lint
JDBetteridge 60a5770
Where did all my comm handles go!?
JDBetteridge c31127c
Remove obsolete markers
JDBetteridge c64829c
Free more comms
JDBetteridge fd3e030
Increase gc frequency
JDBetteridge a477060
Implement per communicator universal identifiers for Firedrake objects
JDBetteridge 1acc58d
Mark some tests as broken
JDBetteridge 54954e8
Make the ensemble a module level fixture
JDBetteridge 3b70c9f
Revert "Uninstall pytest-mpi"
JDBetteridge 85b3bb6
Tests be getting slower!
JDBetteridge 33367cf
Parallelise the parallel tests
JDBetteridge 81e95dc
Urgh
JDBetteridge f3dd994
Try splitting on a timed execution
JDBetteridge 911b0ad
Workaround for desynchronised constant counts
JDBetteridge 3d1b3ee
Remove run file add comment in hdg
JDBetteridge 571b860
Try with a univers of 8 ranks on parallel[4] tests
JDBetteridge 1b16177
Add slow tests back in
JDBetteridge 40fe506
Only do 3 iterations
JDBetteridge ea0ebf6
How did this ever work before!? (complex mode)
JDBetteridge fc7a2aa
Try new FInAT hashes
JDBetteridge 4d35c8d
Fix disk heckpointing test.
Ig-dolci def2665
linting test
Ig-dolci 33104ca
Update .github/workflows/build.yml
JDBetteridge 7833adc
Change tests for reporting
JDBetteridge ae6a442
More smothing to improve solutions
JDBetteridge 0f31713
Try to prevent pytest overwriting xml files in parallel
JDBetteridge f493334
Dog food flavoured makefile
JDBetteridge 8cee812
Remove package branch
JDBetteridge c3dafc5
Error in loop on failure
JDBetteridge b9205bb
Give mesh session scope
JDBetteridge 9ec599e
Apply reviewers comments
JDBetteridge 2b8938c
Icosahedral radial mesh appears fixed?
JDBetteridge d26ea36
Remove duplication from rebase
JDBetteridge fd3f337
Test to see if Constant magically works again
JDBetteridge 200682f
Fix constant numbering in SLATE
connorjward 6d8c93c
Mark another slow demo
JDBetteridge 130b7b8
Stop using pytest-mpi branch
JDBetteridge File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
python -m pip list | ||
- name: Test Firedrake | ||
- name: Test Firedrake Serial | ||
run: | | ||
. ../firedrake_venv/bin/activate | ||
echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" | ||
|
@@ -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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. TODO: "dogfood" (bleh) |
||
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 | ||
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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?