FlashR:利用 SSDs 的基于 R 编程的并行可扩展机器学习
分布式、并行与集群计算
2017-05-22 v4
摘要
R 是统计学和机器学习中最流行的编程语言之一,但 R 框架相对较慢且无法扩展到大型数据集。加速 R 实现的一般方法是以 C 或 FORTRAN 实现算法并提供 R 包装器。FlashR 采取了一种不同的方法:它并行执行 R 代码,并通过自动利用固态硬盘(SSDs)将代码扩展到内存容量之外。它提供了少量通用操作(GenOps),我们在 R 基础包中基于这些操作重新实现了大量矩阵函数。因此,FlashR 以极少/无需修改的方式并行化并扩展现有 R 代码。为了减少 CPU 与 SSDs 之间的数据移动,FlashR 惰性求值矩阵操作、在运行时融合操作,并使用缓存感知的两级矩阵分区。我们在多达四十亿个数据点的输入上对各种机器学习和统计算法评估了 FlashR。FlashR 的核外执行紧密跟踪 FlashR 的内存执行性能。在 FlashR 中执行的机器学习算法的 R 代码比 H2O 和 Spark MLlib 的内存执行快 2-10 倍,并且比 Revolution R Open 快一个数量级以上。
引用
@article{arxiv.1604.06414,
title = {FlashR: R-Programmed Parallel and Scalable Machine Learning using SSDs},
author = {Da Zheng and Disa Mhembere and Joshua T. Vogelstein and Carey E. Priebe and Randal Burns},
journal= {arXiv preprint arXiv:1604.06414},
year = {2017}
}