-
-
Notifications
You must be signed in to change notification settings - Fork 757
Open
Labels
Description
I'm playing with a machine that has 80 logical cores. In this case creating a LocalCluster or raw Client can take a while. I believe that this is because it tries creating 80 workers at once with forkserver.
In [1]: from dask.distributed import Client
In [2]: %time client = Client()
distributed.nanny - WARNING - Worker process still alive after 47 seconds, killing
distributed.nanny - WARNING - Worker process 15200 was killed by unknown signal
<things crash>There are a few potential approaches to solve this:
- We can try to reduce the cost of creating a new process running a worker. My guess is that we're spending a long time importing libraries, but I'm not sure. Someone could investigate this.
- We can use the multiprocessing
forkapproach rather than forkserver (though dask breaks for other reasons here) - We can change the mixture of threads and processes as we get to high number of cores
In [1]: from dask.distributed import Client
In [2]: %time client = Client(n_workers=8, threads_per_worker=10)
CPU times: user 984 ms, sys: 252 ms, total: 1.24 s
Wall time: 6.43 sProbably we should do some combination of 1 and 3. Any thoughts or suggestions?
Reactions are currently unavailable