25

我知道一些机器学习算法,比如随机森林,本质上应该并行实现。我做了一个家庭作业,发现有这三种并行编程框架,所以我很想知道这三种并行性之间的主要区别是什么?

特别是,如果有人可以指点我一些研究比较它们之间的差异,那将是完美的!

请列出每种并行的优缺点,谢谢

4

1 回答 1

37
  1. MPI 是并行性的消息传递范式。在这里,您有一台根计算机,它在其 MPI WORLD 中的所有计算机上生成程序。系统中的所有线程都是独立的,因此它们之间的唯一通信方式是通过网络消息。网络带宽和吞吐量是 MPI 实现性能的最关键因素之一。想法:如果每台机器只有一个线程,并且上面有很多内核,则可以使用 OpenMP 共享内存范例在一台机器上解决问题的子集。

  2. CUDA 是并行的 SMT 范式。它使用最先进的 GPU 架构来提供并行性。GPU 包含((一组核心)块)以锁步方式处理相同的指令(这类似于 SIMD 模型)。因此,如果您系统中的所有线程都做很多相同的工作,您可以使用 CUDA。但是 GPU 中共享内存和全局内存的数量是有限的,因此您不应该只使用一个 GPU 来解决一个巨大的问题。

  3. Hadoop 用于使用 Map Reduce 范式解决商品硬件上的大问题。因此,您不必担心分发数据或管理极端情况。Hadoop 还提供了一个文件系统 HDFS,用于在计算节点上存储数据。




Hadoop、MPI 和 CUDA 彼此完全正交。因此,比较它们可能不公平。

不过,您始终可以使用 (CUDA + MPI) 来解决使用 GPU 集群的问题。您仍然需要一个简单的核心来执行问题的通信部分。

于 2012-04-20T08:17:04.767 回答