Dask-独占资源访问?
某些资源(如GPU或某些数据存储)的最佳利用方式是独占,即一次使用一个客户机 Dask支持按名称(别名)选择一个子集,因此我可以将GPU工作限制为GPU工作Dask-独占资源访问?,dask,Dask,某些资源(如GPU或某些数据存储)的最佳利用方式是独占,即一次使用一个客户机 Dask支持按名称(别名)选择一个子集,因此我可以将GPU工作限制为GPU工作 在这种情况下,如何锁定资源?也就是说,一个给定的辅助进程一次只能运行一个任务,即使两个独立的客户端提交了工作。现在处理这个问题的最好方法是为每个GPU创建一个单独的辅助进程,每个辅助进程都有一个线程 user@host1$ dask-worker scheduler:8786 user@host1$ dask-worker schedule
在这种情况下,如何锁定资源?也就是说,一个给定的辅助进程一次只能运行一个任务,即使两个独立的客户端提交了工作。现在处理这个问题的最好方法是为每个GPU创建一个单独的辅助进程,每个辅助进程都有一个线程
user@host1$ dask-worker scheduler:8786
user@host1$ dask-worker scheduler:8786 --nthreads 1 --name gpu-1
user@host2$ dask-worker scheduler:8786
user@host2$ dask-worker scheduler:8786 --nthreads 1 --name gpu-2
user@host3$ dask-worker scheduler:8786
user@host3$ dask-worker scheduler:8786 --nthreads 1 --name gpu-3
并将一些任务提交给整个集群,而将其他任务提交给那些GPU工作人员
>>> gpu_workers = ['gpu-1', 'gpu-2', 'gpu-3']
>>> client = Client('scheduler:8786')
>>> data = client.map(load, filenames)
>>> futures = client.map(process, data, workers=gpu_workers)
(有关向某些计算机提交任务的更多方法,请参阅
这在以下几个方面不太理想:
现在处理这个问题的最好方法是为每个GPU创建一个单独的工作线程
user@host1$ dask-worker scheduler:8786
user@host1$ dask-worker scheduler:8786 --nthreads 1 --name gpu-1
user@host2$ dask-worker scheduler:8786
user@host2$ dask-worker scheduler:8786 --nthreads 1 --name gpu-2
user@host3$ dask-worker scheduler:8786
user@host3$ dask-worker scheduler:8786 --nthreads 1 --name gpu-3
并将一些任务提交给整个集群,而将其他任务提交给那些GPU工作人员
>>> gpu_workers = ['gpu-1', 'gpu-2', 'gpu-3']
>>> client = Client('scheduler:8786')
>>> data = client.map(load, filenames)
>>> futures = client.map(process, data, workers=gpu_workers)
(有关向某些计算机提交任务的更多方法,请参阅
这在以下几个方面不太理想: