簡體   English   中英

多處理和 Dask

[英]Multiprocessing and Dask

場景:我想對一個文件(~100 MB)執行簡單的計算。 我有數千個這樣的文件。 對於此示例,將計算視為“計算行數”。

Dask:我正在使用 Dask 來並行化讀取和計算。

工作原理:如果每個文件都非常大(45 GB),那么在我的集群(12 台使用 PBS 的計算機)中專用 1 台計算機(70GB 內存)來讀取和計算是有意義的。

from dask_jobqueue import PBSCluster
cluster = PBSCluster(cores=1,processes=1,memory='70GB',queue='extra',project='abcd',walltime='12:00:00',interface='ib0',local_directory='/home/abcd/dask_workers/')
cluster.scale(jobs=12)
print(cluster.job_script())
from dask.distributed import Client, progress
client = Client(cluster)

問題:當文件很小(~100 MB)時,我希望集群中的 1 台計算機並行讀取和計算多個文件。

問題:哪個參數將允許集群中的 1 台計算機並行進行多次讀取和計算。

指定一些任意資源怎么樣? 例如,在創建集群時指定resources={'compute_load': 12} ,給每個 worker 12 個單位的資源compute_load

處理重負載時,分配.compute(resources={'compute_load': 12}) ,因此每個工作人員一次只執行一項任務。 當負載較輕時,使用.compute(resources={'compute_load': 1}) ,每個worker一次會占用12個任務。 另請參閱此答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM