Skip to content

BUG: Handle empty and tiny narrow bands without invalid work regions - #6992

Open
jdotc1 wants to merge 3 commits into
InsightSoftwareConsortium:mainfrom
jdotc1:fix/jdotc1-narrow-band-work-units-20261022
Open

jdotc1 wants to merge 3 commits into
InsightSoftwareConsortium:mainfrom
jdotc1:fix/jdotc1-narrow-band-work-units-20261022

Conversation

@jdotc1

@jdotc1 jdotc1 commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Keep narrow-band work regions consistent with worker counts and exclude empty workers from timestep resolution. Addresses #6823.

Scope and risk

Empty-band termination changes solver behavior and requires maintainer acceptance.

Validation

The PR merge revision 2981a2f075cc for head 5301fa889442 passed all 4,721 configured Linux ARM64 tests, including itkNarrowBandSmallBandTest. Pre-commit checks also passed for this head.

Prior recorded validation: 25 partition cases passed with GCC and address, undefined-behavior, and float-cast-overflow sanitizers.

The initialization review thread is resolved.

@github-actions github-actions Bot added type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct area:Numerics Issues affecting the Numerics module labels Oct 22, 2026
@jdotc1
jdotc1 marked this pull request as ready for review October 23, 2026 04:28
@greptile-apps

greptile-apps Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The changes affect narrow-band image filters and their parallel updates.

No behavioral defect was found, but the new test must follow the repository’s initialization rule before merging.

Findings

  1. P2 Initialization breaks the guide ▶

Summary

The PR makes narrow-band partitions match the requested worker count and excludes empty workers from timestep selection.

  • Narrow-band splits keep one region for each requested worker.
  • Narrow-band filters stop cleanly when no band nodes remain.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Initialize or refresh band] --> B{Band empty?}
  B -->|Yes| G[Finish and post-process output]
  B -->|No| C[Give each worker a range]
  C --> D[Compute changes for nonempty ranges]
  D --> E[Choose timestep from valid workers]
  E --> F[Apply updates and count iteration]
  F --> A
Loading

Reviews (1) · Last reviewed commit: "STYLE: Align narrow band regression test..." · Reviewed by Greptile

Comment thread Modules/Numerics/NarrowBand/test/itkNarrowBandSmallBandTest.cxx Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:Numerics Issues affecting the Numerics module type:Bug Inconsistencies or issues which will cause an incorrect result under some or all circumstances type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant