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

Add environment file & documentation for GPU tests #633

Merged
merged 3 commits into from
Jul 25, 2022

Conversation

charlesbluca
Copy link
Collaborator

@charlesbluca charlesbluca commented Jul 16, 2022

A different approach to #630; adds a new environment file to continuous_integration/gpuci/ specifying the additional packages that get installed on top of the CI environment for gpuCI, along with some documentation on how to use this file to run GPU tests.

Planning to follow up on this with rapidsai/dask-build-environment#39, which would use this file to install requirements into the gpuCI images, which should improve transparency on how the GPU tests work.

@codecov-commenter
Copy link

codecov-commenter commented Jul 16, 2022

Codecov Report

Merging #633 (a4a98b1) into main (0db4506) will increase coverage by 0.14%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #633      +/-   ##
==========================================
+ Coverage   88.45%   88.60%   +0.14%     
==========================================
  Files          69       69              
  Lines        3500     3500              
  Branches      707      707              
==========================================
+ Hits         3096     3101       +5     
+ Misses        317      308       -9     
- Partials       87       91       +4     
Impacted Files Coverage Δ
dask_sql/_version.py 34.00% <0.00%> (+1.44%) ⬆️

📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

- rapidsai-nightly
- nvidia
dependencies:
- rust>=1.60.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we target these changes for the datafusion branch?

Copy link
Collaborator Author

@charlesbluca charlesbluca Jul 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would make sense, though on gpuCI's end we would need to grab this file from one of the branches to pull in during image builds (example of this being done with the environment file), and it just seemed to make more sense to target main for this.

If we want to have different versions of this file in main and the datafusion branch, that might motivate using separate images for gpuCI running on datafusion PRs vs. PRs into main, though not sure if that's worth the extra builds since the images only differ by a handful of added packages

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense w.r.t CI. It might also make sense to include this file (in a separate PR) in the datafusion branch even if we don't use it for gpuCI since one of the motivations for the file was for users working on that branch to be able to setup gpu environments to run tests locally

@charlesbluca charlesbluca merged commit 8a73309 into dask-contrib:main Jul 25, 2022
charlesbluca added a commit that referenced this pull request Aug 2, 2022
* Add basic predicate-pushdown optimization (#433)

* basic predicate-pushdown support

* remove explict Dispatch class

* use _Frame.fillna

* cleanup comments

* test coverage

* improve test coverage

* add xfail test for dt accessor in predicate and fix test_show.py

* fix some naming issues

* add config and use assert_eq

* add logging events when predicate-pushdown bails

* move bail logic earlier in function

* address easier code review comments

* typo fix

* fix creation_info access bug

* convert any expression to DNF

* csv test coverage

* include IN coverage

* improve test rigor

* address code review

* skip parquet tests when deps are not installed

* fix bug

* add pyarrow dep to cluster workers

* roll back test skipping changes

Co-authored-by: Charles Blackmon-Luca <[email protected]>

* Add workflow to keep datafusion dev branch up to date (#440)

* Update gpuCI `RAPIDS_VER` to `22.06` (#434)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Bump black to 22.3.0 (#443)

* Check for ucx-py nightlies when updating gpuCI (#441)

* Simplify gpuCI updating workflow

* Add check for cuML nightly version

* Add handling for newer `prompt_toolkit` versions in cmd tests (#447)

* Add handling for newer prompt-toolkit version

* Place compatibility code in _compat

* Fix version for gha-find-replace (#446)

* Update versions of Java dependencies (#445)

* Update versions for java dependencies with cves

* Rerun tests

* Update jackson databind version (#449)

* Update versions for java dependencies with cves

* Rerun tests

* update jackson-databind dependency

* Disable SQL server functionality (#448)

* Disable SQL server functionality

* Update docs/source/server.rst

Co-authored-by: Ayush Dattagupta <[email protected]>

* Disable server at lowest possible level

* Skip all server tests

* Add tests to ensure server is disabled

* Fix CVE fix test

Co-authored-by: Ayush Dattagupta <[email protected]>

* Update dask pinnings for release (#450)

* Add Java source code to source distribution (#451)

* Bump `httpclient` dependency (#453)

* Revert "Disable SQL server functionality (#448)"

This reverts commit 37a3a61.

* Bump httpclient version

* Unpin Dask/distributed versions (#452)

* Unpin dask/distributed post release

* Remove dask/distributed version ceiling

* Add jsonschema to ci testing (#454)

* Add jsonschema to ci env

* Fix typo in config schema

* Switch tests from `pd.testing.assert_frame_equal` to `dd.assert_eq` (#365)

* Start moving tests to dd.assert_eq

* Use assert_eq in datetime filter test

* Resolve most resulting test failures

* Resolve remaining test failures

* Convert over tests

* Convert more tests

* Consolidate select limit cpu/gpu test

* Remove remaining assert_series_equal

* Remove explicit cudf imports from many tests

* Resolve rex test failures

* Remove some additional compute calls

* Consolidate sorting tests with getfixturevalue

* Fix failed join test

* Remove breakpoint

* Use custom assert_eq function for tests

* Resolve test failures / seg faults

* Remove unnecessary testing utils

* Resolve local test failures

* Generalize RAND test

* Avoid closing client if using independent cluster

* Fix failures on Windows

* Resolve black failures

* Make random test variables more clear

* Set max pin on antlr4-python-runtime  (#456)

* Set max pin on antlr4-python-runtime due to incompatibilities with fugue_sql

* update comment on antlr max pin version

* Move / minimize number of cudf / dask-cudf imports (#480)

* Move / minimize number of cudf / dask-cudf imports

* Add tests for GPU-related errors

* Fix unbound local error

* Fix ddf value error

* Use `map_partitions` to compute LIMIT / OFFSET (#517)

* Use map_partitions to compute limit / offset

* Use partition_info to extract partition_index

* Use `dev` images for independent cluster testing (#518)

* Switch to dask dev images

* Use mamba for conda installs in images

* Remove sleep call for installation

* Use timeout / until to wait for cluster to be initialized

* Add documentation for FugueSQL integrations (#523)

* Add documentation for FugueSQL integrations

* Minor nitpick around autodoc obj -> class

* Timestampdiff support (#495)

* added timestampdiff

* initial work for timestampdiff

* Added test cases for timestampdiff

* Update interval month dtype mapping

* Add datetimesubOperator

* Uncomment timestampdiff literal tests

* Update logic for handling interval_months for pandas/cudf series and scalars

* Add negative diff testcases, and gpu tests

* Update reinterpret and timedelta to explicitly cast to int64 instead of int

* Simplify cast_column_to_type mapping logic

* Add scalar handling to castOperation and reuse it for reinterpret

Co-authored-by: rajagurnath <[email protected]>

* Relax jsonschema testing dependency (#546)

* Update upstream testing workflows (#536)

* Use dask nightly conda packages for upstream testing

* Add independent cluster testing to nightly upstream CI [test-upstream]

* Remove unnecessary dask install [test-upstream]

* Remove strict channel policy to allow nightly dask installs

* Use nightly Dask packages in independent cluster test [test-upstream]

* Use channels argument to install Dask conda nightlies [test-upstream]

* Fix channel expression

* [test-upstream]

* Need to add mamba update command to get dask conda nightlies

* Use conda nightlies for dask-sql import test

* Add import test to upstream nightly tests

* [test-upstream]

* Make sure we have nightly Dask for import tests [test-upstream]

* Fix pyarrow / cloudpickle failures in cluster testing (#553)

* Explicitly install libstdcxx-ng in clusters

* Make pyarrow dependency consistent across testing

* Make libstdcxx-ng dep a min version

* Add cloudpickle to cluster dependencies

* cloudpickle must be in the scheduler environment

* Bump cloudpickle version

* Move cloudpickle install to workers

* Fix pyarrow constraint in cluster spec

* Use bash -l as default entrypoint for all jobs (#552)

* Constrain dask/distributed for release (#563)

* Unpin dask/distributed for development (#564)

* Unpin dask/distributed post release

* Remove dask/distributed version ceiling

* update dask-sphinx-theme (#567)

* Make sure scheduler has Dask nightlies in upstream cluster testing (#573)

* Make sure scheduler has Dask nightlies in upstream cluster testing

* empty commit to [test-upstream]

* Update gpuCI `RAPIDS_VER` to `22.08` (#565)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Modify test environment pinnings to cover minimum versions (#555)

* Remove black/isort deps as we prefer pre-commit

* Unpin all non python/jdk dependencies

* Minor package corrections for py3.9 jdk11 env

* Set min version constraints for all non-testing dependencies

* Pin all non-test deps for 3.8 testing

* Bump sklearn min version to 1.0.0

* Bump pyarrow min version to 1.0.1

* Fix pip notation for fugue

* Use unpinned deps for cluster testing for now

* Add fugue deps to environments, bump pandas to 1.0.2

* Add back antlr4 version ceiling

* Explicitly mark all fugue dependencies

* Alter test_analyze to avoid rtol

* Bump pandas to 1.0.5 to fix upstream numpy issues

* Alter datetime casting util to dodge panda casting failures

* Bump pandas to 1.1.0 for groupby dropna support

* Simplify string dtype check for get_supported_aggregations

* Add check_dtype=False back to test_group_by_nan

* Bump cluster to python 3.9

* Bump fastapi to 0.69.0, resolve remaining JDBC failures

* Typo - correct pandas version

* Generalize test_multi_case_when's dtype check

* Bump pandas to 1.1.1 to resolve flaky test failures

* Constrain mlflow for windows python 3.8 testing

* Selectors don't work for conda env files

* Problems seem to persist in 1.1.1, bump to 1.1.2

* Remove accidental debug changes

* [test-upstream]

* Use python 3.9 for upstream cluster testing [test-upstream]

* Updated missed pandas pinning

* Unconstrain mlflow to see if Windows failures persist

* Add min version for protobuf

* Bump pyarrow min version to allow for newer protobuf versions

* Don't move jar to local mvn repo (#579)

* Add max version constraint for `fugue` (#639)

* Remove antlr4-python3-runtime constraint from 3.9+ test envs

* Revert "Remove antlr4-python3-runtime constraint from 3.9+ test envs"

This reverts commit ef30656.

* Add max version constraint for fugue in 3.9+ envs

* Constrain Fugue in remaining env/setup files

* Clarify fugue constraint comments

* Add pinning back to python 3.8 jdk11 tests

* More reversions to python 3.8 jdk11 testing env

* Add environment file & documentation for GPU tests  (#633)

* Add gpuCI environment file

* Add documentation for GPU tests / environment

* Add GPU testing to docs page

* Validate UDF metadata (#641)

* initial

* improvements

* bugfixes

* Move UDF validation to registration, cache relevant info

Co-authored-by: Charles Blackmon-Luca <[email protected]>

* Set Dask-sql as the default Fugue Dask engine when installed (#640)

* Set Dask-sql as the default Fugue Dask engine when installed

* Set Dask-sql as the default Fugue Dask engine when installed

* Add max version constraint for `fugue` (#639)

* Remove antlr4-python3-runtime constraint from 3.9+ test envs

* Revert "Remove antlr4-python3-runtime constraint from 3.9+ test envs"

This reverts commit ef30656.

* Add max version constraint for fugue in 3.9+ envs

* Constrain Fugue in remaining env/setup files

* Clarify fugue constraint comments

* Add pinning back to python 3.8 jdk11 tests

* More reversions to python 3.8 jdk11 testing env

* update

* update

* update

* fix tests

* update tests

* update a few things

* update

* fix

* conda install fugue in testing envs

* Remove diff from features notebook

* Alter documentation to mention automatic registration of execution engine

* Expand FugueSQL notebook

* Don't manually close client in simple statement test

Co-authored-by: Charles Blackmon-Luca <[email protected]>

* Add Rust setup to upstream testing workflow

* Resolve style failures

* Bump fugue version in CI envs

* Add back scalar case for cast operation

* Resolve UDF failures

* Resolve UDF failures for windows

* Remove calcite-specific reinterpret

Co-authored-by: Richard (Rick) Zamora <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ayush Dattagupta <[email protected]>
Co-authored-by: rajagurnath <[email protected]>
Co-authored-by: Sarah Charlotte Johnson <[email protected]>
Co-authored-by: ksonj <[email protected]>
Co-authored-by: brandon-b-miller <[email protected]>
Co-authored-by: Han Wang <[email protected]>
@charlesbluca charlesbluca deleted the add-gpuci-env branch August 31, 2022 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants