-
Notifications
You must be signed in to change notification settings - Fork 240
dsl: Add PETSc functionality #2570
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
base: main
Are you sure you want to change the base?
Conversation
- Temp fix until VecReplaceArray works properly in conjunction with PetscMemoryAllocator
* Compiler: Add basic initguess callback - to be improved
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2570 +/- ##
==========================================
- Coverage 82.95% 75.93% -7.03%
==========================================
Files 248 273 +25
Lines 50152 53495 +3343
Branches 4417 4528 +111
==========================================
- Hits 41606 40623 -983
- Misses 7790 12052 +4262
- Partials 756 820 +64
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
name: ${{ matrix.name }}-${{ matrix.set }} | ||
runs-on: "${{ matrix.os }}" | ||
|
||
env: | ||
DOCKER_BUILDKIT: "1" | ||
DEVITO_ARCH: "${{ matrix.arch }}" | ||
DEVITO_LANGUAGE: ${{ matrix.language }} | ||
|
||
strategy: | ||
# Prevent all build to stop if a single one fails | ||
fail-fast: false | ||
|
||
matrix: | ||
name: [ | ||
pytest-docker-py39-gcc-noomp | ||
] | ||
include: | ||
- name: pytest-docker-py39-gcc-noomp | ||
python-version: '3.9' | ||
os: ubuntu-latest | ||
arch: "gcc" | ||
language: "C" | ||
sympy: "1.12" | ||
|
||
steps: | ||
- name: Checkout devito | ||
uses: actions/checkout@v4 | ||
|
||
- name: Log in to DockerHub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
- name: Build docker image | ||
run: | | ||
docker build -f docker/Dockerfile.devito --build-arg base=zoeleibowitz/petsc_image:latest --tag zoeleibowitz/petsc_devito_image:latest . | ||
|
||
- name: Set run prefix | ||
run: | | ||
echo "RUN_CMD=docker run --rm -t -e CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }} --name testrun zoeleibowitz/petsc_devito_image:latest" >> $GITHUB_ENV | ||
id: set-run | ||
|
||
- name: Set tests | ||
run : | | ||
echo "TESTS=tests/test_petsc.py" >> $GITHUB_ENV | ||
id: set-tests | ||
|
||
- name: Check configuration | ||
run: | | ||
${{ env.RUN_CMD }} python3 -c "from devito import configuration; print(''.join(['%s: %s \n' % (k, v) for (k, v) in configuration.items()]))" | ||
|
||
- name: Test with pytest | ||
run: | | ||
${{ env.RUN_CMD }} mpiexec -n 1 pytest --cov --cov-config=.coveragerc --cov-report=xml ${{ env.TESTS }} | ||
|
||
- name: Test examples | ||
run: | | ||
${{ env.RUN_CMD }} mpiexec -n 1 python3 examples/petsc/seismic/01_staggered_acoustic.py | ||
${{ env.RUN_CMD }} mpiexec -n 1 python3 examples/petsc/cfd/01_navierstokes.py | ||
${{ env.RUN_CMD }} mpiexec -n 1 python3 examples/petsc/Poisson/01_poisson.py | ||
${{ env.RUN_CMD }} mpiexec -n 1 python3 examples/petsc/Poisson/02_laplace.py | ||
${{ env.RUN_CMD }} mpiexec -n 1 python3 examples/petsc/random/01_helmholtz.py | ||
|
||
- name: Upload coverage to Codecov | ||
if: "!contains(matrix.name, 'docker')" | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
name: ${{ matrix.name }} |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 21 days ago
To fix the problem, add an explicit permissions
block to the workflow, setting it to the minimum required. Since the workflow (as presented) only checks out code, tests, and uploads results to Codecov (which does not require repository write access), contents: read
is sufficient. Place the permissions
setting at the workflow root, just after the name:
statement (top-level, before on:
and jobs:
), so it applies to all present and future jobs unless specifically overridden. No other code or permissions changes are needed.
-
Copy modified lines R2-R3
@@ -1,4 +1,6 @@ | ||
name: CI-petsc | ||
permissions: | ||
contents: read | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} |
compiler: Add Devito+PETSc MPI test
Add PETSc logging infrastructure
dsl/compiler: Fix&tidy PETSc mixed solver functionality
…ate logging (#2718) * compiler: Utilise petsctools and start extending solver parameters functionality examples: Add example using argparse in conjunction with PetscInitialize * compiler: Edit argument to PetscInitialize * compiler: Use petsctools to process solver params and start callback to set petsc options * compiler: Progress on petscoptions callbacks * dsl/compiler: Re-factor solver params, add solver_parameters.py file * misc: Add tests * compiler: Start extending the PetscSummary * dsl: Fix hashing for solveexpr * misc: Add tests and clean up * compiler: Add utility function inside petsc routines * misc: Clean up * tests: Add command line tests with random prefixes * compiler: Create dummy op for petscgetargs * misc: Update requirements * misc: Create getargs Op inside function * compiler/dsl: Add get_info functionality to petscsolve * compiler/misc: Drop petscgetargs callback, add functions to logging/get_info, clean up and more tests * workflows: Fix serial wf run
* misc/compiler: Rename/separate files, clean up, add lower_petsc_symbols and change PETScSolve to petscsolve
Work in progress PETSc functionality
TODO: