[FEA] The final step of the parquet preprocess step can get very slow for highly complicated schemas. #11922
Labels
0 - Backlog
In queue waiting for assignment
cuIO
cuIO issue
improvement
Improvement / enhancement to an existing function
libcudf
Affects libcudf (C++/CUDA) code.
Performance
Performance related issue
proposal
Change current process or code
Milestone
For parquet files that contain columns with lists in them, we do a preprocess step to compute column sizes (and other information). As a very last step, we iterate over the input columns and march through them by depth here:
cudf/cpp/src/io/parquet/page_data.cu
Line 1827 in e91d7d9
For very complicated schemas, this can result in a large number of calls to
thrust::reduce()
andthrust::exclusive_scan_by_key()
. In some cases, cases, so much so that it can dominate the rest of the decompress/decode work.We should spend some time figuring out how to coalesce this into fewer (perhaps 1 each of
reduce_by_key
andexclusive_scan_by_key
) calls.The text was updated successfully, but these errors were encountered: