理解性能

理解性能

使计算快速运行的第一步是理解相关的成本。在Python中,我们经常依赖于像 CProfile模块%%prun IPython魔法`VMProf <https://vmprof.readthedocs.io/en/latest/>>`_`snakeviz <https://jiffyclub.github.io/snakeviz/>>`_ 这样的工具来理解与我们代码相关的成本。然而,这些工具中很少能在多线程或多进程代码上工作良好,更不用说分布在多台机器上的计算了。我们还有新的成本,如数据传输、序列化、任务调度开销等,这些可能是我们不习惯跟踪的。

幸运的是,Dask 调度器自带诊断工具,帮助你理解计算的性能特征。通过使用这些诊断工具并加以思考,我们通常可以识别出麻烦计算中的缓慢部分。

The 单机和分布式调度器 附带了 不同 的诊断工具。这些工具与各自的调度器深度集成,因此为一种调度器设计的工具不能转移到另一种调度器上。

这些页面提供了四种分析并行代码的选项:

  1. 可视化任务图

  2. 单线程调度器和普通Python分析器

  3. 单机调度器的诊断

  4. 分布式调度器和仪表板的诊断

此外,如果你有兴趣了解可能发生减速的各种阶段,你可能希望阅读以下内容: