Dask on GPUs
Dask 可以分布数据和计算到多块 GPUs, 不仅在单个系统换支持集群。Dask 集成了、 RAPIDS cuDF, XGBoost, 和 RAPIDS cuML ,用于 GPU加速的数据分析和机器学习。
Dataframe 和 ETL 集成
RAPIDS cuDF library 提供了GPU支持的 dataframe class,实现了流行的pandas API。包括超高性能的函数用于载入 CSV, JSON, ORC, Parquet 以及其他的文件格式直接到 GPU 内存, 减少了很多数据处理任务的瓶颈。cuDF 提供多种函数支持 GPU-accelerated ETL, 如data subsetting, transformations, one-hot encoding, 等等。RAPIDS team 维护了 dask-cudf library 包括使用 Dask 和 cuDF的帮助工具。
XGBoost 集成
XGBoost, 流行的开源machine learning library for gradient boosting, 现在包含集成化的 Dask支持。用户可以使用Dask的标准数据结构跨节点分割数据, 构建 一个DMatrix 在每一个 GPU 使用 xgboost.dask.create_worker_dmatrix
, 通过xgboost.dask.run
来开始训练。查看 XGBoost dask documentation 或者Dask+XGBoost GPU example code 了解细节。
新手可以通过 XGBoost page 和 10 Minutes to Dask-XGBoost guide 来快速开始。
整合其它 ML Algorithms
对于其他的machine learning 工作使用 GPU, 这个 cuML library 提供访问 RAPIDS cuML package 通过 Dask。RAPIDS cuML 实现了常用的machine learning algorithms, 包括 clustering, dimensionality reduction, 以及 regression approaches, 通过高性能的基于 GPU的实现,提供 100x倍以上于CPU的速度提升。 cuML 复刻了scikit-learn API, 能跟 Dask之类包含 scikit-learn 支持的工作集成的很好。目前, dask-cuml 支持 分布式的聚类和回归算法,新的算法也在逐步地加入进去。
例子Notebooks
这些 RAPIDS Notebooks 扩展残酷包含了几个例子,使用 Dask 到分布式的、GPU加速的计算。是一个很好的起点。
- Dask shows how to get started with Dask using basic Python primitives like integers and strings. Go to notebook
- XGBoost with RAPIDS shows the acceleration one can gain by using GPUs with XGBoost in RAPIDS. Go to notebook
- Dask+cuML shows a simple example of how to get started with distributed machine learning. Go to notebook
- The NYC Taxi End-to-End notebook uses trip data to predict New York City taxi fares (a regression problem). Go to notebook
Dask Libraries
Dask 提供高级并行算法用于数据科学,可以在流行的 Python tools提供性能的伸缩。
User Interfaces
Dask collections, 包括 DataFrame, Array, Delayed, and Futures, provide underlying parallel computing machinery to scale workloads. All come with a purpose-built set of parallel algorithms and programming style.
Learn more
Machine Learning
Dask-ML provides scalable machine learning in Python using Dask with popular machine learning libraries, such as scikit-learn.
Learn more
Parallel Execution
Dask uses task graphs to optimize and execute work in parallel. After Dask generates task graphs, it executes them on parallel hardware with a distributed task scheduler.
Learn more
部署
Dask 集成到现有的集群工具之中,如 Kubernetes 和 YARN (Hadoop/Spark) 以及 HPC schedulers 如 SLURM, PBS, 和 LSF 使负载可伸缩,减小10倍以上的计算负载。
Learn more