Skip to content

Add CloudSC as the simplification-pipeline integration test - #2470

Open
ThrudPrimrose wants to merge 2 commits into
mainfrom
perf/constant-propagation-scheduling
Open

Add CloudSC as the simplification-pipeline integration test#2470
ThrudPrimrose wants to merge 2 commits into
mainfrom
perf/constant-propagation-scheduling

Conversation

@ThrudPrimrose

@ThrudPrimrose ThrudPrimrose commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

CloudSC comes in as the integration case for the simplification pipeline. The kernel and its data
generator live in tests/corpus/cloudsc; the parse costs minutes, so it is memoized per process and
handed out as a copy.

  • tests/passes/constant_propagation_on_cloudsc_test.py compiles and runs the propagated SDFG against
    the un-propagated one under IEEE flags, so a schedule change that altered a value cannot pass.
  • tests/corpus/cloudsc_regression_test.py holds a wall-clock budget: five copies, one simplify each,
    median under 140s.

These tests carry the long marker that the General Tests matrix excludes, so they get their own workflow.

Split from the ConstantPropagation scheduling change, which is now #2476 and should merge first — this
branch was rebuilt on current main and holds only the CloudSC corpus, its tests and the CI job.

@ThrudPrimrose
ThrudPrimrose force-pushed the perf/constant-propagation-scheduling branch from 75f3c8c to 0251b49 Compare July 30, 2026 11:10
@ThrudPrimrose
ThrudPrimrose marked this pull request as ready for review July 31, 2026 08:52
@ThrudPrimrose ThrudPrimrose changed the title Cache the block order and skip unchanged nested regions in ConstantPropagation Cache the block order and skip unchanged nested regions in ConstantPropagation + Add CloudSC Integration Test Jul 31, 2026
CloudSC is the scaling case for ConstantPropagation: thousands of blocks nested many levels deep,
where a pass whose cost is superlinear in nesting depth shows minutes instead of seconds. The parse
costs minutes, so it is memoized per process and handed out as a copy.

tests/corpus/cloudsc holds the kernel and its data generator. The ConstantPropagation tests sit with
the other pass tests and compile and run the propagated SDFG against the un-propagated one, so a
change that altered a value cannot pass. The simplify wall-clock guard is its own regression test.

The tests carry the `long` marker, which the General Tests matrix excludes, so they get their own
workflow.
The job never installed pytest-xdist, so `-n 1` aborted the run with an unrecognized argument. It was
not wanted anyway: the CloudSC parse is memoized per process, and a worker per test pays it again.

Test paths came from the working directory. Ask dace where it is installed instead.
@ThrudPrimrose
ThrudPrimrose force-pushed the perf/constant-propagation-scheduling branch from d994057 to 7037f91 Compare August 3, 2026 13:22
@ThrudPrimrose ThrudPrimrose changed the title Cache the block order and skip unchanged nested regions in ConstantPropagation + Add CloudSC Integration Test Add CloudSC as the simplification-pipeline integration test Aug 3, 2026
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