【问题标题】:General principles behind Spark MLlib parallelismSpark MLlib 并行性背后的一般原则
【发布时间】:2017-04-12 16:29:05
【问题描述】:

我是 Spark(以及集群计算框架)的新手,我想知道用于机器学习 (MLlib) 的并行算法遵循的一般原则。由于 Spark 将训练数据分布在多个节点上,它们本质上是否更快?如果是,我想所有节点都共享相同的参数集,对吧?他们必须在常规的基础上组合(例如:求和)中间计算(例如:梯度),我错了吗?

其次,假设我想用一组模型(例如:10)拟合我的数据。在这种特殊情况下,在 10 台机器上独立运行我的旧机器学习程序而不是编写复杂的代码(至少对我而言!)在 Spark 集群中进行训练不是更简单吗?

推论问题:Spark(或其他集群计算框架)是否仅适用于大数据应用程序,因为我们无法为这些应用程序训练多个模型,并且在单台机器上训练时间太长?

【问题讨论】:

    标签: apache-spark parallel-processing apache-spark-mllib


    【解决方案1】:
    • 您更正了一般原则。典型的 MLlib 算法是具有局部相位和数据交换的迭代过程。
    • MLlib 算法不一定更快。他们试图解决两个问题:

      • 磁盘延迟。
      • 单台机器上的内存限制。

      如果您可以在单个节点上处理数据,这可能比使用 ML / MLlib 快几个数量级。

    • 最后一个问题很难回答,但是:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 2021-02-24
      • 2011-01-31
      • 2016-05-29
      • 2012-09-01
      • 2015-02-23
      • 2017-12-20
      相关资源
      最近更新 更多