Comments (6)
@paulhendricks fyi
from dask-cuda.
In principle this is the sort of thing that a project like LocalCUDACluster could handle, however I'm somewhat concerned that it seems very RAPIDS specific, and also seems perhaps to be pretty unstable. Someone using this project for PyTorch might not appreciate this change. Also my guess looking at the code is that this would change in the next month or would change based on what libraries someone wanted to use. My hope is that LocalCUDACluster would be general beyond just RAPIDS work and would avoid baking in code that was tailored for a specific workflow.
Instead, I think that we might finish up dask/distributed#2453 and use that, or perhaps use worker preload scripts (see http://distributed.dask.org/en/latest/setup.html#customizing-initialization). Short term the preload scripts are probably the easiest approach. You would add that function to a small script, and then call something like LocalCUDACluster(preload='myscript.py')
and that script would be run on all of the workers when they started up. This would also work if, for example, the workers were restarted.
You can also avoid having to specify this keyword argument by putting this script into your config at distributed.worker.preload
, for example by adding the following file to ~/.config/dask/rapids.yaml
distributed:
worker:
preload: /path/to/myscript.py
from dask-cuda.
Understood about the goal of making this a general utility, and the startup scripts will work.
However, it's worth noting that (while its adoption is still mostly in RAPIDS projects) RMM has a goal of making shared memory pool management easier across the GPU ecosystem. Might be worth revisiting later when it gets adopted more widely.
@harrism fyi
from dask-cuda.
I think that the preload script solution is probably the right level of customization for this problem.
We can make a script with your startup commands, put that into configuration, and it will be run on any dask worker that people setup. That config file and script will be able to adapt much more nimbly than the dask-cuda project.
from dask-cuda.
@kkraus14 what do you think is the right way medium-term to solve the RMM initialization issue on the Python usability side?
from dask-cuda.
Might be worth revisiting later when it gets adopted more widely.
+1
from dask-cuda.
Related Issues (20)
- Dask LocalCudaCluster compute error when `threads_per_worker` not equal to 1 HOT 5
- Failing tests on `distributed>2023.9.2` HOT 3
- `dask cuda` CLI doesn't work with click 8.0.x
- Add option to use `cudf` spilling with `dask cuda` HOT 2
- Add cli option to enable pytorch to use same memory pool as rapids. HOT 2
- New version bug HOT 3
- Dask-CUDA 23.12.0 requires `rapids-dask-dependency` on PyPI HOT 2
- Support Pandas version 2 HOT 10
- Support "dataframe.query-planning" config in ``dask.dataframe``
- `test_dataframe_shuffle`: (CuPy's?) CUB emits `warning: cuda_runtime_api.h [jitify] File not found` HOT 3
- `dask.dataframe` `DeprecationWarning` turns into error (no `dask.dataframe`) HOT 3
- Broken link in explicit_comms docs HOT 1
- Pin newer pandas version HOT 2
- cudaErrorDevicesUnavailable: CUDA-capable device(s) is/are busy or unavailable HOT 2
- [CI] add wheel tests in CI HOT 4
- Error when installing latest version (24.6.0) of dask-cuda HOT 2
- CPU Memory Usage for Tasks with CPU-GPU Transfer HOT 28
- Explicit-comms shuffle produces different partitioning than `"tasks"`
- Slurm Cluster CPU Affinity HOT 10
- Allow deregistering cuDF from Dask's spilling mechanism
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dask-cuda.