1
某些資源(如GPU或某些數據存儲區)最好是獨佔使用,即一次只有一個客戶端。Dask - 獨家資源訪問?
DASK支持按名稱選擇工人的子集1(別名),所以我可以限制GPU工作GPU的工人。
在這種情況下,我將如何鎖定資源?即即使兩個獨立的客戶提交工作,一個給定的工作人員也應該一次只執行一項任務。
某些資源(如GPU或某些數據存儲區)最好是獨佔使用,即一次只有一個客戶端。Dask - 獨家資源訪問?
DASK支持按名稱選擇工人的子集1(別名),所以我可以限制GPU工作GPU的工人。
在這種情況下,我將如何鎖定資源?即即使兩個獨立的客戶提交工作,一個給定的工作人員也應該一次只執行一項任務。
來處理今天這個最好的方法是創建一個線程一個單獨的工作人員爲每個GPU
[email protected]$ dask-worker scheduler:8786
[email protected]$ dask-worker scheduler:8786 --nthreads 1 --name gpu-1
[email protected]$ dask-worker scheduler:8786
[email protected]$ dask-worker scheduler:8786 --nthreads 1 --name gpu-2
[email protected]$ dask-worker scheduler:8786
[email protected]$ 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)
(見data locality docs更多的方式將任務提交給某些機器
這是低於理想在幾個方面: