【问题标题】:What are the most common uses for distributed computing?分布式计算最常见的用途是什么?
【发布时间】:2012-08-21 05:11:05
【问题描述】:

我写了一个非常简单的分布式计算平台(基于 Map/Reduce 范式),我正在编写一些演示和展示。我有一个非常小的团队,必须优先考虑我将首先编写哪些演示。

为了确定优先级,我需要对演示进行相应的排序,大约 70% 是分布式计算的相关、常见、重要用例,30% 易于编写。

到目前为止,我是这样订购的:

  1. 使用 Monte Carlo 发现 pi 数字
  2. 使用 Monte Carlo 进行数值积分
  3. 大矩阵乘法(密集矩阵)
  4. 线性回归
  5. 大矩阵求逆
  6. 多元回归
  7. 排序
  8. 聚类(K 均值)
  9. 集群(分层)

排名第 1 是因为它花了 10 分钟来写,虽然它完全没用(我不确定,但我认为没有很多人试图找到更多的 pi 数字)。

由于我的平台的性质,它会在当然是令人尴尬的并行的事情上更加闪耀,而不是 I/O 受限或减少主导。

您将如何更改我的列表?你会添加什么?排序在企业世界中是否有用,还是仅用于对分布式计算平台进行基准测试?

【问题讨论】:

    标签: hadoop mapreduce cluster-computing distributed-computing hpc


    【解决方案1】:

    您的列表表明您没有区分并行计算和分布式计算。这不一定是错误的,但是在看到并行计算(例如您的项目 2-5)正在执行时,寻找分布式计算平台卓越性演示的人可能会不温不火。

    在任何有数据的地方,排序肯定很有用:大企业、小企业、办公桌抽屉里、整个 Google 领域。搜索也是如此,这是您列表中令人惊讶的遗漏。另一个让我印象深刻的遗漏是任何类型的数据融合,合并大型数据集以从它们的交叉点获取信息,而不仅仅是从数据集中单独提取的信息。

    【讨论】:

    • 感谢您的输入,搜索和数据融合不在我的列表中,因为它们的时间复杂度很小(不确定,但我认为会是 O(n) )并且是 io-bounded(太多数据流,很少的计算),这不是我的平台闪耀的地方......只是为了那个。
    • 嗯,我倾向于认为克服 I/O 界限是分布式计算的紧迫论据之一,与其说是让 100 个处理器发挥作用,不如说是让 100 个驱动头和 100 个 I/ O 频道。
    【解决方案2】:

    第二个标记是您正在混合分布式计算和 HPC。以下是关于您的每个主题的一些 cmets:

    (1) 有人试图尽可能多地计算 Pi 的位数,但 Monte Carlo 算法在那里完全没用,因为它的精度与试验次数的平方根成反比,所以为了得到一个更多的小数位精度,您大约需要 100 倍以上的试验。还有其他算法 - 看看你是否可以使用 Map/Reduce 来实现其中的一些。

    (2) 这个很好,虽然很少使用 - 精度问题与 (1) 相同。

    (5) 很少执行纯矩阵求逆,主要是因为数值不稳定。不如求解一个稠密的线性方程组?

    我想说您现在缺少 M/R 处理的主要用途之一,即 图形处理(阅读:社交和其他网络/流分析)。还有一些更一般的优化问题可能会很好,例如遗传算法。

    【讨论】:

    • 感谢您的输入,我写(1)不是因为它可能是蒙特卡罗方法的最简单示例,我不希望人们实际使用它...(5)矩阵求逆是求解稠密线性方程组最难的一步,它是宏伟的计划,与 Simplex 算法相同。可悲的是,图形处理和遗传算法不是我能在不到 6 小时(或 2 天)内写出来的东西,所以我现在就去做最简单的展示。但是,渲染和其他也在计划中;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多