生态系统

有许多开源项目扩展了 Dask 接口并提供了部署 Dask 集群的不同机制。这可能是一个不完整的列表,如果您发现缺少的内容 - 请提出修改建议

基于 Dask 构建

许多软件包包含了对 Dask collections 的内置支持,或在内部包装 Dask collections 以实现并行化。

数组

  • xarray: 包装了 Dask 数组,提供了相同的可伸缩性,但带有轴标签,在处理复杂数据集时增加了便利性。

  • cupy: Rapids 项目的一部分,支持 GPU 的数组可用作 Dask 数组的分块。更多信息请参阅GPU 部分。

  • sparse: 在 numpyscipy.sparse 之上实现了任意维度的稀疏数组。

  • pint: 允许它们之间进行算术运算以及不同单位之间的转换。

  • HyperSpy: 使用 dask 来实现多维数据集的可伸缩性,其中导航轴和信号轴可以分开(例如,高光谱图像)。

DataFrame

  • cudf: Rapids 项目的一部分,实现了支持 GPU 的 DataFrame,可用作 Dask DataFrame 中的分区。

  • dask-geopandas: geopandas 的早期阶段子项目,实现了 geopandas DataFrame 的并行化。

SQL

  • blazingSQL: Rapids 项目的一部分,使用 cuDF 和 Dask 实现 SQL 查询,用于在 CUDA/GPU 支持的硬件上执行,包括引用外部存储的数据。

  • dask-sql: 在 Dask 之上添加了 SQL 查询层。API 与 blazingSQL 匹配,但使用 CPU 而不是 GPU。它仍在开发中,尚未准备好用于生产环境。

  • fugue-sql: 添加了一个抽象层,使代码可在不同计算框架(如 Pandas、Spark 和 Dask)之间移植。

机器学习

  • dask-ml: 实现了常见机器学习算法的分布式版本。

  • scikit-learn: 为 joblib 后端提供“dask”,以使用 dask 作为处理器并行化 scikit-learn 算法。

  • xgboost: 强大且流行的梯度提升树库;包含使用 dask 进行分布式训练的原生支持。

  • lightgbm: 类似于 XGBoost;lightgbm 也原生提供决策树的分布式训练支持。

部署 Dask

Dask 分布式集群有许多不同的实现。

  • dask-jobqueue: 在 PBS、Slurm、MOAB、SGE、LSF 和 HTCondor 等作业队列系统上部署 Dask。

  • dask-kubernetes: 从 Python 脚本或交互式会话中在 Kubernetes 上部署 Dask worker。

  • dask-helm: 使用 Helm 轻松在 Kubernetes 上部署 Dask 和(可选)Jupyter 或 JupyterHub。

  • dask-yarn / Hadoop: 在 YARN 集群上部署 Dask,例如在传统 Hadoop 安装中找到的集群。

  • dask-cloudprovider: 利用云原生 API 在各种云平台(如 AWS、Azure 和 GCP)上部署 Dask。

  • dask-gateway: 安全的多租户服务器,用于管理 Dask 集群。在共享的、集中管理的集群环境中启动和使用 Dask 集群,而无需用户直接访问底层集群后端。

  • dask-cuda: 构建一个类似于 LocalCluster 且专门针对 GPU 优化的 Dask 集群。

商业 Dask 部署选项

  • 您可以使用 Coiled 来处理云端计算环境(AWS 和 GCP)中 Dask 集群的创建和管理。