The regions problem

Problem

With the current “limitation” that stages can only have global extents, we need to lie about extents:
  • The extent of this stage should be something different from [10, 10, 0, 0], because we’re otherwise not hitting all the relevant points
  • The first solution to this was to use make_stage_with_extent and set them to 0, as we do not need to extend the domain ever

GridTools and the execution model

  • Multistages are only a container for stages with a direction, no sync required
  • see point about fusion in previous discussion
  • stages get internally fused if the extents allow for it

Forced synchronization in GridTools

  • only possible by either not lying about the extents or by multiple computations

Consequences

  • temporaries used in two multistages need to become full fields that have the 3d domain allocated (versus block-local [extended] memory) → promotion internally works