A water-utility sensor desk will merge several large GPU tables but first wants to cut memory pressure. What ordering best reduces GPU footprint before the multi-table merge?
Select an answer to reveal the explanation.
Short Explanation
Imagine sorting a giant warehouse before you assemble kits: toss closed cases and unused columns first so the merge carts stay light. On the GPU, filter and column-select early, then join. Merging everything first just burns VRAM for rows you will throw away.
Full Explanation
GPU memory is finite, so RAPIDS multi-table merges for water-utility sensor data should push predicate filters and column projection before expensive joins. Filtering to open cases and selecting only the columns required for the merge shrinks intermediates early, reduces VRAM pressure, and often improves wall-clock time because less data moves through hash tables and shuffles. This filter-project-then-join ordering is a core GPU tabular performance pattern for municipal pipelines that otherwise outgrow a single device mid-merge.
Merging every column of every historical table first, then filtering afterward, materializes wide intermediates you intend to discard and is a common cause of GPU out-of-memory failures on civic archives. Duplicating full fact tables into CPU RAM before any filter abandons the GPU path for the heaviest step and adds host memory and PCIe transfer cost without reducing join cardinality. Materializing a Cartesian product of all sensor IDs before selecting columns invents an enormous intermediate that no utility merge should ever build and will thrash both memory and correctness.
Exam caveat: pushdown helps only when filters are selective and semantically valid before the join; filters that depend on post-join columns cannot be moved earlier without changing meaning. Operational check: compare peak GPU memory and row counts for “filter/select then merge” versus “merge then filter” on a representative open-case slice, confirm identical business results on keys, and keep the lower-footprint order as the default ETL stage.