首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当单个任务可能在dask.delayed外部消耗大量内存时进行python内存管理

当单个任务可能在dask.delayed外部消耗大量内存时进行python内存管理
EN

Stack Overflow用户
提问于 2020-12-29 06:19:43
回答 1查看 52关注 0票数 5

我从python调用pardiso()解算器进行了一些计算。求解器以一种对python不透明的方式分配自己的内存,但用于访问该内存的指针存储在python中。如果我尝试使用dask.delayed运行这些计算,有没有办法告诉dask计算的预期内存消耗,以便它可以适当地调度它们?

EN

回答 1

Stack Overflow用户

发布于 2021-10-09 13:36:34

对于dask应该遵守某些约束的情况,至少有两种解决方案:resources参数和Semaphore

对于资源,工作流程是为每个工作进程分配一定数量的资源(在启动工作进程时通过cli,或者在LocalCluster或其他类型的集群中使用resources kwarg )。然后,代码将指定在执行.compute.map/.submit时每个任务使用了多少资源。

使用Semaphore的工作流程是在创建信号量(请参阅docs)时指定可能的租用数量(请注意,与资源不同,这是一个整数,因此在某种意义上不太灵活)。然后,无论何时访问开销很大的资源,都应该将其包装在with sem上下文管理器中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65484825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档