我知道,对于某些机器学习算法(例如随机森林),本质上应该并行实现。我做完家庭作业,发现有这三种并行编程框架,因此我想知道这三种并行类型之间的主要区别是什么?

尤其是,如果有人可以指点我去研究一下它们之间的区别,那将是完美的!

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

最佳答案

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


  • Hadoop,MPI和CUDA彼此完全正交。因此,将它们进行比较可能并不公平。

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

    07-24 09:49
    查看更多