Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Improve pyarrow-free remote-IO performance #16166

Closed
wants to merge 40 commits into from

Conversation

rjzamora
Copy link
Member

@rjzamora rjzamora commented Jul 2, 2024

Description

Improves fsspec-only behavior for multi-file and partial reads from remote storage. Host-memory usage will be suboptimal compared to NativeFile (for now), but performance will be comparable in most cases.

This PR also includes deprecations for pyarrow-based IO. However, #16132 should take priority for the deprecations (and this PR should be modified accordingly).

TODO

  • Needs cleanup
  • Must be revised to depend on Deprecate Arrow support in I/O #16132. Also, dask-cudf open_file_options deprecation should probably be pulled out and merged before both 16132 and this PR.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@rjzamora rjzamora added 2 - In Progress Currently a work in progress Performance Performance related issue breaking Breaking change labels Jul 2, 2024
@rjzamora rjzamora self-assigned this Jul 2, 2024
@github-actions github-actions bot added the Python Affects Python cuDF API. label Jul 2, 2024
@rjzamora rjzamora added dask Dask issue improvement Improvement / enhancement to an existing function cuDF (Python) and removed Python Affects Python cuDF API. labels Jul 2, 2024
@github-actions github-actions bot added the Python Affects Python cuDF API. label Jul 2, 2024
@rjzamora rjzamora changed the title [DNM][WIP] Improve pyarrow-free remote-IO performance [WIP] Improve pyarrow-free remote-IO performance Jul 3, 2024
@vyasr
Copy link
Contributor

vyasr commented Jul 22, 2024

Let's target 24.10. My view is, 24.08 we're deprecating but not removing NativeFile support. 24.10 we're removing, so we need to have some alternative in place, but it's OK if it's slower as long as we're working on a plan for improvement. Ideally by 24.12 we'd have something merged that at least restores performance parity.

@rjzamora
Copy link
Member Author

Let's target 24.10. My view is, 24.08 we're deprecating but not removing NativeFile support.

Okay - targeting 24.10 for a real "behavior" change makes perfect sense to me. In 24.08, we are technically deprecating the user's ability to control whether or not NativeFile is used. I definitely like the idea of giving ourselves more time to actually implement the NativeFile replacement.

it's OK if it's slower as long as we're working on a plan for improvement. Ideally by 24.12 we'd have something merged that at least restores performance parity.

This PR is already comparable in most cases, and faster in some (e.g. many small files). Therefore, I'm confident we will have parity for 24.10 and hopeful that we will have something "better" for 24.12 :)

@github-actions github-actions bot added libcudf Affects libcudf (C++/CUDA) code. CMake CMake build issue Java Affects Java cuDF API. cudf.polars Issues specific to cudf.polars labels Jul 30, 2024
@lithomas1 lithomas1 changed the base branch from branch-24.08 to branch-24.10 July 30, 2024 20:03
@lithomas1 lithomas1 removed cudf.polars Issues specific to cudf.polars Java Affects Java cuDF API. libcudf Affects libcudf (C++/CUDA) code. labels Jul 31, 2024
@github-actions github-actions bot removed the CMake CMake build issue label Aug 13, 2024
@rjzamora
Copy link
Member Author

Closing as stale.

@rjzamora rjzamora closed this Aug 24, 2024
rapids-bot bot pushed a commit that referenced this pull request Sep 4, 2024
Follow up to #16613
Supersedes #16166

Improves remote-IO read performance when multiple files are read at once. Also enables partial IO for remote Parquet files (previously removed in `24.10` by #16589).

Authors:
  - Richard (Rick) Zamora (https://github.com/rjzamora)

Approvers:
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Lawrence Mitchell (https://github.com/wence-)

URL: #16657
res-life pushed a commit to res-life/cudf that referenced this pull request Sep 11, 2024
…i#16657)

Follow up to rapidsai#16613
Supersedes rapidsai#16166

Improves remote-IO read performance when multiple files are read at once. Also enables partial IO for remote Parquet files (previously removed in `24.10` by rapidsai#16589).

Authors:
  - Richard (Rick) Zamora (https://github.com/rjzamora)

Approvers:
  - Vyas Ramasubramani (https://github.com/vyasr)
  - Lawrence Mitchell (https://github.com/wence-)

URL: rapidsai#16657
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 - In Progress Currently a work in progress breaking Breaking change cuDF (Python) dask Dask issue improvement Improvement / enhancement to an existing function Performance Performance related issue Python Affects Python cuDF API.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants