Releases: devitocodes/devito
Releases · devitocodes/devito
v4.8.20
Changes
- CI: Cannot set
--env CUDA_VISIBLE_DEVICESfordocker runwhen using ng--gpus "device=${CUDA_VISIBLE_DEVICES:-all}"- dropping --env arg. @ggorman (#2710) - misc: switch to f-string throughout @mloubout (#2706)
- misc: Remove make-pbs.py @FabioLuporini (#2700)
- compiler: Hotfix the memory estimate for certain devices @EdCaunt (#2699)
- misc: Expand derivative touchup @JDBetteridge (#2695)
- misc: Remove decrepit folders @EdCaunt (#2663)
- misc: Switch mpi-x pub to ieee link @georgebisbas (#2688)
API
- dsl: Add an additional Border convenience class for boundary conditions @EdCaunt (#2646)
- compiler: Add a utility to estimate memory usage for an operator @EdCaunt (#2659)
- dsl: Expand derivative @JDBetteridge (#2559)
- misc: Add custom warnings functionality @JDBetteridge (#2692)
- api: fix custom coeffs with cross derivatives @mloubout (#2672)
Examples
- examples: Fix density handling in acoustic @mloubout (#2716)
- Clean notebook metadata @JDBetteridge (#2639)
Documentation
- docs: fix mmin/mmax docstring @mloubout (#2703)
- Clean notebook metadata @JDBetteridge (#2639)
Compiler
- compiler: prevent directions from non indexed @mloubout (#2704)
- compiler: Avoid generating parentheses when not needed @FabioLuporini (#2689)
- compiler: Pass the whole descriptor to buf_reuse cbk @FabioLuporini (#2687)
- compiler: Reapply "Cache
Scope+Dependenceinstances" @enwask (#2677) - compiler: Cache
Scope+Dependenceinstances @enwask (#2669) - compiler: fix conditional reductions @mloubout (#2671)
- compiler: fix temp/array alloc @mloubout (#2664)
- mpi: fix allreduce iteration space @mloubout (#2662)
- compiler: Lazy IET visitors + Search @enwask (#2621)
- compiler: add top description to generated file @mloubout (#2652)
MPI
- mpi: Prevent errors with single rank @mloubout (#2698)
- compiler: Fixup MPI over Arrays + arguments overriding @FabioLuporini (#2697)
- data: prevent mpi comm with single rank @mloubout (#2685)
- mpi: fix multi conditional for allreduce @mloubout (#2673)
- mpi: fix in-loop allreduce with multiple reductions @mloubout (#2668)
- mpi: fix allreduce iteration space @mloubout (#2662)
Architectures and JIT
🐛 Bug Fixes
- compiler: Hotfix estimate memory again @EdCaunt (#2707)
- compiler: prevent directions from non indexed @mloubout (#2704)
- compiler: Fixup MPI over Arrays + arguments overriding @FabioLuporini (#2697)
- compiler: Fixup nbytes-avail-mapper @FabioLuporini (#2654)
- compiler: Call set_device in pthreads @FabioLuporini (#2679)
- compiler: Add buf-reuse opt-option and rcompile caching @FabioLuporini (#2674)
- compiler: Fix HaloTouch hashing @FabioLuporini (#2676)
- Revert "compiler: Cache
Scope+Dependenceinstances" @mloubout (#2675) - mpi: fix multi conditional for allreduce @mloubout (#2673)
- compiler: Fix Bundle.symbolic_shape @FabioLuporini (#2665)
- compiler: Patch IterationSpace.intersection @FabioLuporini (#2647)
- compiler: Patch merge and reduction HaloScheme passes @FabioLuporini (#2645)
Continuous Integration
- compiler: improve rcompile @mloubout (#2719)
- Remove dangling layers. @ggorman (#2686)
- ci: Set CONTAINER_NAME within a step. @ggorman (#2684)
- ci: isolate GPU runners, respect CUDA_VISIBLE_DEVICES, drop global prunes @ggorman (#2680)
Installation
- pip prod(deps): update matplotlib requirement from <3.10.6 to <3.10.7 @dependabot[bot] (#2722)
- pip prod(deps): update cupy-cuda12x requirement from <13.5.2 to <13.6.1 @dependabot[bot] (#2720)
- gh(deps): bump actions/checkout from 4 to 5 @dependabot[bot] (#2709)
- pip prod(deps): update dask-cuda requirement from <25.6.1 to <25.8.1 @dependabot[bot] (#2705)
- install: Remove files and directories not needed for install @JDBetteridge (#2702)
- pip prod(deps): update matplotlib requirement from <3.10.4 to <3.10.6 @dependabot[bot] (#2694)
- pip prod(deps): bump pyrevolve from 2.2.5 to 2.2.6 @dependabot[bot] (#2678)
- pip prod(deps): update distributed requirement from <2025.5.2 to <2025.7.1 @dependabot[bot] (#2666)
- pip prod(deps): update fsspec requirement from <2025.5.2 to <2025.7.1 @dependabot[bot] (#2670)
- pip prod(deps): update cupy-cuda12x requirement from <13.4.2 to <13.5.2 @dependabot[bot] (#2661)
- pip prod(deps): update mpi4py requirement from <4.0.4 to <4.1.1 @dependabot[bot] (#2649)
- deps: Bump upper NumPy version to 2.3.1 @EdCaunt (#2653)
- pip prod(deps): update cgen requirement from <2021,>=2020.1 to >=2020.1,<2026 @dependabot[bot] (#2642)
- pip prod(deps): update pillow requirement from <11.2.2,>11 to >11,<11.3.1 @dependabot[bot] (#2651)
- pip prod(deps): bump pyrevolve from 2.2.4 to 2.2.5 @dependabot[bot] (#2650)
- pip prod(deps): update distributed requirement from <2025.4.2 to <2025.5.2 @dependabot[bot] (#2641)
- pip prod(deps): update scipy requirement from <1.15.3 to <1.15.4 @dependabot[bot] (#2648)
- pip prod(deps): update dask-cuda requirement from <25.4.1 to <25.6.1 @dependabot[bot] (#2644)
- pip prod(deps): update matplotlib requirement from <3.10.2 to <3.10.4 @dependabot[bot] (#2640)
Full Changelog: v4.8.19...v4.8.20
v4.8.19
Drop support for Python 3.9
Changes
Compiler
- compiler: Privilege default par-tile with rcompile @FabioLuporini (#2636)
- compiler: Make cse toposort stable @mloubout (#2633)
🐛 Bug Fixes
- compiler: fix deque pop order @mloubout (#2637)
- compiler: Make cse toposort stable @mloubout (#2633)
Installation
Full Changelog: v4.8.18...v4.8.19
v4.8.18
Changes
Compiler
- compiler: Address various compiler hotspots with operators containing large expression counts @EdCaunt (#2624)
Architectures and JIT
🐛 Bug Fixes
- compiler: Revamp MPI hoisting and merging @FabioLuporini (#2629)
Continuous Integration
Installation
- pip prod(deps): update pytest-cov requirement from <6.1.2 to <6.2.2 @dependabot[bot] (#2632)
- pip prod(deps): update fsspec requirement from <2025.3.3 to <2025.5.2 @dependabot[bot] (#2630)
- deps: Fix pyproject.toml @mloubout (#2628)
- ci: Fix pytest regression @enwask (#2623)
Full Changelog: v4.8.17...v4.8.18
v4.8.17
Drop support for numpy <2, sympy <1.12
Changes
- misc: Purge abc.abstractproperty as it is deprecated @EdCaunt (#2603)
- compiler: Blocked SubDimensions now use root dimension name @EdCaunt (#2600)
API
- api: fix kwargs processing for tensor functions @mloubout (#2604)
- api: Add DEVITO_DEVICE_DEFAULT env var @FabioLuporini (#2597)
- api: revamp subsampling factors to avoid duplicates @mloubout (#2575)
Compiler
- compiler: Add VectorAccess as an internal type @FabioLuporini (#2598)
MPI
- mpi: Fix halo exchanges from BundleViews @FabioLuporini (#2602)
Architectures and JIT
- arch: Improve GPU autodetection @FabioLuporini (#2614)
🐛 Bug Fixes
- arch: Use the node's max memory transaction size @FabioLuporini (#2619)
- mpi: Fix halo exchanges from BundleViews @FabioLuporini (#2602)
- compiler: Fixup factor overriding @FabioLuporini (#2601)
- api: revamp subsampling factors to avoid duplicates @mloubout (#2575)
Installation
- gh(deps): bump docker/setup-qemu-action from 2 to 3 @dependabot[bot] (#2618)
- gh(deps): bump docker/login-action from 2 to 3 @dependabot[bot] (#2617)
- gh(deps): bump release-drafter/release-drafter from 5 to 6 @dependabot[bot] (#2616)
- gh(deps): bump peaceiris/actions-gh-pages from 3 to 4 @dependabot[bot] (#2615)
- install: switch to dynamic version to avoid _version file issue @mloubout (#2613)
- misc: remove unnecessary files with pyproject @mloubout (#2612)
- gh(deps): bump peter-evans/repository-dispatch from 2 to 3 @dependabot[bot] (#2609)
- gh(deps): bump docker/setup-buildx-action from 2 to 3 @dependabot[bot] (#2608)
- gh(deps): bump docker/build-push-action from 3 to 6 @dependabot[bot] (#2607)
- gh(deps): bump docker/metadata-action from 4 to 5 @dependabot[bot] (#2610)
- gh(deps): bump codecov/codecov-action from 4 to 5 @dependabot[bot] (#2606)
- deps: Update minimal for sympy and numpy @mloubout (#2605)
- deps: Add upper bound to all deps to avoid surprises @mloubout (#2596)
Full Changelog: v4.8.16...v4.8.17
v4.8.16
Changes
API
Documentation
- misc: Update FAQ.md @FabioLuporini (#2590)
🐛 Bug Fixes
Installation
- deps: upper bound on codepy due to breaking latest @mloubout (#2594)
- api: Add retrocompat to is_imaginary for older sympy @mloubout (#2591)
Full Changelog: v4.8.15...v4.8.16
v4.8.15
Changes
API
- api: Fix staggering setup and tensor rebuilding @mloubout (#2583)
- dsl: Remove useless memory check (already done at alloc time) @FabioLuporini (#2563)
- dsl: ensure SparseFunction coordinates and point symbols are always real @EdCaunt (#2557)
Examples
- examples: Fix norm for space order 4 @ZoeLeibowitz (#2565)
Compiler
- compiler: Improve quality of generated code with Bundles and MPI @FabioLuporini (#2587)
- compiler: Fix issue 2577 - edit printer for unevaluation Mul @ZoeLeibowitz (#2578)
- compiler: Enrich Ops data structure @FabioLuporini (#2576)
- compiler: Allow str cast type @mloubout (#2566)
- compiler: Fix reduction multi_partile @mloubout (#2560)
- compiler: Tweak init_core/halo properties @FabioLuporini (#2558)
MPI
- mpi: Fix correctness of halo exchanges for Bundles @FabioLuporini (#2582)
🐛 Bug Fixes
- compiler: Avoid nvc++ array reductions and add MPI fallback @mloubout (#2589)
- compiler: Fix uxreplace behaviour with numeric expressions @FabioLuporini (#2571)
- compiler: Fix reconstruction/pickling of low level objects @FabioLuporini (#2567)
- compiler: revert broken reduce par_tile @mloubout (#2562)
Testing
- tests: Remove floating point equality assertions @JDBetteridge (#2539)
Continuous Integration
- Update 20.04 runners to 22.04 @JDBetteridge (#2584)
- CI: Ensure docker errors at test failure with codecov @ZoeLeibowitz (#2572)
Installation
- pip prod(deps): update anytree requirement from <=2.12.1,>=2.4.3 to >=2.4.3,<=2.13.0 @dependabot (#2580)
- deps: Add pillow version requirement @mloubout (#2568)
Full Changelog: v4.8.14...v4.8.15
v4.8.14
Changes
API
Documentation
- misc: Update advisor with oneAPI 2025 @georgebisbas (#2533)
Compiler
- api: Introduce complex numbers support (np.complex64/128) @mloubout (#2375)
- compiler: Enhance IR for GPU codegen @FabioLuporini (#2555)
🐛 Bug Fixes
- compiler: Fix update_properties @FabioLuporini (#2548)
Testing
Installation
- install: Add packaging to requirements @JDBetteridge (#2556)
Full Changelog: v4.8.13...v4.8.14
v4.8.13
Changes
API
Compiler
Architectures and JIT
🐛 Bug Fixes
- compiler: Fixup deterministic codegen @FabioLuporini (#2543)
Full Changelog: v4.8.12...v4.8.13
v4.8.12
API
- api: Relax custom coefficient spacing enforcement @mloubout (#2530)
- api: fix backward compatibility of Substitution, missing function check @mloubout (#2522)
- api: Misc fixes for builtins and harmonic averaging @mloubout (#2520)
- api: fix equation pickling @mloubout (#2490)
- api: more robust processing of custom weight with spacing @mloubout (#2489)
- api: fix pickling of sparse operations @mloubout (#2488)
- api: support custom coeffs for div/grad/curl @mloubout (#2486)
- dsl: Add ArgProvider inheritance to AbstractSymbol @EdCaunt (#2482)
- API: Fix Sparse rebuild with explicit empty subfunctions @mloubout (#2473)
- API: revamp cross derivative shortcuts @mloubout (#2458)
- api: revamp custom coefficients API @mloubout (#2434)
- API: Support harmonic averaging for parameter Function @mloubout (#2456)
- dsl: Improve Function rebuilding and use of preexisting arrays as Function data @EdCaunt (#2438)
- api: make sure staggered FD interpolates shifts @mloubout (#2439)
- types: Introduce abstract class LocalType @ZoeLeibowitz (#2433)
- api: Enforce sympy shifts @mloubout (#2471)
- api: fix derivative kwargs at call @mloubout (#2469)
Examples
- api: Misc fixes for builtins and harmonic averaging @mloubout (#2520)
- examples: Fix ADER notebook numbering @EdCaunt (#2450)
Documentation
- docs: Update CITATION.md @georgebisbas (#2499)
- docs: Elaborate on SubDomains for BCs w MPI @georgebisbas (#2491)
- examples: Enhance MPI notebook with paper material @georgebisbas (#2492)
- misc: Update FAQ @EdCaunt (#2481)
Compiler
- compiler: Misc extensions towards supporting thread block clustering @FabioLuporini (#2538)
- compiler: Misc improvements to code generation @FabioLuporini (#2516)
- compiler: fix scalar aliases from conditionals @mloubout (#2517)
- compiler: Rework HaloSpot optimization @georgebisbas (#2477)
- compiler: Expose Bundle's properties correctly @FabioLuporini (#2487)
- dsl: Move SubDimension thickness evaluation to the thicknesses themselves @EdCaunt (#2470)
- compiler: Improve CIRE's cost model @FabioLuporini (#2476)
- compiler: Add missing symbolic casts @mloubout (#2462)
- compiler: Remove counters from subdomains and automatically generate unique names @EdCaunt (#2431)
- compiler: Propagate metadata down to _arg_defaults @FabioLuporini (#2459)
- compiler: Minor tweaks for elastic code gen @FabioLuporini (#2453)
- compiler: Add various performance optimization variants @FabioLuporini (#2446)
- compiler: respect fetch direction @mloubout (#2441)
- dsl: Fix missing sympy assumptions during rebuilding @EdCaunt (#2436)
- compiler: Tweak par-tile unrolling and revamp MPI topology @FabioLuporini (#2426)
- misc: Revamp exception hierarchy @FabioLuporini (#2500)
- compiler: Tweak custom coefficients error handling @FabioLuporini (#2519)
- compiler: Add 'groupby' mode to MapNodes visitor @ZoeLeibowitz (#2502)
- compiler: Fix code generation for pow and fabs when using float32 @JDBetteridge (#2504)
MPI
- compiler: Rework HaloSpot optimization @georgebisbas (#2477)
Architectures and JIT
- arch: Support Grace arm architecture @mloubout (#2537)
- compiler: Support compiler flags for Cortex @georgebisbas (#2531)
- arch: make sure Device get thread config from host @mloubout (#2468)
- arch: Avoid deprecated compiler flags @FabioLuporini (#2461)
- arch: add rpath option to include_dirs @mloubout (#2466)
- arch: fix graviton march @mloubout (#2445)
🐛 Bug Fixes
- api: Fix custom coefficients inlining @FabioLuporini (#2524)
- api: fix backward compatibility of Substitution, missing function check @mloubout (#2522)
- compiler: Fixup pow_to_mul @FabioLuporini (#2518)
- compiler: Fix bug in concretization of conditionals containing Thicknesses @EdCaunt (#2510)
- compiler: Default CustomDimension.local to True @FabioLuporini (#2507)
- misc: Prevent builtins on transient functions @FabioLuporini (#2506)
- compiler: Avoid allocating Bundles on the host if transient @FabioLuporini (#2503)
- compiler: Generate fminf/fmaxf where necessary @FabioLuporini (#2501)
- api: fix alias for buffering @mloubout (#2497)
- api: fix equation pickling @mloubout (#2490)
- compiler: Fixup minor cire-rotate bug @FabioLuporini (#2472)
- API: revamp cross derivative shortcuts @mloubout (#2458)
- compiler: Hotfix and simplify minimize_symbols @FabioLuporini (#2452)
- compiler: Fix handling of modulo 1 for MPI @mloubout (#2451)
- compiler: Patch mapify-reduce for SparseTimeFunctions @FabioLuporini (#2449)
- dsl: Fix missing sympy assumptions during rebuilding @EdCaunt (#2436)
- compiler: Patch indirect ConditionalDimension @FabioLuporini (#2432)
- compiler: fix unevaluation of sparse cluster @mloubout (#2435)
- misc: Fix EnrichedTuple rebuilding @enwask (#2418)
- api: Make Derivative Reconstructable @mloubout (#2429)
- misc: Fix operator output with gflopss=None @FabioLuporini (#2496)
- misc: Fix operator output with OI=None @FabioLuporini (#2495)
Benchmarking
- misc: Fixup Profiler.add_global_vanilla @FabioLuporini (#2494)
Testing
- CI: Revert amd CI to a stable rocm for openmp offloading @mloubout (#2529)
- CI: update amd base to working ucx/rocm versions @mloubout (#2527)
- tests: Add test for using a Constant as a condition in a ConditionalDimension @EdCaunt (#2512)
Continuous Integration
- ci: Restore MPI notebook testing @georgebisbas (#2478)
Installation
- pip prod(deps): update psutil requirement from <7.0,>=5.1.0 to >=5.1.0,<8.0 @dependabot (#2535)
- pip prod(deps): update mpi4py requirement from <4.0.3 to <4.0.4 @dependabot (#2536)
- docker: add option to install gcc 14 @mloubout (#2532)
- CI: Revert amd CI to a stable rocm for openmp offloading @mloubout (#2529)
- pip prod(deps): update mpi4py requirement from <4.0.2 to <4.0.3 @dependabot (#2528)
- docker: update compilers to more recent versions @mloubout (#2526)
- deps: Update scipy ascent import @ZoeLeibowitz (#2514)
- pip prod(deps): update numpy requirement from <2.2,>1.16 to >1.16,<2.3 @dependabot (#2498)
- misc: Always search the CUDA SDK's math_libs include dir @FabioLuporini (#2480)
- pip prod(deps): update ipyparallel requirement from <8.9 to <9.1 @dependabot (#2479)
- pip prod(deps): update mpi4py requirement from <4.0.1 to <4.0.2 @dependabot (#2467)
- deps: fix deprecated pkg_resources @mloubout (#2463)
- pip prod(deps): update numpy requirement from <2.1,>1.16 to >1.16,<2.2 @dependabot (#2443)
- pip prod(deps): update mpi4py requirement from <3.1.7 to <4.0.1 @dependabot (#2430)
New Contributors
- @enwask made their first contribution in #2418
- @JDBetteridge made their first contribution in #2504
Full Changelog: v4.8.11...v4.8.12
v4.8.11
Changes
API
- api: Support combination of condition and factor for ConditionalDimension @mloubout (#2413)
- misc: minor miscelanous fixes @mloubout (#2406)
Compiler
- compiler: Bump default block size @FabioLuporini (#2412)
- compiler: Revamp MultiSubDimension lowering @FabioLuporini (#2411)
- compiler: fix cse with different conditionals @mloubout (#2410)
- compiler: Patch bug in SubDomainSet lowering @EdCaunt (#2408)
MPI
Architectures and JIT
- arch: fix switchconfig with new setup @mloubout (#2419)
- arch: Support more platforms @mloubout (#2415)
🐛 Bug Fixes
- compiler: Fix parlang reductions over >= 4 loops @FabioLuporini (#2417)
- api: Patch ConditionalDimension args @mloubout (#2414)
- compiler: fix cse with different conditionals @mloubout (#2410)
- misc: minor miscelanous fixes @mloubout (#2406)
Continuous Integration
Full Changelog: v4.8.10...v4.8.11