Skip to content

Develop 0.2.3 preliminary#34

Merged
Dvegrod merged 11 commits into
masterfrom
develop
May 11, 2026
Merged

Develop 0.2.3 preliminary#34
Dvegrod merged 11 commits into
masterfrom
develop

Conversation

@Dvegrod
Copy link
Copy Markdown
Collaborator

@Dvegrod Dvegrod commented May 11, 2026

Added tests, modern bandwidth benchmarks, pinning procedures and procedures to simplify the usage of the package.

Dvegrod and others added 11 commits April 14, 2026 14:14
Introduce a Topology submodule and thread-pinning infrastructure, add a perftest(file, execute=true) API, and enable a two-pass AST transformation to apply prefix/suffix rules after initial analysis. Key changes:

- New Topology module: parses hwloc, exposes cache/NUMA info, arrangement spec types, validation/literalization, executability checks, enforcement (pin/unpin) using ThreadPinningCore, logging hooks, and helper utilities.
- Add execution/macros/topology.jl macro to declare perftest thread arrangements and validate them at parse time.
- Two-pass AST processing: split rules into first_pass_rules and second_pass_rules and run a second prewalk to handle prefix/suffix transformations.
- Add perftest(file, execute) function that runs treeRun, saves generated suite to a *_perfsuite.jl file and optionally includes it for execution; setup logging and error checks integrated.
- Machine benchmarking changes: conditionally run CPU/memory benchmarks only if benchmarks are used in the recipe (uses_benchmarks tracking); machineBenchmarks now takes Context and relies on Topology for cache sizes and topology retrieval.
- Track uses_benchmarks in GlobalContext and mark usages in roofline/methodology builders so unnecessary probes are skipped.
- Configuration updates: new config keys for numas and threads_per_numa, parser for threads macro (parseThreadsMacro), and small formatting/typing cleanups.
- Project.toml: fix version key, add BandwidthBenchmark and ThreadPinningCore deps and compat entries.

Also contains various small refactors, formatting fixes, and minor bug fixes to make topology + thread pinning work reliably across platforms (with OS-specific fallbacks for enforcement).
@Dvegrod Dvegrod merged commit 73cd508 into master May 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant