You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
π€ from Claude (filed at espg's direction, 2026-08-07)
Part 1 β mocs_to_orders: ragged batch moc_to_order
zagg's batch shardmap rewire (englacial/zagg#400, consuming #153's polygons_to_morton_mocs) eliminated the per-ring coverage calls, and profiling the survivor shows moc_to_order is now the residual per-ring Python call β roughly a third of the remaining wall. Same shape as #153, one level up the pipeline:
values, out_offsets=mortie.mocs_to_orders(
moc_values, moc_offsets, # ragged MOCs, arrow list layout (e.g. polygons_to_morton_mocs output, verbatim)order, # shared scalar target order (mirrors #153's shared-setting ruling)max_cells=..., # per-MOC budget, same semantics as the scalar
)
# values: flattened order-cells, all MOCs concatenated; out_offsets: arrow list layout
Part 2 β sweep mortie for scalar-only operations; bulk operators by default
This is the second consumer-driven batch request in two days (#153, now this). Rather than filing these one at a time, espg's direction: audit the public API for scalar-only / per-object-loop operations and add ragged/array batch variants as the default posture β new operations should take array/ragged inputs natively, with the scalar form as the convenience wrapper, not the other way around.
Known candidates to seed the audit (from zagg's call sites):
mort2polygon β zagg loops it per shard key in Python (shards_bbox, healpix.py; also its _leak_check) β a natural ragged batch (words in β ragged vertex arrays out).
Deliverable for part 2: an audit table on this issue (operation β scalar-only? β consumer/hot-path evidence β batch variant proposed y/n), then individual implementation as follow-ups sized like #153/#154.
Refs: #153 / PR #154 (the pattern: strict ragged contract, plural naming, shared scalar params, fail-fast index naming, chunked assembly), englacial/zagg#396 + englacial/zagg#400 (the consumer), #152 (the convenience-scalar counterexample).
π€ from Claude (filed at espg's direction, 2026-08-07)
Part 1 β
mocs_to_orders: ragged batchmoc_to_orderzagg's batch shardmap rewire (englacial/zagg#400, consuming #153's
polygons_to_morton_mocs) eliminated the per-ring coverage calls, and profiling the survivor showsmoc_to_orderis now the residual per-ring Python call β roughly a third of the remaining wall. Same shape as #153, one level up the pipeline:try/exceptaround the scalar call preserves a cell-budget refusal semantic (batch mortie coverage in ShardMap.build (issue #396)Β englacial/zagg#400 question (2) explicitly declined a zagg-side vectorization because it would drop that refusal); the batch keeping it per-item is what lets zagg adopt without a behavior change.moc_to_order(randomized + the Batch polygon coverage: polygons_to_morton_moc over ragged (offsets) arrays β one call, rayon across polygonsΒ #153 fixture rings run through both stages), the budget-refusal index test, bench vs the scalar loop at β₯100k MOCs.Part 2 β sweep mortie for scalar-only operations; bulk operators by default
This is the second consumer-driven batch request in two days (#153, now this). Rather than filing these one at a time, espg's direction: audit the public API for scalar-only / per-object-loop operations and add ragged/array batch variants as the default posture β new operations should take array/ragged inputs natively, with the scalar form as the convenience wrapper, not the other way around.
Known candidates to seed the audit (from zagg's call sites):
mort2polygonβ zagg loops it per shard key in Python (shards_bbox, healpix.py; also its_leak_check) β a natural ragged batch (words in β ragged vertex arrays out).moc_to_orderβ part 1 above.moc_and/moc_or/β¦) are pairwise array-based already, but an N-way variadic fold (many MOCs β one union/intersection in Rust) would serve the ShardMap.build at bulk-catalog scale: process-pool parallel build; persistent footprint indexΒ englacial/zagg#396 phase-2 column fast path (AOI β© per-granule cells over a whole catalog).MortonWordproperties are fine as-is (display-bound) β the audit should distinguish hot-path candidates from convenience scalars rather than batching everything.Deliverable for part 2: an audit table on this issue (operation β scalar-only? β consumer/hot-path evidence β batch variant proposed y/n), then individual implementation as follow-ups sized like #153/#154.
Refs: #153 / PR #154 (the pattern: strict ragged contract, plural naming, shared scalar params, fail-fast index naming, chunked assembly), englacial/zagg#396 + englacial/zagg#400 (the consumer), #152 (the convenience-scalar counterexample).