Skip to content

Conversation

@mishaschwartz
Copy link
Collaborator

Overview

Documentation update to describe steps to enable GPU support for jupyterhub.

Changes

Non-breaking changes

  • none
    Breaking changes
  • none

Related Issue / Discussion

Additional Information

Links to other issues or sources.

CI Operations

birdhouse_daccs_configs_branch: master
birdhouse_skip_ci: false

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Oct 2, 2025
Copy link
Collaborator

@tlvu tlvu left a comment

Choose a reason for hiding this comment

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

LGTM, except the part that override JUPYTERHUB_CONFIG_OVERRIDE, should be appending.

]
'
This will allow the docker containers to access all GPUs on the host machine. To limit the number of GPUs you want to make available
Copy link
Collaborator

Choose a reason for hiding this comment

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

So all Jupyter users will have access to the GPU? And if they happen to all use the GPU at the same time, will they step on each other foot?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yup they will definitely step on each others feet. Just the same as if a user hogs any other resource (CPU, memory, etc.)

We definitely need a better way to manage resource over-use but the problem isn't specific to GPUs.

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3708/
ResultFAILURE

BIRDHOUSE_DEPLOY_BRANCH : gpu-support-documentation
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-216.rdext.crim.ca

PAVICS-e2e-workflow-tests Pipeline Results

Tests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/465/

NOTEBOOK TEST RESULTS
    
[2025-10-02T16:02:38.891Z] ============================= test session starts ==============================
[2025-10-02T16:02:38.891Z] platform linux -- Python 3.11.12, pytest-8.3.5, pluggy-1.5.0
[2025-10-02T16:02:38.891Z] rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master
[2025-10-02T16:02:38.891Z] plugins: anyio-4.9.0, dash-3.0.3, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
[2025-10-02T16:02:38.891Z] collected 537 items
[2025-10-02T16:02:38.891Z] 
[2025-10-02T16:02:47.131Z] notebooks-auth/geoserver.ipynb ..................                        [  3%]
[2025-10-02T16:03:58.640Z] notebooks-auth/test_cowbird_jupyter.ipynb ..........                     [  5%]
[2025-10-02T16:03:58.640Z] notebooks-auth/test_thredds.ipynb ...........                            [  7%]
[2025-10-02T16:05:27.997Z] pavics-sdi-master/docs/source/notebooks/CaSR_basic.ipynb ......          [  8%]
[2025-10-02T16:17:56.011Z] pavics-sdi-master/docs/source/notebooks/FAQ_dask_parallel.ipynb ..s..... [  9%]
[2025-10-02T16:18:42.695Z] .                                                                        [ 10%]
[2025-10-02T16:18:52.358Z] pavics-sdi-master/docs/source/notebooks/WCS_example.ipynb ..F...         [ 11%]
[2025-10-02T16:18:58.758Z] pavics-sdi-master/docs/source/notebooks/WFS_example.ipynb .....          [ 12%]
[2025-10-02T16:28:35.909Z] pavics-sdi-master/docs/source/notebooks/climex.ipynb ...........         [ 14%]
[2025-10-02T16:28:35.910Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-climate-stations.ipynb . [ 14%]
[2025-10-02T16:28:35.910Z] ...............                                                          [ 17%]
[2025-10-02T16:28:41.452Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-xclim.ipynb .....    [ 18%]
[2025-10-02T16:29:02.924Z] pavics-sdi-master/docs/source/notebooks/esgf-dap.ipynb ....              [ 18%]
[2025-10-02T16:29:17.048Z] pavics-sdi-master/docs/source/notebooks/forecasts.ipynb ......           [ 19%]
[2025-10-02T16:29:23.563Z] pavics-sdi-master/docs/source/notebooks/opendap.ipynb .......            [ 21%]
[2025-10-02T16:29:27.669Z] pavics-sdi-master/docs/source/notebooks/pavics_thredds.ipynb .....       [ 22%]
[2025-10-02T16:33:07.396Z] pavics-sdi-master/docs/source/notebooks/regridding.ipynb ............... [ 24%]
[2025-10-02T16:34:13.811Z] .............                                                            [ 27%]
[2025-10-02T16:34:16.342Z] pavics-sdi-master/docs/source/notebooks/rendering.ipynb ....             [ 28%]
[2025-10-02T16:34:18.111Z] pavics-sdi-master/docs/source/notebooks/subset-user-input.ipynb ........ [ 29%]
[2025-10-02T16:34:43.655Z] .................                                                        [ 32%]
[2025-10-02T16:34:50.690Z] pavics-sdi-master/docs/source/notebooks/subsetting.ipynb .....           [ 33%]
[2025-10-02T16:34:52.601Z] pavics-sdi-master/docs/source/notebook-components/weaver_example.ipynb . [ 33%]
[2025-10-02T16:35:02.852Z] .........                                                                [ 35%]
[2025-10-02T16:35:13.947Z] finch-main/docs/source/notebooks/dap_subset.ipynb ...........            [ 37%]
[2025-10-02T16:35:24.370Z] finch-main/docs/source/notebooks/finch-usage.ipynb ......                [ 38%]
[2025-10-02T16:35:25.753Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-1DataAccess.ipynb . [ 38%]
[2025-10-02T16:35:31.587Z] .....                                                                    [ 39%]
[2025-10-02T16:36:18.340Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-2Subsetting.ipynb . [ 40%]
[2025-10-02T16:36:51.484Z] ............                                                             [ 42%]
[2025-10-02T16:37:13.424Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-3Climate-Indicators.ipynb . [ 42%]
[2025-10-02T16:37:55.849Z] .....s.                                                                  [ 43%]
[2025-10-02T16:38:03.965Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb . [ 43%]
[2025-10-02T16:38:10.055Z] ..                                                                       [ 44%]
[2025-10-02T16:38:18.172Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb . [ 44%]
[2025-10-02T16:39:27.707Z] .........                                                                [ 46%]
[2025-10-02T16:39:37.692Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-6Regridding_Conversion.ipynb . [ 46%]
[2025-10-02T16:41:24.930Z] ....                                                                     [ 47%]
[2025-10-02T16:41:24.930Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-01_Intro.ipynb . [ 47%]
[2025-10-02T16:41:30.563Z] ....                                                                     [ 48%]
[2025-10-02T16:41:34.758Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-02_Calibration.ipynb . [ 48%]
[2025-10-02T16:41:44.610Z] .....                                                                    [ 49%]
[2025-10-02T16:41:48.809Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-03_Watershed_properties.ipynb . [ 49%]
[2025-10-02T16:41:53.957Z] .............                                                            [ 51%]
[2025-10-02T16:42:00.522Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-04_Time_series_analysis.ipynb . [ 51%]
[2025-10-02T16:42:00.780Z] ......                                                                   [ 53%]
[2025-10-02T16:42:11.064Z] raven-main/docs/source/notebooks/Region_selection.ipynb .........        [ 54%]
[2025-10-02T16:42:12.974Z] raven-main/docs/source/notebooks/Subset_climate_data_over_watershed.ipynb . [ 54%]
[2025-10-02T16:42:35.526Z] ......                                                                   [ 56%]
[2025-10-02T16:42:36.905Z] RavenPy-main/docs/notebooks/00_Introduction_to_JupyterLab.ipynb ......   [ 57%]
[2025-10-02T16:42:47.606Z] RavenPy-main/docs/notebooks/01_Getting_watershed_boundaries.ipynb ...... [ 58%]
[2025-10-02T16:42:47.606Z] ..                                                                       [ 58%]
[2025-10-02T16:42:54.177Z] RavenPy-main/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb . [ 58%]
[2025-10-02T16:42:58.717Z] .............                                                            [ 61%]
[2025-10-02T16:44:33.120Z] RavenPy-main/docs/notebooks/03_Extracting_forcing_data.ipynb ........... [ 63%]
[2025-10-02T16:44:33.120Z]                                                                          [ 63%]
[2025-10-02T16:44:37.340Z] RavenPy-main/docs/notebooks/04_Emulating_hydrological_models.ipynb ..... [ 64%]
[2025-10-02T16:44:44.105Z] ...............                                                          [ 67%]
[2025-10-02T16:44:49.638Z] RavenPy-main/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb .... [ 67%]
[2025-10-02T16:44:57.952Z] .........                                                                [ 69%]
[2025-10-02T16:45:09.318Z] RavenPy-main/docs/notebooks/06_Raven_calibration.ipynb ......            [ 70%]
[2025-10-02T16:45:16.832Z] RavenPy-main/docs/notebooks/07_Making_and_using_hotstart_files.ipynb ... [ 71%]
[2025-10-02T16:45:19.466Z] ...                                                                      [ 71%]
[2025-10-02T16:45:24.750Z] RavenPy-main/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb . [ 71%]
[2025-10-02T16:53:01.993Z] ...............                                                          [ 74%]
[2025-10-02T16:53:08.624Z] RavenPy-main/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb . [ 74%]
[2025-10-02T16:53:15.194Z] ....                                                                     [ 75%]
[2025-10-02T16:53:56.951Z] RavenPy-main/docs/notebooks/10_Data_assimilation.ipynb ........          [ 77%]
[2025-10-02T16:54:05.942Z] RavenPy-main/docs/notebooks/11_Climatological_ESP_forecasting.ipynb .... [ 77%]
[2025-10-02T16:54:32.210Z] ....                                                                     [ 78%]
[2025-10-02T16:54:40.328Z] RavenPy-main/docs/notebooks/12_Performing_hindcasting_experiments.ipynb . [ 78%]
[2025-10-02T16:54:50.866Z] .......                                                                  [ 80%]
[2025-10-02T16:55:15.789Z] RavenPy-main/docs/notebooks/Assess_probabilistic_flood_risk.ipynb ...... [ 81%]
[2025-10-02T16:55:16.721Z] .                                                                        [ 81%]
[2025-10-02T16:55:24.837Z] RavenPy-main/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb . [ 81%]
[2025-10-02T16:55:44.982Z] .......                                                                  [ 82%]
[2025-10-02T16:55:52.121Z] RavenPy-main/docs/notebooks/Distributed_hydrological_modelling.ipynb ... [ 83%]
[2025-10-02T16:56:11.626Z] ....                                                                     [ 84%]
[2025-10-02T16:56:22.116Z] RavenPy-main/docs/notebooks/Hydrological_realtime_forecasting.ipynb .... [ 84%]
[2025-10-02T16:56:28.221Z] ..                                                                       [ 85%]
[2025-10-02T16:56:52.479Z] RavenPy-main/docs/notebooks/Managing_Jupyter_Environments.ipynb ...      [ 85%]
[2025-10-02T16:57:21.238Z] RavenPy-main/docs/notebooks/Perform_Regionalization.ipynb .......        [ 87%]
[2025-10-02T16:57:27.912Z] RavenPy-main/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb ... [ 87%]
[2025-10-02T16:57:45.006Z] ..........                                                               [ 89%]
[2025-10-02T16:58:06.451Z] RavenPy-main/docs/notebooks/Sensitivity_analysis.ipynb ......            [ 90%]
[2025-10-02T16:58:13.331Z] RavenPy-main/docs/notebooks/time_series_analysis.ipynb ...........       [ 92%]
[2025-10-02T16:58:21.449Z] RavenPy-main/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb . [ 92%]
[2025-10-02T17:04:46.844Z] .............Fxxxxxx                                                     [ 96%]
[2025-10-02T17:04:48.982Z] notebooks/hummingbird.ipynb ............                                 [ 98%]
[2025-10-02T17:07:28.602Z] notebooks/stress-tests.ipynb ......                                      [100%]
[2025-10-02T17:07:28.602Z] 
[2025-10-02T17:07:28.602Z] =================================== FAILURES ===================================
    
  

Copy link
Member

@fmigneault fmigneault left a comment

Choose a reason for hiding this comment

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

Nice addition. Looking forward to advanced applications of it.

Comment on lines +841 to +843
c.DockerSpawner.extra_host_config["device_requests"] = [
docker.types.DeviceRequest(count=-1, capabilities=[["gpu"]])
]
Copy link
Member

Choose a reason for hiding this comment

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

Does that mean that every single user notebook automatically gets assigned a GPU?
If so, won't that create a bottleneck very quickly?

Is there a way to have both GPU/CPU-only simultaneously (adding more DeviceRequest variants to the list?), and have it selected somehow by the user when starting the kernel?
Maybe even more specific GPU definitions, like providing the ones with just 8GB VRAM vs others with 48GB separately?

I would be interested in that specific multi-config example, and how users interact with it to request (or us limiting them) appropriate resources.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Does that mean that every single user notebook automatically gets assigned a GPU?

No, it means that every container has access to all GPUs on the host. This PR doesn't introduce any solutions for allocating different GPU resources to different users. That is a much more complex thing that I'll have to try to figure out at a later date (because I don't really understand it yet).

Is there a way to have both GPU/CPU-only simultaneously (adding more DeviceRequest variants to the list?), and have it selected somehow by the user when starting the kernel?
Maybe even more specific GPU definitions, like providing the ones with just 8GB VRAM vs others with 48GB separately?

I think so, it would require a pretty good understanding of the nvidia toolkit and docker settings. I'm still reading about it and I can continue to update these docs as we figure different possible configurations.

Copy link
Member

Choose a reason for hiding this comment

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

I wonder if something like https://jupyterhub-dockerspawner.readthedocs.io/en/latest/api/index.html#dockerspawner.SwarmSpawner.group_overrides could be used to dynamically apply the GPU request on specific users/conditions, therefore allowing having GPU or CPU-only setup.

Documentation is very sparse, so definitely very hard to figure out 😅
All promising features nonetheless. Thanks for looking into them.

Comment on lines +846 to +847
This will allow the docker containers to access all GPUs on the host machine. To limit the number of GPUs you want to make available
you can change the ``count`` value to a positive integer or you can specify the ``device_ids`` key instead. ``device_ids`` takes a list
Copy link
Member

Choose a reason for hiding this comment

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

count=-1: That was my impression even before reading this part.

Requesting all available GPUs would essentially lock-out any second user trying to use a kernel.

The example should probably use count=1 instead and make a stronger warning about this situation, to let server maintainers know to not raise the value too much unless they got some really big GPU cluster.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Let me clarify... this gives each container access to all GPUs on the host and they share them as a resource. The same way they're sharing access to the CPUs, memory, etc.
This will not stop a user from starting up their container.

Note that if user A proceeds to max out some of the GPUs then user B can't use them until they are done but managing that goes beyond the scope of this documentation so far.

Copy link
Member

Choose a reason for hiding this comment

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

Unless you have big GPUs like A100 to actually provide virtual-GPU VRAM, it won't take that much to cause all users to crash their respective processes from OutOfMemoryError.

I'm nowhere near an expert on the matter, but I know that our clusters leverage some vGPUs to allow some kind of splitting this way. I don't know if that would play nice with multiple dockers trying to access the same GPU. Doesn't it do some kind of lock/reservation when assigned to a particular kernel?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't think that you need a vGPU setup for docker. Since there is no true VM (no hypervisor) with docker the containers can just access the GPU directly.

One thing you could do is use MIG (Multi-Instance GPU) or MPS (Multi-Process Service) to split up resources but not all GPUs support these (none of ours do unfortunately).

Doesn't it do some kind of lock/reservation when assigned to a particular kernel?

As far as I know it manages context-switching the same way a CPU would that was running multiple processes/threads. So everything gets slowed down and/or on-GPU memory gets filled up but it won't necessarily just immediately fail from a user perspective.

If the host machine has GPUs and you want to make them available to the docker containers running Jupyterlab:
1. ensure that the GPU drivers on the host machine are up to date
2. install the `NVIDIA container toolkit`_ package on the host machine
Copy link
Member

Choose a reason for hiding this comment

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

I assume enabling it like this makes it available to all containers on the server.

It doesn't have to be mentioned here, but just pointing it out FYI, it would be relevant for weaver-worker as well to run GPU jobs. I'm just not sure if the device syntax is the same in docker-compose since it's been 2-3 years since I've checked this.

If it does indeed work like this, maybe a note about all server resources sharing the GPUs could be relevant. They would not (necessarily) be dedicated to jupyter kernels.

Copy link
Collaborator Author

@mishaschwartz mishaschwartz Oct 3, 2025

Choose a reason for hiding this comment

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

I assume enabling it like this makes it available to all containers on the server.

Yes

It doesn't have to be mentioned here, but just pointing it out FYI, it would be relevant for weaver-worker as well to run GPU jobs.

Yes I definitely want to figure out how to make this work with weaver as well. Since the weaver worker container is not dynamically created, I think we can just add directly to the weaver-worker definition in the relevant docker-compose-extra.yml file. But that's something I'll have to figure out/work on next.

@crim-jenkins-bot
Copy link
Collaborator

E2E Test Results

DACCS-iac Pipeline Results

Build URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/3710/
ResultFAILURE

BIRDHOUSE_DEPLOY_BRANCH : gpu-support-documentation
DACCS_IAC_BRANCH : master
DACCS_CONFIGS_BRANCH : master
PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master
PAVICS_SDI_BRANCH : master

DESTROY_INFRA_ON_EXIT : true
PAVICS_HOST : https://host-140-216.rdext.crim.ca

PAVICS-e2e-workflow-tests Pipeline Results

Tests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/466/

NOTEBOOK TEST RESULTS
    
[2025-10-03T17:42:03.487Z] ============================= test session starts ==============================
[2025-10-03T17:42:03.487Z] platform linux -- Python 3.11.12, pytest-8.3.5, pluggy-1.5.0
[2025-10-03T17:42:03.487Z] rootdir: /home/jenkins/agent/workspace/PAVICS-e2e-workflow-tests_master
[2025-10-03T17:42:03.487Z] plugins: anyio-4.9.0, dash-3.0.3, nbval-0.11.0, tornasync-0.6.0.post2, xdist-3.6.1
[2025-10-03T17:42:03.487Z] collected 537 items
[2025-10-03T17:42:03.487Z] 
[2025-10-03T17:42:10.723Z] notebooks-auth/geoserver.ipynb ..................                        [  3%]
[2025-10-03T17:43:21.759Z] notebooks-auth/test_cowbird_jupyter.ipynb ..........                     [  5%]
[2025-10-03T17:43:21.760Z] notebooks-auth/test_thredds.ipynb ...........                            [  7%]
[2025-10-03T17:44:45.845Z] pavics-sdi-master/docs/source/notebooks/CaSR_basic.ipynb ......          [  8%]
[2025-10-03T17:57:25.645Z] pavics-sdi-master/docs/source/notebooks/FAQ_dask_parallel.ipynb ..s..... [  9%]
[2025-10-03T17:58:12.321Z] .                                                                        [ 10%]
[2025-10-03T17:58:21.690Z] pavics-sdi-master/docs/source/notebooks/WCS_example.ipynb ..F...         [ 11%]
[2025-10-03T17:58:28.455Z] pavics-sdi-master/docs/source/notebooks/WFS_example.ipynb .....          [ 12%]
[2025-10-03T18:07:59.267Z] pavics-sdi-master/docs/source/notebooks/climex.ipynb ...........         [ 14%]
[2025-10-03T18:07:59.267Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-climate-stations.ipynb . [ 14%]
[2025-10-03T18:08:02.040Z] ...............                                                          [ 17%]
[2025-10-03T18:08:11.937Z] pavics-sdi-master/docs/source/notebooks/eccc-geoapi-xclim.ipynb .....    [ 18%]
[2025-10-03T18:08:21.797Z] pavics-sdi-master/docs/source/notebooks/esgf-dap.ipynb ....              [ 18%]
[2025-10-03T18:08:35.251Z] pavics-sdi-master/docs/source/notebooks/forecasts.ipynb ......           [ 19%]
[2025-10-03T18:08:41.771Z] pavics-sdi-master/docs/source/notebooks/opendap.ipynb .......            [ 21%]
[2025-10-03T18:08:46.138Z] pavics-sdi-master/docs/source/notebooks/pavics_thredds.ipynb .....       [ 22%]
[2025-10-03T18:12:11.065Z] pavics-sdi-master/docs/source/notebooks/regridding.ipynb ............... [ 24%]
[2025-10-03T18:13:13.186Z] .............                                                            [ 27%]
[2025-10-03T18:13:16.659Z] pavics-sdi-master/docs/source/notebooks/rendering.ipynb ....             [ 28%]
[2025-10-03T18:13:18.605Z] pavics-sdi-master/docs/source/notebooks/subset-user-input.ipynb ........ [ 29%]
[2025-10-03T18:13:44.347Z] .................                                                        [ 32%]
[2025-10-03T18:13:50.939Z] pavics-sdi-master/docs/source/notebooks/subsetting.ipynb .....           [ 33%]
[2025-10-03T18:13:51.880Z] pavics-sdi-master/docs/source/notebook-components/weaver_example.ipynb . [ 33%]
[2025-10-03T18:14:09.876Z] .........                                                                [ 35%]
[2025-10-03T18:14:19.596Z] finch-main/docs/source/notebooks/dap_subset.ipynb ...........            [ 37%]
[2025-10-03T18:14:29.614Z] finch-main/docs/source/notebooks/finch-usage.ipynb ......                [ 38%]
[2025-10-03T18:14:30.991Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-1DataAccess.ipynb . [ 38%]
[2025-10-03T18:14:35.661Z] .....                                                                    [ 39%]
[2025-10-03T18:15:22.352Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-2Subsetting.ipynb . [ 40%]
[2025-10-03T18:16:00.824Z] ............                                                             [ 42%]
[2025-10-03T18:16:22.766Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-3Climate-Indicators.ipynb . [ 42%]
[2025-10-03T18:17:03.711Z] .....s.                                                                  [ 43%]
[2025-10-03T18:17:11.902Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb . [ 43%]
[2025-10-03T18:17:17.477Z] ..                                                                       [ 44%]
[2025-10-03T18:17:27.454Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb . [ 44%]
[2025-10-03T18:18:33.114Z] .........                                                                [ 46%]
[2025-10-03T18:18:43.089Z] PAVICS-landing-master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-6Regridding_Conversion.ipynb . [ 46%]
[2025-10-03T18:20:30.258Z] ....                                                                     [ 47%]
[2025-10-03T18:20:30.258Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-01_Intro.ipynb . [ 47%]
[2025-10-03T18:20:36.290Z] ....                                                                     [ 48%]
[2025-10-03T18:20:40.493Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-02_Calibration.ipynb . [ 48%]
[2025-10-03T18:20:50.343Z] .....                                                                    [ 49%]
[2025-10-03T18:20:54.533Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-03_Watershed_properties.ipynb . [ 49%]
[2025-10-03T18:21:00.049Z] .............                                                            [ 51%]
[2025-10-03T18:21:05.329Z] PAVICS-landing-master/content/notebooks/hydrology/PAVICStutorial_Hydrology-04_Time_series_analysis.ipynb . [ 51%]
[2025-10-03T18:21:06.364Z] ......                                                                   [ 53%]
[2025-10-03T18:21:16.644Z] raven-main/docs/source/notebooks/Region_selection.ipynb .........        [ 54%]
[2025-10-03T18:21:18.548Z] raven-main/docs/source/notebooks/Subset_climate_data_over_watershed.ipynb . [ 54%]
[2025-10-03T18:21:40.821Z] ......                                                                   [ 56%]
[2025-10-03T18:21:42.729Z] RavenPy-main/docs/notebooks/00_Introduction_to_JupyterLab.ipynb ......   [ 57%]
[2025-10-03T18:21:53.047Z] RavenPy-main/docs/notebooks/01_Getting_watershed_boundaries.ipynb ...... [ 58%]
[2025-10-03T18:21:53.047Z] ..                                                                       [ 58%]
[2025-10-03T18:21:59.610Z] RavenPy-main/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb . [ 58%]
[2025-10-03T18:22:05.074Z] .............                                                            [ 61%]
[2025-10-03T18:23:35.035Z] RavenPy-main/docs/notebooks/03_Extracting_forcing_data.ipynb ........... [ 63%]
[2025-10-03T18:23:35.035Z]                                                                          [ 63%]
[2025-10-03T18:23:40.801Z] RavenPy-main/docs/notebooks/04_Emulating_hydrological_models.ipynb ..... [ 64%]
[2025-10-03T18:23:47.126Z] ...............                                                          [ 67%]
[2025-10-03T18:23:52.702Z] RavenPy-main/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb .... [ 67%]
[2025-10-03T18:24:00.904Z] .........                                                                [ 69%]
[2025-10-03T18:24:12.904Z] RavenPy-main/docs/notebooks/06_Raven_calibration.ipynb ......            [ 70%]
[2025-10-03T18:24:20.052Z] RavenPy-main/docs/notebooks/07_Making_and_using_hotstart_files.ipynb ... [ 71%]
[2025-10-03T18:24:22.624Z] ...                                                                      [ 71%]
[2025-10-03T18:24:29.192Z] RavenPy-main/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb . [ 71%]
[2025-10-03T18:32:10.154Z] ...............                                                          [ 74%]
[2025-10-03T18:32:15.466Z] RavenPy-main/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb . [ 74%]
[2025-10-03T18:32:22.196Z] ....                                                                     [ 75%]
[2025-10-03T18:33:00.437Z] RavenPy-main/docs/notebooks/10_Data_assimilation.ipynb ........          [ 77%]
[2025-10-03T18:33:10.723Z] RavenPy-main/docs/notebooks/11_Climatological_ESP_forecasting.ipynb .... [ 77%]
[2025-10-03T18:33:36.981Z] ....                                                                     [ 78%]
[2025-10-03T18:33:45.107Z] RavenPy-main/docs/notebooks/12_Performing_hindcasting_experiments.ipynb . [ 78%]
[2025-10-03T18:33:54.973Z] .......                                                                  [ 80%]
[2025-10-03T18:34:19.627Z] RavenPy-main/docs/notebooks/Assess_probabilistic_flood_risk.ipynb ...... [ 81%]
[2025-10-03T18:34:20.460Z] .                                                                        [ 81%]
[2025-10-03T18:34:28.580Z] RavenPy-main/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb . [ 81%]
[2025-10-03T18:34:49.241Z] .......                                                                  [ 82%]
[2025-10-03T18:34:56.453Z] RavenPy-main/docs/notebooks/Distributed_hydrological_modelling.ipynb ... [ 83%]
[2025-10-03T18:35:16.451Z] ....                                                                     [ 84%]
[2025-10-03T18:35:27.485Z] RavenPy-main/docs/notebooks/Hydrological_realtime_forecasting.ipynb .... [ 84%]
[2025-10-03T18:35:34.066Z] ..                                                                       [ 85%]
[2025-10-03T18:35:58.824Z] RavenPy-main/docs/notebooks/Managing_Jupyter_Environments.ipynb ...      [ 85%]
[2025-10-03T18:36:27.380Z] RavenPy-main/docs/notebooks/Perform_Regionalization.ipynb .......        [ 87%]
[2025-10-03T18:36:34.037Z] RavenPy-main/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb ... [ 87%]
[2025-10-03T18:36:51.805Z] ..........                                                               [ 89%]
[2025-10-03T18:37:15.169Z] RavenPy-main/docs/notebooks/Sensitivity_analysis.ipynb ......            [ 90%]
[2025-10-03T18:37:19.302Z] RavenPy-main/docs/notebooks/time_series_analysis.ipynb ...........       [ 92%]
[2025-10-03T18:37:25.864Z] RavenPy-main/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb . [ 92%]
[2025-10-03T18:43:52.151Z] .............Fxxxxxx                                                     [ 96%]
[2025-10-03T18:43:52.151Z] notebooks/hummingbird.ipynb ............                                 [ 98%]
[2025-10-03T18:46:30.282Z] notebooks/stress-tests.ipynb ......                                      [100%]
[2025-10-03T18:46:30.282Z] 
[2025-10-03T18:46:30.282Z] =================================== FAILURES ===================================
    
  

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants