理解性能

理解性能

要使计算快速运行,第一步是理解其中涉及的成本。在 Python 中,我们经常依赖诸如 CProfile 模块%%prun IPython magicVMProfsnakeviz 等工具来理解代码相关的成本。然而,这些工具中很少有能很好地作用于多线程或多进程代码,更不用说分布在多台机器上的计算了。此外,我们还有一些可能不习惯跟踪的新成本,例如数据传输、序列化、任务调度开销等等。

幸运的是,Dask 调度器提供了诊断工具,可以帮助您了解计算的性能特征。通过使用这些诊断工具并稍加思考,我们通常可以找出棘手计算中的缓慢部分。

单机和分布式调度器 提供不同的诊断工具。这些工具深度集成到各自的调度器中,因此为其中一个设计的工具无法直接用于另一个。

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

  1. 可视化任务图

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

  3. 单机调度器的诊断工具

  4. 分布式调度器和仪表盘的诊断工具

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