MPI、GPU和Hadoop的并行处理方式有哪些主要区别?

25

我知道有些机器学习算法,例如随机森林,本质上应该实现并行计算。我做了一些功课,发现有以下三种并行编程框架,因此我想知道这三种并行性之间的主要区别。

特别是,如果有人能指导我去查阅比较它们之间差异的研究,那将是完美的!

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


1
Hadoop只是一种数据存储,提供了可操作范式(MapReduce)。要使用MPI,您需要拥有博士学位,因为它用于计算。GPU只是硬件。您的诉求是什么? - Thomas Jungblut
1
看看这个线程https://dev59.com/uWkw5IYBdhLWcg3wMHkY。 - Infinity
1个回答

37
  1. MPI是消息传递并行计算模型。在此模型中,有一个根机器在其MPI WORLD上生成所有机器上的程序。系统中所有线程都是独立的,因此它们之间唯一的通信方式是通过网络消息。网络带宽和吞吐量是MPI实现性能的最关键因素之一。思路:如果每台机器只有一个线程且有许多内核,则可以使用OpenMP共享内存模型,在一台机器上解决问题的子集。
  2. CUDA是SMT并行计算模型。它使用先进的GPU架构提供并行性。GPU包含(一组内核块)以锁步方式工作在同一指令上(类似于SIMD模型)。因此,如果系统中所有线程都执行大量相同的工作,则可以使用CUDA。但是GPU中的共享内存和全局内存数量有限,因此不应该仅使用一个GPU来解决巨大的问题。
  3. Hadoop用于使用MapReduce模型在普通硬件上解决大规模问题。因此,您不必担心数据分发或处理角落情况。Hadoop还提供了一个文件系统HDFS,用于在计算节点上存储数据。




Hadoop、MPI和CUDA彼此完全独立。因此,将它们进行比较可能不公平。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接