python - Dask 线程调度程序调试技巧
问题描述
我正在开发一个基于 binderhub 的笔记本来为我的使用 dask 和 xarray 的库运行一些示例。我发现在某些情况/计算中,线程调度程序只会挂起并停止处理。我知道分析,但由于它挂起并且我必须杀死它,我不确定这是否是一个可行的选择。我也通读了这里的调试信息,但日志信息似乎是针对分布式或多进程调度程序的。计算最好在线程调度程序上运行,并且某些操作不是多进程安全的。笔记本在本地运行良好,这使得调试变得更加困难。
有没有人有任何其他想法我可以调试这个?
解决方案
我从来没有单独看到线程调度程序死锁。我的第一个猜测是你的函数在某种程度上对与其他人一起运行很敏感。
要进行调试,您可能会考虑在每次转换时打印出一组当前正在运行的任务。这可能会帮助您确定系统何时死锁的模式。为此,您可能会查看自定义回调
推荐阅读
- c# - 使用 QuickType 以编程方式创建 C# 类
- javascript - 验证与 Javascript 中的自定义选项卡相关的输入字段
- c# - 如果我不需要结果值,哪个更有效:线程或任务?
- stripe-payments - 什么是 batch.created 和 batch.updated webhook 事件?
- spring-batch - Spring Batch 元数据数据库事务问题
- regex - 匹配的花括号之间的 sed 匹配
- python - 关于在python中打乱列表的问题
- reactjs - 反应:用状态和钩子创建动态组件?
- beagleboneblack - beagle bone black 中的 SYS_BOOT 寄存器是什么?SYS_BOOT[4:0] 、 SYS_BOOT[15:0] 、 SYS_BOOT[15:14] 寄存器的意义是什么?
- sql - 按和 FOR XML PATH 分组