gpt4 book ai didi

python - dask 在运行函数之前是否等待资源可用?

转载 作者:行者123 更新时间:2023-12-01 00:56:42 25 4
gpt4 key购买 nike

我正在处理一些代码,计划在不久的将来在服务器上运行。现在它可以在我的本地计算机上运行,​​但多个人将同时运行该程序。我担心他们会使用比可用更多的内存或显存。如果我使用 dask,它会在执行函数调用之前等待可用资源吗?

示例代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from numba import njit
import numpy as np
from dask.distributed import Client, LocalCluster

@njit
def addingNumbers (big_array, big_array2, save_array):
for i in range (big_array.shape[0]):
for j in range (big_array.shape[1]):
save_array[i][j] = big_array[i][j] * big_array2[i][j]

return save_array


if __name__ == "__main__":
cluster = LocalCluster()
client = Client(cluster)


big_array = np.random.random_sample((100, 3000))
big_array2 = np.random.random_sample((100, 3000))
save_array = np.zeros(shape=(100, 3000))


x = client.submit(addingNumbers, big_array, big_array2, save_array)
y = client.gather(x)

如果多人同时运行上述代码,并且服务器几乎没有内存,那么 dask 会等到内存可用后再提交函数,还是提交后服务器会出现内存不足的情况错误?

如果 dask 不等到 ram 可用,您将如何对函数调用进行排队?谢谢

最佳答案

If I use dask will it wait for available resources before executing the function call?

Dask 无法预测您的函数需要多少 RAM。但是,您可以对存储的数据设置内存限制,如果 Dask 达到该限制,那么一旦达到该限制,它将停止运行任务,并将一些任务推送到磁盘。请参阅https://distributed.dask.org/en/latest/worker.html#memory-management

how would you queue the function call?

最简单的解决方案是限制工作线程中的事件线程数,或者使用 Worker resources限制每个工作人员仅执行某些任务的并发性。

关于python - dask 在运行函数之前是否等待资源可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56193941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com