我从python调用pardiso()解算器进行了一些计算。求解器以一种对python不透明的方式分配自己的内存,但用于访问该内存的指针存储在python中。如果我尝试使用dask.delayed运行这些计算,有没有办法告诉dask计算的预期内存消耗,以便它可以适当地调度它们?
发布于 2021-10-09 13:36:34
对于dask应该遵守某些约束的情况,至少有两种解决方案:resources参数和Semaphore。
对于资源,工作流程是为每个工作进程分配一定数量的资源(在启动工作进程时通过cli,或者在LocalCluster或其他类型的集群中使用resources kwarg )。然后,代码将指定在执行.compute或.map/.submit时每个任务使用了多少资源。
使用Semaphore的工作流程是在创建信号量(请参阅docs)时指定可能的租用数量(请注意,与资源不同,这是一个整数,因此在某种意义上不太灵活)。然后,无论何时访问开销很大的资源,都应该将其包装在with sem上下文管理器中。
https://stackoverflow.com/questions/65484825
复制相似问题