MPI vs GPU vs Hadoop,这三种并行性之间的主要区别是什么?

use*_*270 25 hadoop gpu mpi

我知道一些机器学习算法就像随机森林,它们本质上应该并行实现.我做家务并发现有这三个并行编程框架,所以我有兴趣知道这三种并行性之间的主要区别是什么?

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

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

pra*_*kar 36

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

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

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




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

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