Skip to content

Commit adc267e

Browse files
authored
Merge branch 'main' into prune-dangling
2 parents 91c0e4a + c95f40b commit adc267e

47 files changed

Lines changed: 8075 additions & 9442 deletions

Some content is hidden

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

.github/azure/startVM.ps1

Lines changed: 0 additions & 49 deletions
This file was deleted.

.github/azure/stopVM.ps1

Lines changed: 0 additions & 46 deletions
This file was deleted.

.github/workflows/docker-devito.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@ jobs:
2323
tag: 'nvidia-nvc'
2424
# Respect CUDA_VISIBLE_DEVICES set by the runner and hard-limit docker to that device.
2525
# (--env without value forwards host var; --gpus maps only that device)
26-
flag: |
27-
--init
28-
--env CUDA_VISIBLE_DEVICES
29-
--gpus "device=${CUDA_VISIBLE_DEVICES:-all}"
26+
flag: --init --env CUDA_VISIBLE_DEVICES --gpus "device=${CUDA_VISIBLE_DEVICES:-all}"
3027
test: 'tests/test_gpu_openacc.py tests/test_gpu_common.py'
3128
runner: ["self-hosted", "nvidiagpu"]
3229

@@ -55,7 +52,7 @@ jobs:
5552

5653
- name: Set per‑runner variables
5754
run: |
58-
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-$RUNNER_NAME" >> $GITHUB_ENV
55+
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
5956
6057
- name: Check event name
6158
run: echo ${{ github.event_name }}

.github/workflows/pytest-gpu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ jobs:
8181

8282
- name: Set per-runner tags
8383
run: |
84-
echo "DOCKER_IMAGE=${{ matrix.name }}-$RUNNER_NAME" >> $GITHUB_ENV
85-
echo "CONTAINER_BASENAME=testrun-${{ matrix.name }}-$RUNNER_NAME" >> $GITHUB_ENV
84+
echo "DOCKER_IMAGE=${{ matrix.name }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
85+
echo "CONTAINER_BASENAME=testrun-${{ matrix.name }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
8686
8787
- name: Build docker image
8888
run: |

CITATION.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,19 @@ If you publish results using Devito, we would be grateful if you would cite the
3636
```
3737

3838
Additionally, if you use Devito for distributed runs, you may want to cite the following paper as well:
39+
3940
```bibtex
4041
@misc{bisbas2024automatedmpixcodegeneration,
41-
title={Automated MPI-X code generation for scalable finite-difference solvers},
42-
author={George Bisbas and Rhodri Nelson and Mathias Louboutin and Fabio Luporini and Paul H. J. Kelly and Gerard Gorman},
43-
year={2024},
44-
eprint={2312.13094},
45-
archivePrefix={arXiv},
46-
primaryClass={cs.DC},
47-
url={https://arxiv.org/abs/2312.13094},
42+
title={Automated MPI-X code generation for scalable finite-difference solvers},
43+
author={Bisbas, George and Nelson, Rhodri and Louboutin, Mathias and Luporini, Fabio and Kelly, Paul H.J. and Gorman, Gerard},
44+
booktitle={2025 IEEE International Parallel and Distributed Processing Symposium (IPDPS)},
45+
title={Automated MPI-X Code Generation for Scalable Finite-Difference Solvers},
46+
year={2025},
47+
volume={},
48+
number={},
49+
pages={689-701},
50+
keywords={Codes;Source coding;Parallel processing;Throughput;Mathematical models;Hybrid power systems;DSL;Kernel;Tuning;Finite difference methods;DSLs;finite-difference method;symbolic computation;stencil computation;MPI;distributed-memory parallelism;compilation;high-performance computing;CPUs;GPUs},
51+
doi={10.1109/IPDPS64566.2025.00067}
4852
}
4953
```
5054

benchmarks/user/README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ pinned to specific CPU cores, to get reliable and deterministic results. There
2525
are several ways to achieve this:
2626

2727
* Through environment variables. All MPI/OpenMP distributions provide a set of
28-
environment variables to control process/thread pinning. Devito also
29-
supplies the `set_omp_pinning.sh` program (under `/scripts`), which helps
30-
with thread pinning (though, currently, only limited to Intel architectures).
28+
environment variables to control process/thread pinning.
3129
* Through a program such as `numactl` or `taskset`.
3230

3331
If running on a NUMA system, where multiple nodes of CPU cores ("sockets") and
@@ -46,7 +44,7 @@ working set). There are multiple scenarios that are worth considering:
4644
logical cores are created. This can be changed by setting the OpenMP-standard
4745
`OMP_NUM_THREADS` environment variable to a different value. When might we
4846
want to do this?
49-
- Unless on a hyperthreads-centerd system, such as an Intel Knights Landing,
47+
- Unless on a hyperthreads-centered system, such as an Intel Knights Landing,
5048
spawning only as many threads as *physical* cores usually results in
5149
slightly better performance due to less contention for hardware resources.
5250
- Since, here, we are merely interested in benchmarking, when running on a

devito/ir/cgen/printer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from devito import configuration
1717
from devito.arch.compiler import AOMPCompiler
1818
from devito.symbolics.inspection import has_integer_args, sympy_dtype
19+
from devito.symbolics.queries import q_leaf
1920
from devito.types.basic import AbstractFunction
2021
from devito.tools import ctypes_to_cstr, dtype_to_ctype, ctypes_vector_mapper
2122

@@ -364,7 +365,7 @@ def _print_InlineIf(self, expr):
364365
def _print_UnaryOp(self, expr, op=None, parenthesize=False):
365366
op = op or expr._op
366367
base = self._print(expr.base)
367-
if not expr.base.is_Symbol or parenthesize:
368+
if not q_leaf(expr.base) or parenthesize:
368369
base = f'({base})'
369370
return f'{op}{base}'
370371

devito/symbolics/queries.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,12 @@ def q_comp_acc(expr):
3737

3838

3939
def q_leaf(expr):
40-
return (expr.is_Atom or
41-
expr.is_Indexed or
42-
isinstance(expr, extra_leaves))
40+
try:
41+
return (expr.is_Atom or
42+
expr.is_Indexed or
43+
isinstance(expr, extra_leaves))
44+
except AttributeError:
45+
return False
4346

4447

4548
def q_indexed(expr):

examples/cfd/01_convection.ipynb

Lines changed: 8 additions & 17 deletions
Large diffs are not rendered by default.

examples/cfd/01_convection_revisited.ipynb

Lines changed: 9 additions & 20 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)